diff options
author | 2018-02-01 15:00:03 -0800 | |
---|---|---|
committer | 2018-02-01 15:00:03 -0800 | |
commit | 64d02bac04be2d33bad51f2f335ff85fd2bea91c (patch) | |
tree | 6352edcc98cf2ad26235af0184cda0cd87393756 /src/core/ext/filters/client_channel/resolver/dns | |
parent | e53d6b3f6034a5bbf72e3ad4438f834191235323 (diff) | |
parent | ac47595e42036585a9d9465ba28615d3e4626b13 (diff) |
Merge branch 'master' of github.com:grpc/grpc into dns_cooldown
Diffstat (limited to 'src/core/ext/filters/client_channel/resolver/dns')
3 files changed, 7 insertions, 5 deletions
diff --git a/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc b/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc index ecd6116ad1..9cca82168f 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +++ b/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc @@ -135,7 +135,6 @@ static void dns_ares_shutdown_locked(grpc_resolver* resolver) { static void dns_ares_channel_saw_error_locked(grpc_resolver* resolver) { ares_dns_resolver* r = (ares_dns_resolver*)resolver; if (!r->resolving) { - r->backoff->Reset(); dns_ares_maybe_start_resolving_locked(r); } } @@ -266,6 +265,9 @@ static void dns_ares_on_resolved_locked(void* arg, grpc_error* error) { if (service_config != nullptr) grpc_service_config_destroy(service_config); gpr_free(service_config_string); grpc_lb_addresses_destroy(r->lb_addresses); + // Reset backoff state so that we start from the beginning when the + // next request gets triggered. + r->backoff->Reset(); } else { const char* msg = grpc_error_string(error); gpr_log(GPR_DEBUG, "dns resolution failed: %s", msg); @@ -303,7 +305,6 @@ static void dns_ares_next_locked(grpc_resolver* resolver, r->next_completion = on_complete; r->target_result = target_result; if (r->resolved_version == 0 && !r->resolving) { - r->backoff->Reset(); dns_ares_maybe_start_resolving_locked(r); } else { dns_ares_maybe_finish_next_locked(r); diff --git a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc b/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc index 2b35bdb605..e05f9d2f2f 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +++ b/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc @@ -505,7 +505,7 @@ static void on_dns_lookup_done_cb(void* arg, grpc_error* error) { } } GRPC_CLOSURE_SCHED(r->on_resolve_address_done, GRPC_ERROR_REF(error)); - grpc_lb_addresses_destroy(r->lb_addrs); + if (r->lb_addrs != nullptr) grpc_lb_addresses_destroy(r->lb_addrs); gpr_free(r); } diff --git a/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc b/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc index bea05ba619..538e64aa27 100644 --- a/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +++ b/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc @@ -112,7 +112,6 @@ static void dns_shutdown_locked(grpc_resolver* resolver) { static void dns_channel_saw_error_locked(grpc_resolver* resolver) { dns_resolver* r = (dns_resolver*)resolver; if (!r->resolving) { - r->backoff->Reset(); maybe_start_resolving_locked(r); } } @@ -125,7 +124,6 @@ static void dns_next_locked(grpc_resolver* resolver, r->next_completion = on_complete; r->target_result = target_result; if (r->resolved_version == 0 && !r->resolving) { - r->backoff->Reset(); maybe_start_resolving_locked(r); } else { dns_maybe_finish_next_locked(r); @@ -162,6 +160,9 @@ static void dns_on_resolved_locked(void* arg, grpc_error* error) { result = grpc_channel_args_copy_and_add(r->channel_args, &new_arg, 1); grpc_resolved_addresses_destroy(r->addresses); grpc_lb_addresses_destroy(addresses); + // Reset backoff state so that we start from the beginning when the + // next request gets triggered. + r->backoff->Reset(); } else { grpc_millis next_try = r->backoff->NextAttemptTime(); grpc_millis timeout = next_try - grpc_core::ExecCtx::Get()->Now(); |