feat(runtime): add Bulwark failover replay support#10470
Conversation
25e9868 to
6a18746
Compare
9ebf0dc to
3c6281d
Compare
3c6281d to
1870b0c
Compare
7887e37 to
0074685
Compare
| Some(output) => output, | ||
| None => return, | ||
| }; | ||
| self.current_stream_has_output = true; |
There was a problem hiding this comment.
A non-migratable error frame with no data leaves current_stream_has_output false, so the following EOF is treated as an empty stream and can replay the request after already sending an error to the client. Fix: mark the current stream as having emitted a response frame before returning from track_response for data == None, or add a separate response-frame flag and use it for the empty-stream retry check.
🤖 AI Fix
In lib/llm/src/migration.rs, update RetryManager::track_response so it sets self.current_stream_has_output = true before matching response.data.as_ref(), ensuring error/annotation frames prevent the later empty-stream replay path from recreating the request after a frame was already returned.
6a18746 to
49cdf84
Compare
caa8c35 to
ed66524
Compare
ed66524 to
3d7d0b3
Compare
49cdf84 to
0decb04
Compare
|
Historical review record preserved. GitHub cannot retarget this merged stacked PR; its current replacement is #11049 (position 1/18). No historical comments or reviews are being deleted. |
Stacked PR in the GMS-managed KV review train.
Base:
review/gms-v2-latehost-05-trtllm-v2-integrationHead:
review/gms-v2-latehost-06-runtime-failover-replayRefs #10454 #10450
This PR is intentionally scoped to one commit in the train so reviewers can inspect the GMS KV ownership, engine integration, Bulwark, host-tier, router, and docs work incrementally.