envoyproxy / envoy

Cloud-native high-performance edge/middle/service proxy
https://www.envoyproxy.io
Apache License 2.0
24.97k stars 4.81k forks source link

[dataplane] reset ActiveStream::streamInfo().route() when clearRouteCache() #20157

Open stevenzzzz opened 2 years ago

stevenzzzz commented 2 years ago

Title: reset ActiveStream::streamInfo().route() when clearRouteCache()

Description: There is a gap between the ActiveStreamFilterBase::clearRouteCache and ActiveStreamFilterBase::streamInfo()::route():

whenever we call clearRouteCache(), the {en,de}codercallback.route() ONLY!, the streamInfo().route() is NOT updated.

The "new" route() on {en,de}codercallback will be reset when we refreshCachedRoute(), by either explicitly calling it, or calling {en,de}codercallback.route().

So after a clearCachedRoute(), the route() on streamInfo is "stale" and will be out-of-date until refreshCachedRoute() is called.

we should explicitly clear/reset streamINfo()::route_ in clearRouteCache()

stevenzzzz commented 2 years ago

@yanavlasov

github-actions[bot] commented 2 years ago

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 "no stalebot" or other activity occurs. Thank you for your contributions.

stevenzzzz commented 2 years ago

ping

stevenzzzz commented 2 years ago

can we nostale-bot this issue please.

stevenzzzz commented 2 years ago

/nostalebot