A74 update: improve XdsDependencyManager watcher API #482
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.
The original intent here was that the xds resolver would handle
OnError()
the same way that it did prior to A74: it would return a result to the channel that had an error for the service config, which would cause the channel to ignore the update if it had already previously seen a valid result. This poses a problem for cases like receiving a socket listener instead of an API listener or receiving a route config that does not contain a virtual host matching the channel's default authority, because in those cases we want to stop using the previously seen resources and start failing data plane RPCs.This change fixes that by specifying that the xds resolver will see errors only in cases where we want to stop using the previously received resources, if any. As a result, we are able to collapse all three methods on the watcher into one.