Skip to content

deps: cherry-pick libuv/libuv@e640dc9 - #65118

Merged
nodejs-github-bot merged 1 commit into
mainfrom
unknown repository
Aug 14, 2026
Merged

nodejs-github-bot merged 1 commit into
mainfrom
unknown repository

Conversation

@ghost

@ghost ghost commented Aug 7, 2026

Copy link
Copy Markdown

Cherry-picks the upstream libuv fix for Windows fs-event watchers using 8.3 short paths.

When the watched directory is supplied in short-path form, resolving an event path to its long form can make it no longer share the stored directory prefix. Instead of asserting (or calculating an invalid relative path in release builds), fall back to the filename returned by ReadDirectoryChangesW, which is already relative to the watched directory. The regression test now creates a real directory with distinct long and short forms and tries both the Windows temporary directory and the current directory.

Fixes: #63638
Refs: libuv/libuv#5152
Refs: libuv/libuv@e640dc9

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/security-wg

@nodejs-github-bot nodejs-github-bot added libuv Issues and PRs related to the libuv dependency or the uv binding. needs-ci PRs that need a full CI run. labels Aug 7, 2026
@aduh95 aduh95 added author ready PRs with CI started, the required approvals, and no outstanding review comments. request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. labels Aug 11, 2026
@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Aug 11, 2026
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@aduh95 aduh95 added the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 11, 2026
@nodejs-github-bot
nodejs-github-bot merged commit 38e3955 into nodejs:main Aug 14, 2026
72 of 73 checks passed
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Landed in 38e3955

