Skip to content
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

xds: no longer use existing Subchannels after xDS resource becomes unavailable #7081

Conversation

voidzcy
Copy link
Contributor

@voidzcy voidzcy commented Jun 1, 2020

Put Channel into TRANSIENT_FAILURE when CDS/EDS resource that is currently being watched becomes unavailable.

  • For CDS policy, it simply shuts down its child EDS policy and propagate TRANSIENT_FAILURE to its parent policy.
  • For EDS policy, existing LocalityStore.reset() works similar to shutting down downstream balancers and doing cleanup. Whether or not stop load reporting for current {cluster:eds_service} (note EDS resource = if eds_service != null then eds_service else cluster) is an open question. In this change, it will be stopped.
    • Tests for EdsLoadBalancer is sort of messy, largely because we are also trying to maintain the functionality of it being working alone (although the internal interop tests for real use cases had been deleted). It might get cleaner after we eliminate LocalityStore.

@voidzcy voidzcy requested a review from dapengzhang0 June 1, 2020 20:34
"Resource " + resourceName + " is unavailable")));
if (edsBalancer != null) {
edsBalancer.shutdown();
edsBalancer = null;
Copy link
Member

Choose a reason for hiding this comment

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

Need change the comment of the edsBalancer field.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Removed that comment.

…not exist. When the resource is added back, it will be recreated.
@voidzcy voidzcy merged commit 26cf60d into grpc:master Jun 3, 2020
voidzcy added a commit to voidzcy/grpc-java that referenced this pull request Jun 3, 2020
…available (grpc#7081)

Put Channel into TRANSIENT_FAILURE when CDS/EDS resource that is currently being watched becomes unavailable. CDS/EDS LB policies should shut down their downstream policy instances (stop using current Subchannels for new RPCs) and propagate TRANSIENT_FAILURE status to their parent policies (and may eventually to the Channel).
voidzcy added a commit to voidzcy/grpc-java that referenced this pull request Jun 3, 2020
…available (grpc#7081)

Put Channel into TRANSIENT_FAILURE when CDS/EDS resource that is currently being watched becomes unavailable. CDS/EDS LB policies should shut down their downstream policy instances (stop using current Subchannels for new RPCs) and propagate TRANSIENT_FAILURE status to their parent policies (and may eventually to the Channel).
voidzcy added a commit that referenced this pull request Jun 3, 2020
…available (backport v1.30x) (#7081) (#7087)

Put Channel into TRANSIENT_FAILURE when CDS/EDS resource that is currently being watched becomes unavailable. CDS/EDS LB policies should shut down their downstream policy instances (stop using current Subchannels for new RPCs) and propagate TRANSIENT_FAILURE status to their parent policies (and may eventually to the Channel).
dfawley pushed a commit to dfawley/grpc-java that referenced this pull request Jan 15, 2021
…available (grpc#7081)

Put Channel into TRANSIENT_FAILURE when CDS/EDS resource that is currently being watched becomes unavailable. CDS/EDS LB policies should shut down their downstream policy instances (stop using current Subchannels for new RPCs) and propagate TRANSIENT_FAILURE status to their parent policies (and may eventually to the Channel).
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jun 12, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants