From e17bbedd95a76aa9f21d3e6cc9cfa7d53e46da32 Mon Sep 17 00:00:00 2001 From: Yash Tibrewal Date: Fri, 18 Mar 2022 11:03:49 -0700 Subject: [PATCH] ServerConfigSelector filter: Always return UNAVAILABLE status on errors (#29146) * ServerConfigSelector filter: Always return UNAVAILABLE status on errors * clang-format --- .../server_config_selector_filter.cc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc b/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc index a54bcb22a98..a8f6fb595c8 100644 --- a/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +++ b/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc @@ -203,7 +203,6 @@ void CallData::RecvInitialMetadataReady(void* user_data, config_selector.value()->GetCallConfig(calld->recv_initial_metadata_); if (call_config.error != GRPC_ERROR_NONE) { calld->error_ = call_config.error; - error = call_config.error; // Does not take a ref } else { calld->service_config_call_data_ = ServiceConfigCallData(std::move(call_config.service_config), @@ -212,11 +211,13 @@ void CallData::RecvInitialMetadataReady(void* user_data, &calld->service_config_call_data_; } } else { + calld->error_ = GRPC_ERROR_CREATE_FROM_CPP_STRING( + config_selector.status().ToString()); + } + if (calld->error_ != GRPC_ERROR_NONE) { calld->error_ = grpc_error_set_int( - GRPC_ERROR_CREATE_FROM_CPP_STRING( - config_selector.status().ToString()), - GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE); - error = calld->error_; + calld->error_, GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNAVAILABLE); + error = calld->error_; // Does not take a ref } } calld->MaybeResumeRecvTrailingMetadataReady();