refactor(pubsublite): add context to error messages for leaf services #3649
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.
Publisher and subscriber clients consist of a tree of services, where the leaf services wrap gRPC streams. When errors are propagated to the top-level publisher/subscriber clients, the context may be ambiguous (e.g. RPC errors) and not helpful for debugging.
This PR wraps errors in the leaf services, e.g.
publisher(/projects/project-id/locations/zone/topics/topic-id/partitions/1): %w
.golang.org/x/xerrors
is used because error wrapping/unwrapping is supported from Go 1.13 onwards. Once we drop support for 1.11, we can just use the standard library.