Repository navigation
fix(runtime): preserve generated stream snapshot and writer ownership on cleanup failure - #850
Merged
SunSi12138 merged 4 commits intoOct 12, 2026
Conversation
This was referenced Oct 11, 2026
SunSi12138
marked this pull request as ready for review
October 11, 2026 21:10
This was referenced Oct 11, 2026
Preserve the dependency upgrades and merged send-credit lease fix. Raise the live lease full-suite expectation by the two reviewed snapshot tests, keep all historical fixed allocation-control subjects and counts unchanged, and align new artifact workflows to v7.0.2.
SunSi12138
marked this pull request as draft
October 11, 2026 23:52
SunSi12138
marked this pull request as ready for review
October 11, 2026 23:52
SunSi12138
deleted the
fix/generated-stream-snapshot-ownership-20261011
branch
October 12, 2026 00:12
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
A generated server stream can call
IRpcSizedCodec.ReleaseSnapshottwice when the first release throws. The same cleanup failure can skip returning an unpublished writer. If serialization already failed, snapshot cleanup can replace the original exception.Change
Transfer snapshot ownership before calling the codec's release callback. During exception cleanup, retain the operation's original exception if snapshot release also fails, and always attempt writer return in a nested
finally. Flow windows, SendPump, public APIs and the wire protocol are unchanged.Evidence and current status
f8ba89121c87a6410a0139c44d7db30eab877f41, including fix(runtime): conserve connection credit on excess WindowUpdate #840 and perf(runtime): lazily allocate named stream routes for default-only requests #841.ReadOwnershipPipeReaderLifetimeTests.SuccessfulSuspensionsShouldNotAllocateAfterWarmupcheck (24,624 B instead of 0). The fourth full run was not run. This is not recorded as full-suite acceptance.Latest fixed controls and original CI
The latest head
15c9f30d44142995e957fd0cbb9f7a9eddc92782adds only the predeclared control collector; production code is byte-identical to9b6951536d6d1451c694fcf49a1fc73b4994d9d8.These subsequent results do not explain or erase the earlier 24,624 B failure. Its root cause remains unassigned: no allocation stack was obtained, and the fixed control did not reproduce it. No assertion, warmup, timeout, concurrency or allocation threshold was relaxed.
Raw artifacts: 11713043932, 11713477637, 11713659187. All ZIP digests and internal manifests were independently verified.
This independent correctness PR remains Draft for review; the prior full-suite failure remains visible. It is not B2/B3 performance evidence. #742, #800 and #803 are untouched. No automatic merge is requested.