Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

grpc-js: Fix handling of calls after resolution failure #2092

Conversation

murgatroid99
Copy link
Member

This fixes #2090. The change to the channel here is just to track name resolution errors so that if a call comes in while the channel is in TRANSIENT_FAILURE, backing off waiting to resolve again, we end the call with an error, the same as if the LB policy was in TRANSIENT_FAILURE. The change to the resolving load balancer just lets the exitIdle schedule another name resolution attempt if the state is TRANSIENT_FAILURE, which is consistent with handling of exitIdle and backoffs in other places. I removed the state transition from there because it is redundant with the one in updateResolution, and inappropriate when not calling that function immediately. I also moved the backoff timer start to the start of name resolution instead of the end, for consistency with other backoff timers.

@murgatroid99
Copy link
Member Author

For some reason the test passes everywhere except on Node 10 on Windows. Previously, it probably passed nowhere, so it's still an improvement. Plus, Node 10 is well past EOL, so I don't think it's worth worrying about.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants