-
Notifications
You must be signed in to change notification settings - Fork 4.5k
cds: stop child policies on resource-not-found errors #8122
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
Merged
easwars
merged 1 commit into
grpc:master
from
easwars:change_cds_behavior_on_resource_not_found
Feb 26, 2025
Merged
cds: stop child policies on resource-not-found errors #8122
easwars
merged 1 commit into
grpc:master
from
easwars:change_cds_behavior_on_resource_not_found
Feb 26, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #8122 +/- ##
==========================================
+ Coverage 82.18% 82.21% +0.03%
==========================================
Files 387 387
Lines 38947 38952 +5
==========================================
+ Hits 32007 32025 +18
+ Misses 5613 5604 -9
+ Partials 1327 1323 -4
|
dfawley
approved these changes
Feb 26, 2025
4329a3d
to
b0a5671
Compare
purnesh42H
pushed a commit
to purnesh42H/grpc-go
that referenced
this pull request
Mar 1, 2025
cds: stop child policies on resource-not-found errors (grpc#8122) xds: simplify code handling certain error conditions in the resolver (grpc#8123) xds, pickfirst: Enable additional addresses in xDS, set new pick_first as default (grpc#8126) github: change test action to cover the legacy pickfirst balancer (grpc#8129) cleanup: replace dial with newclient (grpc#7967) cleanup: replace dial with newclient (grpc#7970) stats/openetelemetry: refactor and make e2e test stats verification deterministic (grpc#8077) xds: introduce simple grpc transport for generic xds clients (grpc#8066) xds: generic xds client common configs re-push comments improve ServerConfig equal easwar review round 1 on documentation easwar comments on docstrings easwar comments round 4 config tests merge with previous pr xds: add lrs client and xDS client interfaces second pass to documentation language change from godoc review dfawley review 2 easwar review 1 changed to decoder struct move authorities under xds client easwar review 2 easwars review 4 ResourceWatcher done and LoadStore stop grpc based transport remove server config extension interface add byte codec dfawley review 1 send and recv tests with byte based test server change to proto based server easwar review 1 easwar review 3 xds: generic xds client ads transport channel
purnesh42H
pushed a commit
to purnesh42H/grpc-go
that referenced
this pull request
Mar 1, 2025
ads: stop child policies on resource-not-found errors (grpc#8122) xds: simplify code handling certain error conditions in the resolver (grpc#8123) xds, pickfirst: Enable additional addresses in xDS, set new pick_first as default (grpc#8126) github: change test action to cover the legacy pickfirst balancer (grpc#8129) cleanup: replace dial with newclient (grpc#7967) cleanup: replace dial with newclient (grpc#7970) stats/openetelemetry: refactor and make e2e test stats verification deterministic (grpc#8077) xds: introduce simple grpc transport for generic xds clients (grpc#8066) xds: generic xds client common configs re-push comments improve ServerConfig equal easwar review round 1 on documentation easwar comments on docstrings easwar comments round 4 config tests merge with previous pr xds: add lrs client and xDS client interfaces second pass to documentation language change from godoc review dfawley review 2 easwar review 1 changed to decoder struct move authorities under xds client easwar review 2 easwars review 4 ResourceWatcher done and LoadStore stop grpc based transport remove server config extension interface add byte codec dfawley review 1 send and recv tests with byte based test server change to proto based server easwar review 1 easwar review 3 xds: generic xds client ads transport channel
janardhanvissa
pushed a commit
to janardhanvissa/grpc-go
that referenced
this pull request
Mar 24, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Prior to this PR, when the cds LB policy received a resource-not-found error for one of the clusters that it was watching, it would do the following:
cluster_resolver
LB policy would then create a config with no priorities, and this would result in thepriority
LB policy putting the channel inTRANSIENT_FAILURE
and sending an error picker with a not so useful error message "all priorities are removed"With this change though, whenever the cds LB policy receives a resource-not-found (either from its parent or for the resources that it is watching), it will shut down the LB policy tree under it and put the channel in
TRANSIENT_FAILURE
. If the error is from its parent, the picker will fail with the error received from the parent. If the error is for one of the resources that the cds LB policy is watching, the error would be a more useful one "cluster foo not found".Addresses #7931.
RELEASE NOTES: