XdsBootstrap leaves a warning log on errors by default
#6489
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.
Motivation:
While
SnapshotWatchers provide a way for users to opt into logging errors, this is not enabled by default.Additionally, there is no way to notify users that secondary bootstrap resources have not been loaded correctly.
For this reason, I propose that a default
SnapshotWatcherbe added to aXdsBootstrapwhere the default watcher logs on errors. This watcher is added toAbstractRootand bootstrap constructs by default.In order to ensure parsing failures are propagated,
AbstractResourceNode#doOnChangednow also propagates errors to the parent on exception.Note that transient errors (network errors while fetching resources) are not logged at this level.
Modifications:
EventExecutoris used for the default event loop.XdsBootstrapBuilderis introduced, and users are able to set the defaultSnapshotWatcherSnapshotWatcheris added to all bootstrap constructs/AbstractRootimplementationsAbstractResourceNode#doOnChangedthrows an exception, the error is propagated to the parent nodeResult:
SnapshotWatcher