aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/ext/filters/client_channel/client_channel.cc
diff options
context:
space:
mode:
authorGravatar Mark D. Roth <roth@google.com>2018-11-15 08:27:35 -0800
committerGravatar Mark D. Roth <roth@google.com>2018-11-15 09:36:49 -0800
commitd18458720c03e13b062d9726561dfbaff33644ab (patch)
treea6f14104bf1b083d6360eab0faabfe311e4966ea /src/core/ext/filters/client_channel/client_channel.cc
parentdc1bbf9932b8de85e96c92db9c7f43219498b58c (diff)
Don't reset channel state on resolver failure when LB policy exists.
Diffstat (limited to 'src/core/ext/filters/client_channel/client_channel.cc')
-rw-r--r--src/core/ext/filters/client_channel/client_channel.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/core/ext/filters/client_channel/client_channel.cc b/src/core/ext/filters/client_channel/client_channel.cc
index 8e9ee889e1..38036c9718 100644
--- a/src/core/ext/filters/client_channel/client_channel.cc
+++ b/src/core/ext/filters/client_channel/client_channel.cc
@@ -597,6 +597,8 @@ static void on_resolver_result_changed_locked(void* arg, grpc_error* error) {
if (grpc_client_channel_trace.enabled()) {
gpr_log(GPR_INFO, "chand=%p: resolver transient failure", chand);
}
+ // Don't override connectivity state if we already have an LB policy.
+ if (chand->lb_policy != nullptr) set_connectivity_state = false;
} else {
grpc_core::UniquePtr<char> lb_policy_name =
get_lb_policy_name_from_resolver_result_locked(chand);