Title: Backport libuv 1.53.0 (Windows AppContainer named-pipe fix) to v24.x · Issue #66374 · nodejs/node · GitHub
Open Graph Title: Backport libuv 1.53.0 (Windows AppContainer named-pipe fix) to v24.x · Issue #66374 · nodejs/node
X Title: Backport libuv 1.53.0 (Windows AppContainer named-pipe fix) to v24.x · Issue #66374 · nodejs/node
Description: Problem Inside a Windows AppContainer, child_process.spawn with stdio: 'pipe' or 'ipc' never completes and spins one core. libuv 1.52.1, which v24.x and v26.x bundle, names child stdio and IPC pipes \\?\pipe\uv\
Open Graph Description: Problem Inside a Windows AppContainer, child_process.spawn with stdio: 'pipe' or 'ipc' never completes and spins one core. libuv 1.52.1, which v24.x and v26.x bundle, names child stdio and IPC pipe...
X Description: Problem Inside a Windows AppContainer, child_process.spawn with stdio: 'pipe' or 'ipc' never completes and spins one core. libuv 1.52.1, which v24.x and v26.x bundle, names child st...
Opengraph URL: https://github.com/nodejs/node/issues/66374
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Backport libuv 1.53.0 (Windows AppContainer named-pipe fix) to v24.x","articleBody":"### Problem\n\nInside a Windows AppContainer, `child_process.spawn` with `stdio: 'pipe'` or `'ipc'` never completes and spins one core.\n\nlibuv 1.52.1, which v24.x and v26.x bundle, names child stdio and IPC pipes `\\\\?\\pipe\\uv\\\u003cn>-\u003cpid>` (`uv__unique_pipe_name`, `deps/uv/src/win/pipe.c`). Inside an AppContainer, CreateNamedPipe is refused with `ERROR_ACCESS_DENIED` except under `\\\\.\\pipe\\LOCAL\\`. `uv__pipe_server` reads `ERROR_ACCESS_DENIED` as a name collision, increments the counter and retries, so the loop never ends.\n\nlibuv fixed this in 1.53.0 (libuv/libuv#5178, fix libuv/libuv#5181, commit 2cadaa401670): it adds `LOCAL\\` only when the process token reports `TokenIsAppContainer`. Behaviour outside an AppContainer is unchanged. #66282 (\"deps: update libuv to 1.53.0\") is open against main.\n\n### Minimal reproduction\n\nRun node v24.x inside an AppContainer (for example with the `test/appcontainer.c` helper added in libuv/libuv#5181), with read access to node's directory:\n\n```js\nconst { spawn } = require('node:child_process');\nspawn(process.execPath, ['-e', '0'], { stdio: 'pipe' })\n .on('exit', (code) => console.log('exit', code));\n```\n\nObserved (our Windows testing, 27 and 28 September 2026): nothing is printed and the process spins one core. The same happens with an `'ipc'` stdio entry.\n\n### Expected behaviour\n\n`exit 0`.\n\n### Proposed fix\n\nLand libuv 1.53.0 on v24.x (and v26.x) once #66282 lands on main. If a libuv minor update is not acceptable for an LTS line, float 2cadaa401670 on `deps/uv` instead. Its runtime change is confined to `src/win/pipe.c` (the rest is tests and CI), and that hunk applies cleanly to v24.x's `deps/uv/src/win/pipe.c` today (`git apply --check`; v26.x's file is identical).\n\n### Why it matters\n\nAppContainer is the Windows sandbox for running agent-driven or untrusted code. Without the fix, any node program that spawns a child with pipes (package managers, CLIs, process supervisors) hangs at 100% CPU instead of failing, which is hard to diagnose. v24.x is the line applications pin to.\n","author":{"url":"https://github.com/jonathanlindsay","@type":"Person","name":"jonathanlindsay"},"datePublished":"2026-09-28T08:25:16Z","url":"https://github.com/nodejs/node/issues/66374"}
| react-profiling | 0 |
| react-import-map | react,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-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:a7beba69-ce9a-a554-54bc-a9825a962c3f |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | C608:1587FA:9320DB:C3B9A8:6AED2EB5 |
| html-safe-nonce | 25f6cf33edbe0f6a0e2052ce40ae0ac2c518c0a48050d33f724d1ff71b1defb9 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDNjA4OjE1ODdGQTo5MzIwREI6QzNCOUE4OjZBRUQyRUI1IiwidmlzaXRvcl9pZCI6IjM4Mzc0Nzg2OTQzNjc4NjY1NDkiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 06bdf7cd3aba1571934d6f8666d085cc6924162be2f77f40a801705600658c7d |
| hovercard-subject-tag | issue:5611594249 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/nodejs/node/66374/issue_layout |
| twitter:image | https://opengraph.githubassets.com/e0013991e97e7684cb249c05b3981061f3b49c24858cedb853a8ac8adafa38d2/nodejs/node/issues/66374 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/e0013991e97e7684cb249c05b3981061f3b49c24858cedb853a8ac8adafa38d2/nodejs/node/issues/66374 |
| og:image:alt | Problem Inside a Windows AppContainer, child_process.spawn with stdio: 'pipe' or 'ipc' never completes and spins one core. libuv 1.52.1, which v24.x and v26.x bundle, names child stdio and IPC pipe... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | jonathanlindsay |
| hostname | github.com |
| expected-hostname | github.com |
| None | e51d0b7b5ab34b1688c05b54c3ed17b8658b2fa9bca973a9c740683ccb12cf4a |
| turbo-cache-control | no-preview |
| go-import | github.com/nodejs/node git https://github.com/nodejs/node.git |
| octolytics-dimension-user_id | 9950313 |
| octolytics-dimension-user_login | nodejs |
| octolytics-dimension-repository_id | 27193779 |
| octolytics-dimension-repository_nwo | nodejs/node |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 27193779 |
| octolytics-dimension-repository_network_root_nwo | nodejs/node |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 59ebb7b901cc154ecc179a44f266fcf69f343b30 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
| react-app-name | issues |
Links:
Viewport: width=device-width