Skip to content

grpc-js: round_robin: always have children reconnect immediately#2667

Merged
murgatroid99 merged 1 commit intogrpc:@grpc/grpc-js@1.10.xfrom
murgatroid99:grpc-js_round_robin_idle_fix
Feb 15, 2024
Merged

grpc-js: round_robin: always have children reconnect immediately#2667
murgatroid99 merged 1 commit intogrpc:@grpc/grpc-js@1.10.xfrom
murgatroid99:grpc-js_round_robin_idle_fix

Conversation

@murgatroid99
Copy link
Copy Markdown
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
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.

2 participants