Skip to content

childprocess kill() results in -4048 EPERM error on windows since update to v21.6.2 #51766

Closed
@Uzlopak

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.

Metadata

Assignees

No one assigned

    Labels

    child_processIssues and PRs related to the child_process subsystem.libuvIssues and PRs related to the libuv dependency or the uv binding.windowsIssues and PRs related to the Windows platform.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions