From 96c0a266a0a5f83a2bdd9678dbd05620f6380a91 Mon Sep 17 00:00:00 2001 From: kpayson64 Date: Fri, 22 Jun 2018 13:00:07 -0700 Subject: Changes --- src/core/ext/filters/http/client/http_client_filter.cc | 2 +- src/core/ext/filters/http/server/http_server_filter.cc | 9 +++++---- src/core/ext/filters/message_size/message_size_filter.cc | 5 +++-- 3 files changed, 9 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/core/ext/filters/http/client/http_client_filter.cc b/src/core/ext/filters/http/client/http_client_filter.cc index eadb9db1be..04ac4ac947 100644 --- a/src/core/ext/filters/http/client/http_client_filter.cc +++ b/src/core/ext/filters/http/client/http_client_filter.cc @@ -167,7 +167,7 @@ static void recv_trailing_metadata_ready(void* user_data, grpc_error* error) { if (calld->recv_initial_metadata_error != GRPC_ERROR_NONE) { if (error == GRPC_ERROR_NONE) { error = GRPC_ERROR_REF(calld->recv_initial_metadata_error); - } else { + } else if (error != calld->recv_initial_metadata_error) { error = grpc_error_add_child(error, calld->recv_initial_metadata_error); } } diff --git a/src/core/ext/filters/http/server/http_server_filter.cc b/src/core/ext/filters/http/server/http_server_filter.cc index 48eeb9212c..01e5aa445e 100644 --- a/src/core/ext/filters/http/server/http_server_filter.cc +++ b/src/core/ext/filters/http/server/http_server_filter.cc @@ -324,14 +324,15 @@ static void hs_recv_trailing_metadata_ready(void* user_data, grpc_error* err) { if (calld->recv_initial_metadata_ready_error != GRPC_ERROR_NONE) { if (err == GRPC_ERROR_NONE) { err = GRPC_ERROR_REF(calld->recv_initial_metadata_ready_error); - } else { + } else if (err != calld->recv_initial_metadata_ready_error) { err = grpc_error_add_child(err, calld->recv_initial_metadata_ready_error); + } else { + err = GRPC_ERROR_REF(err); } - GRPC_CLOSURE_RUN(calld->original_recv_trailing_metadata_ready, err); } else { - GRPC_CLOSURE_RUN(calld->original_recv_trailing_metadata_ready, - GRPC_ERROR_REF(err)); + err = GRPC_ERROR_REF(err); } + GRPC_CLOSURE_RUN(calld->original_recv_trailing_metadata_ready, err); } static grpc_error* hs_mutate_op(grpc_call_element* elem, diff --git a/src/core/ext/filters/message_size/message_size_filter.cc b/src/core/ext/filters/message_size/message_size_filter.cc index f3081df38d..deb5ae70ec 100644 --- a/src/core/ext/filters/message_size/message_size_filter.cc +++ b/src/core/ext/filters/message_size/message_size_filter.cc @@ -140,7 +140,6 @@ static void recv_message_ready(void* user_data, grpc_error* error) { error = new_error; } else { error = grpc_error_add_child(error, new_error); - GRPC_ERROR_UNREF(new_error); } calld->error = GRPC_ERROR_REF(error); gpr_free(message_string); @@ -159,8 +158,10 @@ static void recv_trailing_metadata_ready(void* user_data, grpc_error* error) { if (calld->error != GRPC_ERROR_NONE) { if (error == GRPC_ERROR_NONE) { error = GRPC_ERROR_REF(calld->error); + } else if (error != calld->error) { + error = grpc_error_add_child(error, GRPC_ERROR_REF(calld->error)); } else { - error = grpc_error_add_child(error, calld->error); + error = GRPC_ERROR_REF(error); } } else { error = GRPC_ERROR_REF(error); -- cgit v1.2.3