Skip to content

xds: Propagate status cause through XdsDepManager#12749

Open
ejona86 wants to merge 1 commit intogrpc:masterfrom
ejona86:xds-dep-propagate-cause
Open

xds: Propagate status cause through XdsDepManager#12749
ejona86 wants to merge 1 commit intogrpc:masterfrom
ejona86:xds-dep-propagate-cause

Conversation

@ejona86
Copy link
Copy Markdown
Member

@ejona86 ejona86 commented Apr 9, 2026

Often there is no cause, but connect(), channel credentials, and call credentials failures on the control plane RPC can include a useful causal exception.

This was triggered by seeing an error like below, but it didn't include the cause, which would have included HTTP error information from the failure fetching the credential.

UNAVAILABLE: Error retrieving LDS resource xdstp://traffic-director-c2p.xds.googleapis.com/envoy.config.listener.v3.Listener/bigtable.googleapis.com: UNAUTHENTICATED: Failed computing credential metadata nodeID: C2P-798500073

Often there is no cause, but connect(), channel credentials, and call
credentials failures on the control plane RPC can include a useful
causal exception.

This was triggered by seeing an error like below, but it didn't include
the cause, which would have included HTTP error information from the
failure fetching the credential.
```
UNAVAILABLE: Error retrieving LDS resource xdstp://traffic-director-c2p.xds.googleapis.com/envoy.config.listener.v3.Listener/bigtable.googleapis.com: UNAUTHENTICATED: Failed computing credential metadata nodeID: C2P-798500073
```
/**
* An interceptor that fails all RPCs with the provided status.
*/
final class FailingClientInterceptor implements ClientInterceptor {
Copy link
Copy Markdown
Member

@shivaspeaks shivaspeaks Apr 13, 2026

Choose a reason for hiding this comment

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

I want to understand here how do you take a decision on when to create a new class and when we should not. I always remember your comment here: #11638 (comment). It doesn't look like this class is getting used anywhere and this is in test anyway, so this utility class shouldn't we be nesting it within the user class?

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.

2 participants