René's URL Explorer Experiment


Title: Windows CI: test/sandbox-blocked.test.js never ends under --test-force-exit · Issue #1038 · kkrafft1999/snotra · GitHub

Open Graph Title: Windows CI: test/sandbox-blocked.test.js never ends under --test-force-exit · Issue #1038 · kkrafft1999/snotra

X Title: Windows CI: test/sandbox-blocked.test.js never ends under --test-force-exit · Issue #1038 · kkrafft1999/snotra

Description: What happened? Since #1029 put --test-force-exit on npm test, the Tests (windows-latest) job hangs in npm test until the 20-minute job limit cancels it. Both hangs looked at are the same file: test/sandbox-blocked.test.js never ends. All...

Open Graph Description: What happened? Since #1029 put --test-force-exit on npm test, the Tests (windows-latest) job hangs in npm test until the 20-minute job limit cancels it. Both hangs looked at are the same file: test...

X Description: What happened? Since #1029 put --test-force-exit on npm test, the Tests (windows-latest) job hangs in npm test until the 20-minute job limit cancels it. Both hangs looked at are the same file: test...

Opengraph URL: https://github.com/kkrafft1999/snotra/issues/1038

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Windows CI: test/sandbox-blocked.test.js never ends under --test-force-exit","articleBody":"## What happened?\n\nSince #1029 put `--test-force-exit` on `npm test`, the `Tests (windows-latest)` job hangs in `npm test` until the 20-minute job limit cancels it. Both hangs looked at are the same file: **`test/sandbox-blocked.test.js`** never ends.\n\n- All eleven tests in the file pass, together in under a second. The file's process then stays alive: 1085 s and 1092 s until the cancel.\n- Every other unit file passes (4114 and 4123 of them). The 107 files listed under *Interrupted while running* are just the ones after `sandbox-blocked` in alphabetical order: they ran, but the reporter prints files in order and was waiting for this one.\n- Windows only. On macOS the same file with the same flags ended in under a second 30 times out of 30.\n- Not the environment: Node 24.21.0 and runner image `windows-2025-vs2026` / `20261002.596` in the green runs and in the hanging ones alike. Not `node_modules` either: nothing of it is tracked, `npm ci` takes its usual ~17 s, and the generated-file check reads only `src/preload` and `src/shared`.\n- Not tied to one branch: it hung on `claude/gitignore-node-modules-symlink` (run 38951875833, twice) and on `claude/mach-noch-1013-fcd6d3` (run 38953242527, #1031).\n\nWindows `npm test` over 2026-10-15/16: 37 runs before #1029 all green, then 3 green and 3 hanging.\n\n**Working hypothesis, not proven.** With `--test-force-exit` the root test in the child does not call `process.exit()` straight away: it waits for each reporter destination, that is its own stdout pipe, to emit `'unpipe'` and close first ([lib/internal/test_runner/test.js](https://github.com/nodejs/node/blob/v24.x/lib/internal/test_runner/test.js)). The parent waits for the child's `exit` *and* for `finished(child.stdout)`, with no per-file limit ([runner.js](https://github.com/nodejs/node/blob/v24.x/lib/internal/test_runner/runner.js)). If that `'unpipe'` never comes on a Windows pipe while something keeps the child's loop alive, the file never ends. Why this file and not the 76 others that use the same happy-dom helper is open.\n\n## Steps to reproduce\n\n1. Push any branch based on `main` after `d798320` (#1029).\n2. Watch `Tests (windows-latest)` → *Run npm test*. Not every run hangs (3 of the last 6 did).\n\n## Expected behaviour\n\n`npm test` on Windows ends in its usual ~2 minutes, and a file whose tests are through ends with them.\n\n## Mitigation in place\n\n`--test-force-exit` is taken off `npm test` (see the pull request that references this issue); `test:e2e` keeps it, because the hang #997 was about is an E2E one. This issue is about the cause, so the flag can come back to the unit suite — or stay off for a reason we know.\n\n## What to find out\n\n- [ ] A diagnostic run on Windows: `test/sandbox-blocked.test.js` alone, many times in a row, with and without `--test-force-exit` — does only the flag make it hang?\n- [ ] When it hangs: what keeps the child alive — a handle dump (`process.getActiveResourcesInfo()` from a timer in the file, or `why-is-node-running`), and whether the child has exited while its stdout stays open.\n- [ ] Whether `withDom()` not awaiting happy-dom's `window.close()` matters here (it returns a promise in happy-dom 20.14.5).\n- [ ] If it is Node's force-exit path: a minimal repro and a report upstream; if it is ours: the fix in the file or the helper.\n- [ ] Decide whether `npm test` gets `--test-force-exit` back, and update the table under *Time limits* in `docs/test-concept.md`.\n\n## App version\n\nNot app-related: test runner on CI, `main` from `d798320` on.\n\n## Operating system\n\nWindows (GitHub runner `windows-latest`, image `windows-2025-vs2026` `20261002.596`), Node 24.21.0.\n\n## Logs / screenshots\n\nFrom run 38953242527, job *Tests (windows-latest)*:\n\n```\n✖ test\\sandbox-blocked.test.js (1092833.9159ms)\n  'Promise resolution is still pending but the event loop has already resolved'\n##[error]The operation was canceled.\n```\n\nChecked on 2026-10-16. Related: #997, #1029.\n","author":{"url":"https://github.com/kkrafft1999","@type":"Person","name":"kkrafft1999"},"datePublished":"2026-10-16T19:43:38Z","url":"https://github.com/kkrafft1999/snotra/issues/1038"}

