envoy: removing srds from E-M#33192
Conversation
cdd1727 to
d453464
Compare
3a2fcff to
31dd785
Compare
|
/retest |
a8a6d56 to
a5386f4
Compare
Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
adisuissa
left a comment
There was a problem hiding this comment.
Overall LGTM, thanks!
I don't think we have technical release notes, but if there's something like that, should notify SRDS users that they need to link the "//source/common/router:scoped_rds_lib" or otherwise it will fail during runtime.
| auto srds_factory = | ||
| Envoy::Config::Utility::getFactoryByName<Router::SrdsFactory>(srds_factory_name); |
There was a problem hiding this comment.
nit: move to the kScopedRoutes switch case.
There was a problem hiding this comment.
mind if I leave here? it's a pretty cheap function for the non-srds case and if you declare variables in a switch you need braces and it screws up coverage.
| * that must hold a reference/pointer to them. | ||
| */ | ||
| class ConfigProviderManager { | ||
| class ConfigProviderManager : public Singleton::Instance { |
There was a problem hiding this comment.
I can see why one would like to have a ConfigProviderManager as singleton, but it is unclear to me what triggered the change moving the Singleton inheritance from the implementation to the interface?
(I'm assuming this is something related to C++'s unique_ptr not aligned well with inheritance, but just want to make sure this change is needed).
There was a problem hiding this comment.
yeah the implementation code which now only knows it has the interface but not the impl needs to know it is holding a singleton
srds: removing hard link in binary Signed-off-by: Alyssa Wilk <alyssar@chromium.org>
…43392) ### Description: PR #33192 refactored SRDS to use a `SrdsFactory` interface for decoupling, but inadvertently changed the `init_manager` passed to `ScopedRoutesConfigProviderUtil::create()` from the listener-level init_manager to the server-level init_manager. When a listener with SRDS arrives via LDS after the server init_manager has already reached the `Initialized` state, the SRDS init target is silently discarded in release builds, and the SRDS subscription never starts. The fix adds an `Init::Manager&` parameter to `SrdsFactory::createConfigProvider()` and passes the listener's init_manager from the HCM config constructor, restoring the correct behavior that existed before PR #33192 and matching how RDS handles init_manager propagation. AI-assisted: Claude opus-4.6 was used to help write the unit test and PR description. The fix itself and root cause analysis were done manually. ### Risk Level: Low ### Testing: - `//test/common/router:scoped_rds_test` PASSED - `//test/extensions/filters/network/http_connection_manager:config_test` PASSED - `//test/integration:scoped_rds_integration_test` PASSED - Higress kind cluster integration test with Delta xDS + SRDS PASSED ### Docs Changes: N/A ### Release Notes: N/A ### Platform Specific Features: N/A --------- Signed-off-by: jingze <daijingze.djz@alibaba-inc.com> Signed-off-by: Jingze <52855280+Jing-ze@users.noreply.github.com>
…nvoyproxy#43392) ### Description: PR envoyproxy#33192 refactored SRDS to use a `SrdsFactory` interface for decoupling, but inadvertently changed the `init_manager` passed to `ScopedRoutesConfigProviderUtil::create()` from the listener-level init_manager to the server-level init_manager. When a listener with SRDS arrives via LDS after the server init_manager has already reached the `Initialized` state, the SRDS init target is silently discarded in release builds, and the SRDS subscription never starts. The fix adds an `Init::Manager&` parameter to `SrdsFactory::createConfigProvider()` and passes the listener's init_manager from the HCM config constructor, restoring the correct behavior that existed before PR envoyproxy#33192 and matching how RDS handles init_manager propagation. AI-assisted: Claude opus-4.6 was used to help write the unit test and PR description. The fix itself and root cause analysis were done manually. ### Risk Level: Low ### Testing: - `//test/common/router:scoped_rds_test` PASSED - `//test/extensions/filters/network/http_connection_manager:config_test` PASSED - `//test/integration:scoped_rds_integration_test` PASSED - Higress kind cluster integration test with Delta xDS + SRDS PASSED ### Docs Changes: N/A ### Release Notes: N/A ### Platform Specific Features: N/A --------- Signed-off-by: jingze <daijingze.djz@alibaba-inc.com> Signed-off-by: Jingze <52855280+Jing-ze@users.noreply.github.com> Signed-off-by: bjmask <11672696+bjmask@users.noreply.github.com>
…nvoyproxy#43392) ### Description: PR envoyproxy#33192 refactored SRDS to use a `SrdsFactory` interface for decoupling, but inadvertently changed the `init_manager` passed to `ScopedRoutesConfigProviderUtil::create()` from the listener-level init_manager to the server-level init_manager. When a listener with SRDS arrives via LDS after the server init_manager has already reached the `Initialized` state, the SRDS init target is silently discarded in release builds, and the SRDS subscription never starts. The fix adds an `Init::Manager&` parameter to `SrdsFactory::createConfigProvider()` and passes the listener's init_manager from the HCM config constructor, restoring the correct behavior that existed before PR envoyproxy#33192 and matching how RDS handles init_manager propagation. AI-assisted: Claude opus-4.6 was used to help write the unit test and PR description. The fix itself and root cause analysis were done manually. ### Risk Level: Low ### Testing: - `//test/common/router:scoped_rds_test` PASSED - `//test/extensions/filters/network/http_connection_manager:config_test` PASSED - `//test/integration:scoped_rds_integration_test` PASSED - Higress kind cluster integration test with Delta xDS + SRDS PASSED ### Docs Changes: N/A ### Release Notes: N/A ### Platform Specific Features: N/A --------- Signed-off-by: jingze <daijingze.djz@alibaba-inc.com> Signed-off-by: Jingze <52855280+Jing-ze@users.noreply.github.com>
…nvoyproxy#43392) ### Description: PR envoyproxy#33192 refactored SRDS to use a `SrdsFactory` interface for decoupling, but inadvertently changed the `init_manager` passed to `ScopedRoutesConfigProviderUtil::create()` from the listener-level init_manager to the server-level init_manager. When a listener with SRDS arrives via LDS after the server init_manager has already reached the `Initialized` state, the SRDS init target is silently discarded in release builds, and the SRDS subscription never starts. The fix adds an `Init::Manager&` parameter to `SrdsFactory::createConfigProvider()` and passes the listener's init_manager from the HCM config constructor, restoring the correct behavior that existed before PR envoyproxy#33192 and matching how RDS handles init_manager propagation. AI-assisted: Claude opus-4.6 was used to help write the unit test and PR description. The fix itself and root cause analysis were done manually. ### Risk Level: Low ### Testing: - `//test/common/router:scoped_rds_test` PASSED - `//test/extensions/filters/network/http_connection_manager:config_test` PASSED - `//test/integration:scoped_rds_integration_test` PASSED - Higress kind cluster integration test with Delta xDS + SRDS PASSED ### Docs Changes: N/A ### Release Notes: N/A ### Platform Specific Features: N/A --------- Signed-off-by: jingze <daijingze.djz@alibaba-inc.com> Signed-off-by: Jingze <52855280+Jing-ze@users.noreply.github.com>
…nvoyproxy#43392) ### Description: PR envoyproxy#33192 refactored SRDS to use a `SrdsFactory` interface for decoupling, but inadvertently changed the `init_manager` passed to `ScopedRoutesConfigProviderUtil::create()` from the listener-level init_manager to the server-level init_manager. When a listener with SRDS arrives via LDS after the server init_manager has already reached the `Initialized` state, the SRDS init target is silently discarded in release builds, and the SRDS subscription never starts. The fix adds an `Init::Manager&` parameter to `SrdsFactory::createConfigProvider()` and passes the listener's init_manager from the HCM config constructor, restoring the correct behavior that existed before PR envoyproxy#33192 and matching how RDS handles init_manager propagation. AI-assisted: Claude opus-4.6 was used to help write the unit test and PR description. The fix itself and root cause analysis were done manually. ### Risk Level: Low ### Testing: - `//test/common/router:scoped_rds_test` PASSED - `//test/extensions/filters/network/http_connection_manager:config_test` PASSED - `//test/integration:scoped_rds_integration_test` PASSED - Higress kind cluster integration test with Delta xDS + SRDS PASSED ### Docs Changes: N/A ### Release Notes: N/A ### Platform Specific Features: N/A --------- Signed-off-by: jingze <daijingze.djz@alibaba-inc.com> Signed-off-by: Jingze <52855280+Jing-ze@users.noreply.github.com>
Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]