envoyproxy/envoy

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

Open

#20.157 geöffnet am 1. März 2022

Auf GitHub ansehen
 (5 Kommentare) (0 Reaktionen) (1 zugewiesene Person)C++ (5.373 Forks)batch import
area/httpbughelp wanted

Repository-Metriken

Stars
 (27.997 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 8T) (378 gemergte PRs in 30 T)

Beschreibung

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}coder_callback_.route() ONLY!, the streamInfo().route() is NOT updated.

The "new" route() on {en,de}coder_callback_ will be reset when we refreshCachedRoute(), by either explicitly calling it, or calling {en,de}coder_callback_.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()

Contributor Guide