@nodejs-github-bot nodejs-github-bot removed the commit-queue PRs queued for automated landing through the Commit Queue. label Aug 14, 2026
erossignon added a commit to node-opcua/node-opcua that referenced this pull request Aug 25, 2026
Neither libuv fix Windows needs is in a released 24.x: the async-close
assertion (nodejs/node#61999) and the 24.16.0 fs-event regression
(nodejs/node#65118) are both on main only. No pin can be green, so float
24.x non-blocking - it goes green on its own once a release carries both.
The 24.19.0 pin this replaces was strictly worse than the 24.15.0 before
it, which predates the fs-event regression and so carries one bug, not two.

Leak detection drops from five jobs to one. Its checks are JS-level and
platform-independent, so the other four repeated a single signal. It gets
--expose-gc via NODE_OPTIONS rather than the test:parallel script, keeping
that a plain test run for developers; without the flag the detector costs
time and measures nothing.

parallel_test.js: the CPU=<n> override is honoured again, and the worker
floor of 4 applies only to the computed default.
aduh95 pushed a commit that referenced this pull request Aug 25, 2026
Signed-off-by: ulofiai <[email protected]>
PR-URL: #65118
Fixes: #63638
Refs: libuv/libuv#5152
Refs: libuv/libuv@e640dc9
Reviewed-By: Antoine du Hamel <[email protected]>
aduh95 pushed a commit that referenced this pull request Aug 25, 2026
Signed-off-by: ulofiai <[email protected]>
PR-URL: #65118
Fixes: #63638
Refs: libuv/libuv#5152
Refs: libuv/libuv@e640dc9
Reviewed-By: Antoine du Hamel <[email protected]>
erossignon added a commit to node-opcua/node-opcua that referenced this pull request Aug 26, 2026
Neither libuv fix Windows needs is in a released 24.x: the async-close
assertion (nodejs/node#61999) and the 24.16.0 fs-event regression
(nodejs/node#65118) are both on main only. No pin can be green, so float
24.x non-blocking - it goes green on its own once a release carries both.
The 24.19.0 pin this replaces was strictly worse than the 24.15.0 before
it, which predates the fs-event regression and so carries one bug, not two.

Leak detection drops from five jobs to one. Its checks are JS-level and
platform-independent, so the other four repeated a single signal. It gets
--expose-gc via NODE_OPTIONS rather than the test:parallel script, keeping
that a plain test run for developers; without the flag the detector costs
time and measures nothing.

parallel_test.js: the CPU=<n> override is honoured again, and the worker
floor of 4 applies only to the computed default.
aduh95 pushed a commit that referenced this pull request Aug 27, 2026
Signed-off-by: ulofiai <[email protected]>
PR-URL: #65118
Fixes: #63638
Refs: libuv/libuv#5152
Refs: libuv/libuv@e640dc9
Reviewed-By: Antoine du Hamel <[email protected]>
Tobbe pushed a commit to cedarjs/cedar that referenced this pull request Sep 25, 2026
…2824)

## Why

Windows CI has been pinned to Node `24.15.0` since the libuv
file-watcher
assertion crash (libuv/libuv#5010) was discovered. That reason no longer
applies: the fix shipped in libuv#5152, was cherry-picked into Node via
nodejs/node#65118, and first released in **Node 24.21.0** (2026-09-08).

Investigating #2146 (recurring nightly Windows CI
failures), the
dominant signature is a V8 Maglev JIT crash (exit code `3221226505` /
`STATUS_STACK_BUFFER_OVERRUN`, tracked upstream at nodejs/node#62260).
We
already mitigate this for `cedar dev`'s web server via `--no-maglev`
(`packages/cli/src/commands/dev/devHandler.ts`), but:

- the crash still recurs even with `--no-maglev` present — confirmed
upstream on 2026-09-21 that the flag only reduces the crash rate ~5x, it
  doesn't eliminate it
- it also crashes in paths the flag never covers, e.g. `yarn install`
  itself (observed in a Sept 10 RSC smoke-tests run)

One upstream reporter also noted their repro doesn't reproduce on Node
`24.19.0`/`22.23.2` while it does on `24.12.0`, suggesting additional
relevant fixes landed in that range too — all after our `24.15.0` pin.

## What

Drop the Windows-only version override in `set-up-job/action.yml` so
Windows tracks the same floating `24` as every other platform, picking
up
both the libuv fix and any V8/Maglev-adjacent fixes in later 24.x
releases.

This isn't expected to fully eliminate the Maglev crashes (upstream is
explicit that `--no-maglev` alone doesn't), but it removes an
unnecessary
constraint and may reduce the frequency. Worth keeping `--no-maglev` and
extending it to the still-uncovered paths (`yarn install`/corepack,
`cedar serve`, api-server-watch, `cedar storybook`) as a separate
follow-up if failures persist after this lands.

## Test plan

- [ ] Nightly Windows run (`.github/workflows/nightly-windows.yml`)
picks
      up Node 24.21.0+ and completes without regressions
- [ ] Watch #2146 for a change in failure
frequency/signature
      over the following nights
Tobbe pushed a commit to cedarjs/cedar that referenced this pull request Sep 26, 2026
…2824)

## Why

Windows CI has been pinned to Node `24.15.0` since the libuv
file-watcher
assertion crash (libuv/libuv#5010) was discovered. That reason no longer
applies: the fix shipped in libuv#5152, was cherry-picked into Node via
nodejs/node#65118, and first released in **Node 24.21.0** (2026-09-08).

Investigating #2146 (recurring nightly Windows CI
failures), the
dominant signature is a V8 Maglev JIT crash (exit code `3221226505` /
`STATUS_STACK_BUFFER_OVERRUN`, tracked upstream at nodejs/node#62260).
We
already mitigate this for `cedar dev`'s web server via `--no-maglev`
(`packages/cli/src/commands/dev/devHandler.ts`), but:

- the crash still recurs even with `--no-maglev` present — confirmed
upstream on 2026-09-21 that the flag only reduces the crash rate ~5x, it
  doesn't eliminate it
- it also crashes in paths the flag never covers, e.g. `yarn install`
  itself (observed in a Sept 10 RSC smoke-tests run)

One upstream reporter also noted their repro doesn't reproduce on Node
`24.19.0`/`22.23.2` while it does on `24.12.0`, suggesting additional
relevant fixes landed in that range too — all after our `24.15.0` pin.

## What

Drop the Windows-only version override in `set-up-job/action.yml` so
Windows tracks the same floating `24` as every other platform, picking
up
both the libuv fix and any V8/Maglev-adjacent fixes in later 24.x
releases.

This isn't expected to fully eliminate the Maglev crashes (upstream is
explicit that `--no-maglev` alone doesn't), but it removes an
unnecessary
constraint and may reduce the frequency. Worth keeping `--no-maglev` and
extending it to the still-uncovered paths (`yarn install`/corepack,
`cedar serve`, api-server-watch, `cedar storybook`) as a separate
follow-up if failures persist after this lands.

## Test plan

- [ ] Nightly Windows run (`.github/workflows/nightly-windows.yml`)
picks
      up Node 24.21.0+ and completes without regressions
- [ ] Watch #2146 for a change in failure
frequency/signature
      over the following nights

(cherry picked from commit 6923b19)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author ready PRs with CI started, the required approvals, and no outstanding review comments. libuv Issues and PRs related to the libuv dependency or the uv binding. needs-ci PRs that need a full CI run.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Potential regression with libuv in Node 24.16.0

2 participants