envoyproxy/envoy

RTDS snapshot should be pinned to each stream

Open

#10,731 opened on Apr 9, 2020

View on GitHub
 (1 comment) (0 reactions) (0 assignees)C++ (5,373 forks)batch import
area/runtimehelp wanted

Repository metrics

Stars
 (27,997 stars)
PR merge metrics
 (Avg merge 8d) (378 merged PRs in 30d)

Description

Title: we should keep runtime's consistency during a request's lifecycle.

Description: runtime layers should be consistent during processing of a request.

Repro steps:

a bug scenario: filter A reads version 1 of runtime snapshot, filter A stopIteration, waits for a some callback result, say on-demand-rds a new Runtime snapshot (version 2) is pushed by RTDS, filter A resume the filter iteration, and filter B now sees version 2 when it reads from loader.runtime().snapshot()

IMO, We should latch the runtime snapshot to a stream during its creation time.

Contributor guide