react-profiling0
react-import-mapreact,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf
route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:248a671d-454e-1036-0c97-d95ddee26bc6
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idE940:2E466E:3163AD:44892D:6AEDB3BE
html-safe-noncefe6a5a638938e8113c46caca8bd4036fa9fb5199ea48ff0be3750718f05d588c
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFOTQwOjJFNDY2RTozMTYzQUQ6NDQ4OTJEOjZBRURCM0JFIiwidmlzaXRvcl9pZCI6IjQ2OTQ2ODY4OTQ1NzY3NDMzNTgiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac7ab282b3df763f682a25a6e4c9c5c988a12504d4512e15d957c2b282cfab8ad6
hovercard-subject-tagissue:5890178673
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/kkrafft1999/snotra/1038/issue_layout
twitter:imagehttps://opengraph.githubassets.com/60e168a78eb056804e9a2ac6be20681f8e6a6ea2ebe13db6caaf69192415c9f6/kkrafft1999/snotra/issues/1038
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/60e168a78eb056804e9a2ac6be20681f8e6a6ea2ebe13db6caaf69192415c9f6/kkrafft1999/snotra/issues/1038
og:image:altWhat happened? Since #1029 put --test-force-exit on npm test, the Tests (windows-latest) job hangs in npm test until the 20-minute job limit cancels it. Both hangs looked at are the same file: test...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamekkrafft1999
hostnamegithub.com
expected-hostnamegithub.com
Nonee40242599af5e7da0f281843dec7492c322688d4a48caeea85f9fb8e41c8ea53
turbo-cache-controlno-preview
go-importgithub.com/kkrafft1999/snotra git https://github.com/kkrafft1999/snotra.git
octolytics-dimension-user_id16942747
octolytics-dimension-user_loginkkrafft1999
octolytics-dimension-repository_id1227796195
octolytics-dimension-repository_nwokkrafft1999/snotra
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1227796195
octolytics-dimension-repository_network_root_nwokkrafft1999/snotra
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release89cbf2bb52a24fc179bf5925abba0ba574b262ce
ui-targetfull
theme-color#1e2327
color-schemelight dark
react-app-nameissues

Links:

