Windows path handling regression in Node.js 22.20.0 affecting execFileSync.
The issue describes a regression in Node.js 22.20.0 where child_process.execFileSync fails with EISDIR errors on Windows when handling long paths with \?\ prefix. The fix likely involves Windows-specific path resolution logic, but requires understanding of Node's module system and Windows path handling. The exact scope isn't fully clear without deeper investigation of the module resolution changes between versions.
v22.20.0
Microsoft Windows NT 10.0.26200.0 x64
No response
Node.js 22.20.0 may have introduced a regression in module resolution where child_process.execFileSync() fails when executing binaries from certain Windows paths. The error occurs during internal module resolution and affects multiple path patterns.
Error: EISDIR: illegal operation on a directory, lstat 'C:'
at Object.realpathSync (node:fs:2744:25)
at toRealPath (node:internal/modules/helpers:61:13)
at Module._findPath (node:internal/modules/cjs/loader:746:22)
at resolveMainPath (node:internal/modules/run_main:39:23)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:163:20)
at node:internal/main/run_main_module:36:49
Affected Path Patterns:
Reproducible every time with long paths with \?\ prefix on Windows
In node 20.19.0 tests with long paths with \?\ prefix were passing successfully
Error: EISDIR: illegal operation on a directory, lstat 'C:'
at Object.realpathSync (node:fs:2744:25)
at toRealPath (node:internal/modules/helpers:61:13)
at Module._findPath (node:internal/modules/cjs/loader:746:22)
at resolveMainPath (node:internal/modules/run_main:39:23)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:163:20)
at node:internal/main/run_main_module:36:49 {
errno: -4068,
code: 'EISDIR',
syscall: 'lstat',
path: 'C:'
}
No response
Claim this issue to let others know you're working on it. You'll earn 10 points when you complete it!