grpc-js: Make a few improvements to DNS resolving timing #2571
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This makes a few improvements to issues exposed by the test linked from #2570, specifically related to closing a connection immediately after it is established
ResolvingLoadBalancer
, reset the backoff timer when name resolution succeeds.DnsResolver
, start the timers before starting resolution, because the timers can be cancelled immediately after starting resolution, and if they can happen in the wrong order they won't actually be cancelled.DnsResolver
, cancel the rate limiting timer when outputting a result for an IP address target. The purpose of the rate limit is to limit DNS query traffic, and an IP address target does not result in a DNS query so the rate limit is unnecessary.Experimental changes:
BackoffTimeout#getEndTime
, to get the approximate time when the timer will fire, if it is running.