childprocess kill() results in -4048 EPERM error on windows since update to v21.6.2 #51766
Closed
Description
Version
v21.6.2
Platform
Microsoft Windows NT 10.0.22621.0 x64
Subsystem
child_process
What steps will reproduce the bug?
Suddenly in latest undici the tests in test/node-test/debug.js
fail if run under windows with node v21.6.2.
It fails under PowerShell and cmd.
It seems that there is suddenly a permission issue when trying to kill a child_process. With node v21.6.1 .kill() doesnt throw.
How often does it reproduce? Is there a required condition?
Always reproducable
What is the expected behavior? Why is that the expected behavior?
Should not throw (and close the child process)
What do you see instead?
PS C:\Users\Aras\Desktop\undici> node .\test\node-test\debug.js
✖ debug#websocket (175.6675ms)
Error: kill EPERM
at ChildProcess.kill (node:internal/child_process:512:26)
at TestContext.<anonymous> (C:\Users\Aras\Desktop\undici\test\node-test\debug.js:48:9)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Test.run (node:internal/test_runner/test:632:9)
at async startSubtest (node:internal/test_runner/harness:218:3) {
errno: -4048,
code: 'EPERM',
syscall: 'kill'
}
✖ debug#fetch (174.8844ms)
Error: kill EPERM
at ChildProcess.kill (node:internal/child_process:512:26)
at TestContext.<anonymous> (C:\Users\Aras\Desktop\undici\test\node-test\debug.js:83:9)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Test.run (node:internal/test_runner/test:632:9)
at async Test.processPendingSubtests (node:internal/test_runner/test:374:7) {
errno: -4048,
code: 'EPERM',
syscall: 'kill'
}
✖ debug#undici (150.1489ms)
Error: kill EPERM
at ChildProcess.kill (node:internal/child_process:512:26)
at TestContext.<anonymous> (C:\Users\Aras\Desktop\undici\test\node-test\debug.js:121:9)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Test.run (node:internal/test_runner/test:632:9)
at async Test.processPendingSubtests (node:internal/test_runner/test:374:7) {
errno: -4048,
code: 'EPERM',
syscall: 'kill'
}
ℹ tests 3
ℹ suites 0
ℹ pass 0
ℹ fail 3
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 511.956
✖ failing tests:
test at test\node-test\debug.js:11:1
✖ debug#websocket (175.6675ms)
Error: kill EPERM
at ChildProcess.kill (node:internal/child_process:512:26)
at TestContext.<anonymous> (C:\Users\Aras\Desktop\undici\test\node-test\debug.js:48:9)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Test.run (node:internal/test_runner/test:632:9)
at async startSubtest (node:internal/test_runner/harness:218:3) {
errno: -4048,
code: 'EPERM',
syscall: 'kill'
}
test at test\node-test\debug.js:51:1
✖ debug#fetch (174.8844ms)
Error: kill EPERM
at ChildProcess.kill (node:internal/child_process:512:26)
at TestContext.<anonymous> (C:\Users\Aras\Desktop\undici\test\node-test\debug.js:83:9)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Test.run (node:internal/test_runner/test:632:9)
at async Test.processPendingSubtests (node:internal/test_runner/test:374:7) {
errno: -4048,
code: 'EPERM',
syscall: 'kill'
}
test at test\node-test\debug.js:86:1
✖ debug#undici (150.1489ms)
Error: kill EPERM
at ChildProcess.kill (node:internal/child_process:512:26)
at TestContext.<anonymous> (C:\Users\Aras\Desktop\undici\test\node-test\debug.js:121:9)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Test.run (node:internal/test_runner/test:632:9)
at async Test.processPendingSubtests (node:internal/test_runner/test:374:7) {
errno: -4048,
code: 'EPERM',
syscall: 'kill'
}
Additional information
I assume that this bug is coming from libuv.