child_process.execFileSync fails with EISDIR: illegal operation on a directory, lstat 'C:' on Windows in Node.js 22.20.0
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- JavaScript
- Sterne
- 122k
- Forks
- 37.3k
- Ø Merge
- 4 T. 2 Std.
- Gemergte PRs (30 T.)
- 283
Beschreibung
Version
v22.20.0
Platform
Microsoft Windows NT 10.0.26200.0 x64
Subsystem
No response
What steps will reproduce the bug?
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:
- Very long paths (>260 characters) with \?\ prefix
How often does it reproduce? Is there a required condition?
Reproducible every time with long paths with \?\ prefix on Windows
What is the expected behavior? Why is that the expected behavior?
In node 20.19.0 tests with long paths with \?\ prefix were passing successfully
What do you see instead?
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:'
}
Additional information
No response
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, child_process.execFileSync unter Windows 22.20.0 mit einem langen \?\ Pfad zu reproduzieren, und vergleiche dann das Ergebnis mit Node 20.19.0. Verfolge den gemeldeten Pfad durch internal/modules/helpers, internal/modules/cjs/loader und internal/modules/run_main; als erledigt gilt, wenn das betroffene Pfadmuster ohne den EISDIR lstat-Fehler erfolgreich ausgeführt wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, node.js
- Bereich
- backend, operating-systems
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Aktiv
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 48/100