-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
keep ApiState pause/resume ref-counted, to make sure resume on the state is always called (always in pair). #11674
Comments
/assign stevenzzzz |
PR #11739 made an improvement on returning a Cleanup instance which resumes the paused resources on destruction. |
I'll take this on in the context of #11877. I realized that we need to pause/resume the type URL undergoing update there, which means we definitely need ref counting (since we have existing pause/resumes nested inside config updates). |
To fix envoyproxy#11877, we need to handle safely the case where two watches point at the same resource, and a WatchMap onConfigUpdate() causes one watch to remove the other watch during its invoked onConfigUpdate(). While working on this, it made sense to fix envoyproxy#11674, avoiding spurious ClusterLoadAssignment discovery requests in the regression integration test. Risk level: Medium (this has xDS wire-level implications). Testing: New unit tests for pause/resume, regression unit and integration tests for watch map removal behaviors. Fixes envoyproxy#11877 envoyproxy#11674 Signed-off-by: Harvey Tuch <htuch@google.com> Co-authored-by: Sebastian Schepens <sebastian.schepens@mercadolibre.com> Signed-off-by: Harvey Tuch <htuch@google.com>
…#12069) To fix #11877, we need to handle safely the case where two watches point at the same resource, and a WatchMap onConfigUpdate() causes one watch to remove the other watch during its invoked onConfigUpdate(). While working on this, it made sense to fix #11674, avoiding spurious ClusterLoadAssignment discovery requests in the regression integration test. Risk level: Medium (this has xDS wire-level implications). Testing: New unit tests for pause/resume, regression unit and integration tests for watch map removal behaviors. Fixes #11877 #11674 Signed-off-by: Harvey Tuch <htuch@google.com> Co-authored-by: Sebastian Schepens <sebastian.schepens@mercadolibre.com>
…envoyproxy#12069) To fix envoyproxy#11877, we need to handle safely the case where two watches point at the same resource, and a WatchMap onConfigUpdate() causes one watch to remove the other watch during its invoked onConfigUpdate(). While working on this, it made sense to fix envoyproxy#11674, avoiding spurious ClusterLoadAssignment discovery requests in the regression integration test. Risk level: Medium (this has xDS wire-level implications). Testing: New unit tests for pause/resume, regression unit and integration tests for watch map removal behaviors. Fixes envoyproxy#11877 envoyproxy#11674 Signed-off-by: Harvey Tuch <htuch@google.com> Co-authored-by: Sebastian Schepens <sebastian.schepens@mercadolibre.com> Signed-off-by: Kevin Baichoo <kbaichoo@google.com>
…envoyproxy#12069) To fix envoyproxy#11877, we need to handle safely the case where two watches point at the same resource, and a WatchMap onConfigUpdate() causes one watch to remove the other watch during its invoked onConfigUpdate(). While working on this, it made sense to fix envoyproxy#11674, avoiding spurious ClusterLoadAssignment discovery requests in the regression integration test. Risk level: Medium (this has xDS wire-level implications). Testing: New unit tests for pause/resume, regression unit and integration tests for watch map removal behaviors. Fixes envoyproxy#11877 envoyproxy#11674 Signed-off-by: Harvey Tuch <htuch@google.com> Co-authored-by: Sebastian Schepens <sebastian.schepens@mercadolibre.com> Signed-off-by: chaoqinli <chaoqinli@google.com>
per Harvey, let's make the ApiState pause/resume operations always come in pair.
Currently there is no guarantee on when/whether the "resume" will be called after the ApiState has been "pause"d.
We should consider mechanism like RAII object which auto-resume the paused resource type when the object died.
The text was updated successfully, but these errors were encountered: