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

areas: make the gRPC server tracker network area aware #11748

Merged
merged 2 commits into from
Dec 6, 2021
Merged

Conversation

rboyer
Copy link
Member

@rboyer rboyer commented Dec 6, 2021

Fixes a bug whereby servers present in multiple network areas would be
properly segmented in the Router, but not in the gRPC mirror. This would
lead servers in the current datacenter leaving from a network area
(possibly during the network area's removal) from deleting their own
records that still exist in the standard WAN area.

The gRPC client stack uses the gRPC server tracker to execute all RPCs,
even those targeting members of the current datacenter (which is unlike
the net/rpc stack which has a bypass mechanism).

This would manifest as a gRPC method call never opening a socket because
it would block forever waiting for the current datacenter's pool of
servers to be non-empty.

NOTE: this should probably be backported to 1.10 but it'll have to be manual.

Fixes a bug whereby servers present in multiple network areas would be
properly segmented in the Router, but not in the gRPC mirror. This would
lead servers in the current datacenter leaving from a network area
(possibly during the network area's removal) from deleting their own
records that still exist in the standard WAN area.

The gRPC client stack uses the gRPC server tracker to execute all RPCs,
even those targeting members of the current datacenter (which is unlike
the net/rpc stack which has a bypass mechanism).

This would manifest as a gRPC method call never opening a socket because
it would block forever waiting for the current datacenter's pool of
servers to be non-empty.
@rboyer rboyer added this to the 1.11.0 milestone Dec 6, 2021
@rboyer rboyer requested a review from a team December 6, 2021 15:28
@rboyer rboyer self-assigned this Dec 6, 2021
@vercel vercel bot temporarily deployed to Preview – consul-ui-staging December 6, 2021 15:30 Inactive
@vercel vercel bot temporarily deployed to Preview – consul December 6, 2021 15:30 Inactive
Copy link
Contributor

@dhiaayachi dhiaayachi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@rboyer rboyer merged commit e20e634 into main Dec 6, 2021
@rboyer rboyer deleted the fix-grpc-areas-bug branch December 6, 2021 15:55
@hc-github-team-consul-core
Copy link
Contributor

🍒 If backport labels were added before merging, cherry-picking will start automatically.

To retroactively trigger a backport after merging, add backport labels and re-run https://circleci.com/gh/hashicorp/consul/518417.

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.

4 participants