Repository navigation
diagnostic, not for merging: module-graph-isolation.test.ts on macOS x64 and Windows - #45816
Closed
dylan-conway wants to merge 1 commit into
Closed
dylan-conway wants to merge 1 commit into
dylan-conway wants to merge 1 commit into
Conversation
Collaborator
|
Updated 8:05 PM PT - Oct 17th, 2026
❌ @dylan-conway, your commit 82c4966 has 2 failures in
🧪 To try this PR locally: bunx bun-pr 45816That installs a local version of the PR into your bun-45816 --bun |
dylan-conway
added a commit
that referenced
this pull request
Oct 18, 2026
…olation.test.ts (#45821) ### What does this PR do? Fixes the way "a server whose HTML routes were still being built is released with it" in `test/js/bun/module-graph/module-graph-isolation.test.ts` fails on Windows. The file failed and passed on a retry on the Windows 2019 x64 lane in builds of 8 branches between 127026 and 127507. Of the 4 I read, 3 are this test, each time after 30 s: ``` - "exitCode": 0, - "stdout": "collected", + "exitCode": 137, + "stdout": "", ``` The fixture asks a server for six HTML routes, and disposes the graph once it sees a request that is waiting for its build: ```js await until(() => server.pendingRequests >= 1); ``` `until` looks once per turn of the event loop. #45816 ran a copy of the fixture that reports where it is after 10 s, and it was there on both Windows lanes of build 127847: ``` STUCK: use 3: waiting for a pending request, pendingRequests 0, polls 3534993, sockets {"open":6,"data":6,"close":0,"error":0,"rejected":0} STUCK: use 2: waiting for a pending request, pendingRequests 0, polls 6509681, sockets {"open":6,"data":6,"close":0,"error":0,"rejected":0} ``` All six requests had been answered. They arrived and their builds finished between two looks, so the count went from 0 to 6 and back unseen, and it stays 0. The wait now also ends when every request has an answer. A server that was not disposed during a build shows nothing, so it does not count towards the three, and the fixture says so on stderr. This is not the `kept 1` that the same test gives on the macOS x64 lane. ### How did you verify your code works? **Windows 11 x64**, 24 cores, with a binary CI built from main's code (f1fc570). That test alone, main's file and this PR's in alternating rounds, 48 at a time for 1500 runs of each and 96 at a time for 6000: | | runs | exit 137, no output | servers whose builds were all done unseen | |---|---|---|---| | main | 7500 | 6 | | | this PR | 7500 | 0 | 4 | The four are runs that printed the new line, made another server, and passed. **Linux x64**, with the binary CI built for main (47c8687). To miss the builds on purpose, the third server's wait starts 200 ms late. The two tests that run this fixture: | | main | this PR | |---|---|---| | "a server whose HTML routes were still being built is released with it" | exit 137, no output | pass | | "and the plugins those builds borrowed from it stay the server's" | exit 137, no output | pass | With every server's wait 200 ms late, the fixture is killed after 30 s as before, with "every build was done before a turn saw one" 148 times in the output. As it is: the two tests pass 300 of 300 times on that binary and 60 of 60 on the ASAN one (5b468a6), and the whole file passes (413 pass). **A server that is kept still fails.** With every server the fixture makes pushed to a global array, both tests fail with `kept 3`. In CI: the file passed at the first attempt on both lanes in build 127869 (the first commit).
Collaborator
|
Findings on Measured
Read, not run
Not known Which of these is late on that lane: the builds, the close of the clients, or a real leak. On Linux I got no What would tell them apart At |
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.
Not for merging. Runs a copy of the
disposed-while-building-pages.mjsfixture 64 times next to the test that uses it, and on a failure prints where it is stuck, or what the heap snapshot says keeps the server and whether it goes later. To be closed once the macOS x64 and Windows jobs have run.