diff options
author | Mark D. Roth <roth@google.com> | 2018-12-07 12:28:03 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-07 12:28:03 -0800 |
commit | 6dc358ca341faf1bcfb88b4635caf61ca2d6c598 (patch) | |
tree | 454a2f32ab4e65e1ccd23c8eb6a7ff5c52c53c3f /src/core/ext | |
parent | 680a3546815d564fca8f2abe0cae441e78c25798 (diff) | |
parent | a6a21d1c64b610805c42ca2218d6d95313cb5329 (diff) |
Merge pull request #17391 from markdroth/reset_connection_backoff
Fix bug in subchannel backoff reset code.
Diffstat (limited to 'src/core/ext')
-rw-r--r-- | src/core/ext/filters/client_channel/subchannel.cc | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/core/ext/filters/client_channel/subchannel.cc b/src/core/ext/filters/client_channel/subchannel.cc index 0817b1dd39..af55f7710e 100644 --- a/src/core/ext/filters/client_channel/subchannel.cc +++ b/src/core/ext/filters/client_channel/subchannel.cc @@ -153,7 +153,7 @@ struct grpc_subchannel { /** have we started the backoff loop */ bool backoff_begun; // reset_backoff() was called while alarm was pending - bool deferred_reset_backoff; + bool retry_immediately; /** our alarm */ grpc_timer alarm; @@ -709,8 +709,8 @@ static void on_alarm(void* arg, grpc_error* error) { if (c->disconnected) { error = GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING("Disconnected", &error, 1); - } else if (c->deferred_reset_backoff) { - c->deferred_reset_backoff = false; + } else if (c->retry_immediately) { + c->retry_immediately = false; error = GRPC_ERROR_NONE; } else { GRPC_ERROR_REF(error); @@ -887,12 +887,12 @@ static void on_subchannel_connected(void* arg, grpc_error* error) { void grpc_subchannel_reset_backoff(grpc_subchannel* subchannel) { gpr_mu_lock(&subchannel->mu); + subchannel->backoff->Reset(); if (subchannel->have_alarm) { - subchannel->deferred_reset_backoff = true; + subchannel->retry_immediately = true; grpc_timer_cancel(&subchannel->alarm); } else { subchannel->backoff_begun = false; - subchannel->backoff->Reset(); maybe_start_connecting_locked(subchannel); } gpr_mu_unlock(&subchannel->mu); |