flow_control: Refactor setWatermark #36738
Open
+68
−10
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Context
In upcoming flow control part 3 PR where downstream pushes back sidestream, sidestream needs to subscribe to downstream watermark events (via addDownstreamWatermarkCallbacks), so that back pressure can be invoked when when the downstream buffers are overrun
Problem Statement
The subscription(i.e.,addDownstreamWatermarkCallbacks)happens on pool ready which is initiated by client (e.g., ext_proc)'s startStream. However, the setWatermark happens after it (one line below). This leads to problem that
addDownstreamWatermarkCallbacks
in sidestream failed because watermark is not setTracing example of the repro :
Solution
Move
setWatermark
earlier right after stream has been initiated/started successfully . The watermark callbacks are passed by streamOptionsRisk Level: LOW? runtime gard.
Testing: ext_proc + gRPC integration test
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A