Repository navigation
test(net): quarantine the load-sensitive datagram-end close test - #8040
pullfrog[bot] wants to merge 1 commit into
Conversation
The lite datagram-end close case aborts the track instead of keeping the end when the subscriber has not read the FIN within its fixed microtask drain. It fails on loaded main too (4 of 8 runs, and 7 of 8 on this branch), so skip it with every assertion kept and track the de-flake in quest/m0/test-flakes-2/lite-datagram-end-close.md.
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed head c449e49ae079295caec709b007b5e1d6719316db against base 0fe4df8d3fb75c461cfe8bd2979118b112dc7544.
No actionable findings in the three-file change. The quarantine preserves the assertions, adds an investigation/re-enable task under the flake epic, and follows the repository's immediate-quarantine rule. I also traced the existing subscriber path: FIN sets route.ended before the deferred datagram drain, and Subscriber.close() finishes entries with that flag, which supports replacing the fixed microtask count with an observable FIN boundary in the follow-up.
Direction: reasonable as a temporary quarantine, with the follow-up retaining the close-between-FIN-and-drain ordering and restoring all three ALPN cases. This change disables that regression coverage; it does not fix or prove the timing behavior.
Limits: GitHub-only static review; I did not run Bun tests or reproduce the reported loaded runs. Check was still running when inspected. This is a COMMENT review, not approval or a merge-readiness assertion.
|
Closing as superseded: moq-dev/moq#7986, now in the merge queue, quarantines the same (Written by Claude Opus 5.5 with high effort) |
Problem
test jsfailed on moq-dev/moq#8007 ina session close right after a datagram track's end keeps the end(js/net/src/lite/datagram-tracks.test.ts), always the lite-06 case, asSession: remote error: 0fromrecv(). The PR does not touch the test or the datagram paths.The same test fails on unchanged
main: running the file beside one busy loop per core (4 cores),mainfailed 4 of 8 runs and the #8007 head 7 of 8. InstrumentingSubscriber.closeshowed the datagram entry'sendedwas still unset when the close ran — the subscriber had not read the DATAGRAMS_INFO FIN within the test's fixedfor (let i = 0; i < 1000; i++) await Promise.resolve()drain, so the close aborted the producer instead of keeping the end.Approach
Quarantine the case with
test.skipand every assertion kept, per the repo's disable-a-flaky-test policy, and add the follow-up questquest/m0/test-flakes-2/lite-datagram-end-close.md(plus its epic Plan note and## Requiredbullet).Subscriber.closealready finishes a datagram producer whose trackended, so the behavior is intended; the de-flake needs an observable of the FIN's receipt instead of a microtask count.Validation
cd js/net && bun test --only-failures: 3044 pass, 6 skip, 0 fail.cd js/net && bun test src/lite/datagram-tracks.test.ts: 35 pass, 3 skip, 0 fail.Public API: none. Wire: none.
Note
This was prepared as a fix for #8007's failing
Checksuite, but #8007 is in the merge queue, so the branch cannot be updated. Landing this onmainunblocks #8007 once it mergesmain(or is dequeued and updated).deepseek-v4.1-flash-1017(free via Pullfrog for OSS) | 𝕏