Envoy: VHDS subscription could refer a destructed init manager

Created on 6 Dec 2019  Â·  7Comments  Â·  Source: envoyproxy/envoy

Description:

Brainstormed in my PR https://github.com/envoyproxy/envoy/pull/9209 but then I realize the issue is there before.
https://github.com/envoyproxy/envoy/issues/7617

The background is RdsRouteConfigSubscription has been shared by multiple providers across listeners.
Upon subscription construction the subscription keep a reference to the Init::Manager provided by the listener.
If the RDS config has VHDS field, VHDS subscription will be created and that Init::Manager reference will be dereferenced.
Since subscription is shared across listeners, the above Init::Manager might be already destructed with the initial listener.

Boom.

arexds bug no stalebot

Most helpful comment

All 7 comments

This is a similar problem as RDS in the scope of SRDS, where a new subscription might be created exceed listenerImpl life-span. I think we can fix it by depending on a noop init manager when we detect that the listener is gone. it's kinda of an addition to the #7617, we can probably solve both in one shot.

Agree. Need to find another signal to indicate init_manager is not required.

This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or other activity occurs. Thank you for your contributions.

This issue has been automatically closed because it has not had activity in the last 37 days. If this issue is still valid, please ping a maintainer and ask them to label it as "help wanted". Thank you for your contributions.

I believe this is fixed by #9779, in RDS onConfigUpdate a local init-manager is used instead of listener's init_manager_ in VHDS's subscription creation.

apparently I can't close it. :)

Was this page helpful?
0 / 5 - 0 ratings