Skip to contenthttps://github.com/kkrafft1999/snotra/issues/1038#start-of-content
https://github.com/
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fkkrafft1999%2Fsnotra%2Fissues%2F1038
GitHubRepository hosting, code review, and collaborationhttps://github.com/platform
CopilotAI coding agent for tasks, projects, and automated workhttps://github.com/features/copilot
ActionsCI/CD and automationhttps://github.com/features/actions
Code QualityQuality analysis, fixes, and enforcementhttps://github.com/features/code-quality
CodespacesCloud development environmentshttps://github.com/features/codespaces
Code SecurityVulnerability detection and remediationhttps://github.com/security/advanced-security/code-security
Secret ProtectionSecret scanning and leak preventionhttps://github.com/security/advanced-security/secret-protection
All Featureshttps://github.com/features
Documentationhttps://docs.github.com/en
Traininghttps://learn.github.com/skills
Certificationshttps://learn.github.com/credentials
Build with Copilothttps://github.com/features/ai
Customize Copilothttps://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview
Integrationshttps://github.com/marketplace
Trending reposhttps://github.com/trending
GitHub Sponsorshttps://github.com/open-source/sponsors
Developer articleshttps://github.com/resources/articles
ChangelogYour source for the latest features, improvements, and fixes across GitHub products, all in one place.https://github.blog/changelog/
Enterpriseshttps://github.com/enterprise
Teamhttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
See all industrieshttps://github.com/solutions/industry
Why GitHubhttps://github.com/why-github
Customer Storieshttps://github.com/customer-stories
Business insightshttps://github.com/solutions/executive-insights
Trust Centerhttps://github.com/trust-center
GitHub Advanced SecurityEnterprise-grade code securityhttps://github.com/security/advanced-security
Copilot for businessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Documentationhttps://docs.github.com/en
Resource centerhttps://github.com/resources
Bloghttps://github.blog/
Events & webinarshttps://github.com/resources/events
Community Forumhttps://github.com/orgs/community/discussions
Customer Storieshttps://github.com/customer-stories
Integrationshttps://github.com/marketplace
Customer supporthttps://help.github.com/
Traininghttps://learn.github.com/skills
GitHub Statushttps://www.githubstatus.com/
Abouthttps://github.com/about
Partnershttps://github.com/partners
Changeloghttps://github.blog/changelog/
GitHub UniverseThe event for developers, by developers — talks, workshops, and what’s next for GitHub.https://githubuniverse.com/
Pricinghttps://github.com/pricing
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fkkrafft1999%2Fsnotra%2Fissues%2F1038
Sign uphttps://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=kkrafft1999%2Fsnotra
Reloadhttps://github.com/kkrafft1999/snotra/issues/1038
Reloadhttps://github.com/kkrafft1999/snotra/issues/1038
Reloadhttps://github.com/kkrafft1999/snotra/issues/1038
kkrafft1999https://github.com/kkrafft1999
snotrahttps://github.com/kkrafft1999/snotra
Codehttps://github.com/kkrafft1999/snotra
Issues30 (30)https://github.com/kkrafft1999/snotra/issues
Pull requestshttps://github.com/kkrafft1999/snotra/pulls
Discussionshttps://github.com/kkrafft1999/snotra/discussions
Actionshttps://github.com/kkrafft1999/snotra/actions
Projectshttps://github.com/kkrafft1999/snotra/projects
Security and qualityhttps://github.com/kkrafft1999/snotra/security
Insightshttps://github.com/kkrafft1999/snotra/pulse
https://github.com/kkrafft1999/snotra
New issuehttps://github.com/login?return_to=https://github.com/kkrafft1999/snotra/issues/1038
New issuehttps://github.com/login?return_to=https://github.com/kkrafft1999/snotra/issues/1038
#1053https://github.com/kkrafft1999/snotra/pull/1053
Windows CI: test/sandbox-blocked.test.js never ends under --test-force-exithttps://github.com/kkrafft1999/snotra/issues/1038#top
#1053https://github.com/kkrafft1999/snotra/pull/1053
bugSomething isn't workinghttps://github.com/kkrafft1999/snotra/issues?q=state%3Aopen%20label%3A%22bug%22
https://github.com/kkrafft1999
kkrafft1999https://github.com/kkrafft1999
on Oct 16, 2026https://github.com/kkrafft1999/snotra/issues/1038#issue-5890178673
#1029https://github.com/kkrafft1999/snotra/pull/1029
Fix the low-severity robustness and usability findings of AR-38 (#1013) #1031https://github.com/kkrafft1999/snotra/pull/1031
#1029https://github.com/kkrafft1999/snotra/pull/1029
lib/internal/test_runner/test.jshttps://github.com/nodejs/node/blob/v24.x/lib/internal/test_runner/test.js
runner.jshttps://github.com/nodejs/node/blob/v24.x/lib/internal/test_runner/runner.js
Put time limits on the test runs and the CI job (#997) #1029https://github.com/kkrafft1999/snotra/pull/1029
#997https://github.com/kkrafft1999/snotra/issues/997
#997https://github.com/kkrafft1999/snotra/issues/997
#1029https://github.com/kkrafft1999/snotra/pull/1029
kkrafft1999https://github.com/kkrafft1999
bugSomething isn't workinghttps://github.com/kkrafft1999/snotra/issues?q=state%3Aopen%20label%3A%22bug%22
on Oct 16, 2026https://github.com/kkrafft1999/snotra/issues/1038#event-33477765066
kkrafft1999https://github.com/kkrafft1999
on Oct 16, 2026https://github.com/kkrafft1999/snotra/issues/1038#event-33478261883
Run the unit suite without --test-force-exit (#1038) (#1039)https://github.com/kkrafft1999/snotra/commit/e6e71d439841198302d2d70bd6f2875c6b5ed5e7
#1038https://github.com/kkrafft1999/snotra/issues/1038
#1039https://github.com/kkrafft1999/snotra/pull/1039
e6e71d4https://github.com/kkrafft1999/snotra/commit/e6e71d439841198302d2d70bd6f2875c6b5ed5e7
https://github.com/kkrafft1999
kkrafft1999https://github.com/kkrafft1999
on Oct 16, 2026https://github.com/kkrafft1999/snotra/issues/1038#issuecomment-6223679494
nodejs/node#64833https://github.com/nodejs/node/issues/64833
nodejs/node#64875https://github.com/nodejs/node/pull/64875
nodejs/node#55099https://github.com/nodejs/node/pull/55099
A note on process I/Ohttps://nodejs.org/api/process.html#a-note-on-process-io
#1039https://github.com/kkrafft1999/snotra/pull/1039
test_runner: flush report stream before force exit nodejs/node#64875https://github.com/nodejs/node/pull/64875
https://github.com/kkrafft1999
kkrafft1999https://github.com/kkrafft1999
on Oct 17, 2026https://github.com/kkrafft1999/snotra/issues/1038#issuecomment-6231240394
nodejs/node#64274https://github.com/nodejs/node/issues/64274
nodejs/node#66171https://github.com/nodejs/node/pull/66171
test_runner: --test-force-exit with concurrency silently loses test verdicts (parent reports fewer tests than ran, exit 0) nodejs/node#64833https://github.com/nodejs/node/issues/64833
kkrafft1999https://github.com/kkrafft1999
on Oct 17, 2026https://github.com/kkrafft1999/snotra/issues/1038#event-33509383584
Keep --test-force-exit out of the Node 24 exit deadlock (#1038) (#1053)https://github.com/kkrafft1999/snotra/commit/b992d67b45ae300318d180c6890057227268acf7
#1038https://github.com/kkrafft1999/snotra/issues/1038
#1053https://github.com/kkrafft1999/snotra/pull/1053
b992d67https://github.com/kkrafft1999/snotra/commit/b992d67b45ae300318d180c6890057227268acf7
kkrafft1999https://github.com/kkrafft1999
completedhttps://github.com/kkrafft1999/snotra/issues?q=is%3Aissue%20state%3Aclosed%20archived%3Afalse%20reason%3Acompleted
#1053https://github.com/kkrafft1999/snotra/pull/1053
on Oct 17, 2026https://github.com/kkrafft1999/snotra/issues/1038#event-33509383799
Sign up for freehttps://github.com/signup?return_to=https://github.com/kkrafft1999/snotra/issues/1038
Sign in to commenthttps://github.com/login?return_to=https://github.com/kkrafft1999/snotra/issues/1038
bugSomething isn't workinghttps://github.com/kkrafft1999/snotra/issues?q=state%3Aopen%20label%3A%22bug%22
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.