grpc-js: Don't repeat fixed resolver results #2609
Merged
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 should fix #2604 (comment). PR #2602 changed pick_first behavior so that it would request a resolver update the first time every subchannel reported TRANSIENT_FAILURE after an address list update. With subchannel reuse, a subchannel could already be in TRANSIENT_FAILURE immediately after an address list update, so pick_first would request a resolver update immediately. The rate limit on DNS targets would rate limit that whole process, but the same is not true of IP targets, causing a tight loop that does nothing. IP targets will never return a different address list, so the result is to just not respond to resolver update requests. The flag is reset in the
destroy
function because that is how channel idleness is handled, and an update is expected after that.