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: round_robin: always have children reconnect immediately #2667

Conversation

murgatroid99
Copy link
Member

This fixes #2666. After #2561, round_robin delegates to pick_first for each endpoint. As a result, it runs into essentially the same problem pick_first had that was fixed in #2619: once a child has a READY->IDLE transition, nothing triggers it to start connecting again. round_robin is supposed to have every child connected or connecting at all times, so the fix is to have the child reconnect immediately after it goes to IDLE.

The test is in the xDS package because that is where the problem was detected, because round_robin is used much more in the xDS context.

Note that this won't impact the channel-level idle timeout, because the channel discards the current LB policy when it goes idle.

@murgatroid99 murgatroid99 merged commit 513a61a into grpc:@grpc/grpc-js@1.10.x Feb 15, 2024
4 of 5 checks passed
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.

None yet

2 participants