Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

parallel/test-runner-cli-concurrency fails with EBUSY: resource busy or locked #50101

Closed
richardlau opened this issue Oct 9, 2023 · 0 comments · Fixed by #50108
Closed

parallel/test-runner-cli-concurrency fails with EBUSY: resource busy or locked #50101

richardlau opened this issue Oct 9, 2023 · 0 comments · Fixed by #50108
Labels
flaky-test Issues and PRs related to the tests with unstable failures on the CI. windows Issues and PRs related to the Windows platform.

Comments

@richardlau
Copy link
Member

Test

parallel/test-runner-cli-concurrency

Platform

Windows

Console output

08:25:15 not ok 648 parallel/test-runner-cli-concurrency
08:25:15   ---
08:25:15   duration_ms: 1568.01900
08:25:15   severity: fail
08:25:15   exitcode: 1
08:25:15   stack: |-
08:25:15     TAP version 13
08:25:15     # Subtest: concurrency of one
08:25:15     ok 1 - concurrency of one
08:25:15       ---
08:25:15       duration_ms: 1120.0039
08:25:15       ...
08:25:15     # Subtest: concurrency of two
08:25:15     not ok 2 - concurrency of two
08:25:15       ---
08:25:15       duration_ms: 1.3672
08:25:15       location: 'C:\\workspace\\node-test-binary-windows-js-suites\\node\\test\\parallel\\test-runner-cli-concurrency.js:36:1'
08:25:15       failureType: 'hookFailed'
08:25:15       error: "EBUSY: resource busy or locked, rmdir '\\\\?\\C:\\workspace\\node-test-binary-windows-js-suites\\node\\test\\.tmp.644'"
08:25:15       code: 'EBUSY'
08:25:15       stack: |-
08:25:15         rmdirSync (node:fs:1232:10)
08:25:15         _rmdirSync (node:internal/fs/rimraf:235:5)
08:25:15         rimrafSync (node:internal/fs/rimraf:193:7)
08:25:15         Object.rmSync (node:fs:1281:10)
08:25:15         rmSync (C:\workspace\node-test-binary-windows-js-suites\node\test\common\tmpdir.js:20:8)
08:25:15         Object.refresh (C:\workspace\node-test-binary-windows-js-suites\node\test\common\tmpdir.js:35:3)
08:25:15         TestContext.<anonymous> (C:\workspace\node-test-binary-windows-js-suites\node\test\parallel\test-runner-cli-concurrency.js:20:10)
08:25:15         TestHook.runInAsyncScope (node:async_hooks:206:9)
08:25:15         TestHook.run (node:internal/test_runner/test:631:25)
08:25:15         TestHook.run (node:internal/test_runner/test:856:18)
08:25:15       ...
08:25:15     1..2
08:25:15     # tests 2
08:25:15     # suites 0
08:25:15     # pass 1
08:25:15     # fail 1
08:25:15     # cancelled 0
08:25:15     # skipped 0
08:25:15     # todo 0
08:25:15     # duration_ms 1136.2309
08:25:15     Can't clean tmpdir: C:\workspace\node-test-binary-windows-js-suites\node\test\.tmp.644
08:25:15     Files blocking: [ 'test-2.js' ]
08:25:15     
08:25:15     C:\workspace\node-test-binary-windows-js-suites\node\test\common\tmpdir.js:69
08:25:15         throw e;
08:25:15         ^
08:25:15     
08:25:15     Error: EBUSY: resource busy or locked, rmdir '\\?\C:\workspace\node-test-binary-windows-js-suites\node\test\.tmp.644'
08:25:15         at rmdirSync (node:fs:1232:10)
08:25:15         at _rmdirSync (node:internal/fs/rimraf:235:5)
08:25:15         at rimrafSync (node:internal/fs/rimraf:193:7)
08:25:15         at Object.rmSync (node:fs:1281:10)
08:25:15         at rmSync (C:\workspace\node-test-binary-windows-js-suites\node\test\common\tmpdir.js:20:8)
08:25:15         at onexit (C:\workspace\node-test-binary-windows-js-suites\node\test\common\tmpdir.js:54:5)
08:25:15         at process.<anonymous> (C:\workspace\node-test-binary-windows-js-suites\node\test\common\tmpdir.js:43:14)
08:25:15         at process.emit (node:events:527:35) {
08:25:15       errno: -4082,
08:25:15       syscall: 'rmdir',
08:25:15       code: 'EBUSY',
08:25:15       path: '\\\\?\\C:\\workspace\\node-test-binary-windows-js-suites\\node\\test\\.tmp.644'
08:25:15     }
08:25:15     
08:25:15     Node.js v21.0.0-pre
08:25:15   ...

Build links

Additional information

parallel/test-runner-cli-concurrency was added by #49996 yesterday and failed in today's daily build.

Given file deletion is involved, this is probably a case of file deletion semantics on Windows being different to POSIX, see https://www.youtube.com/watch?v=uhRWMGBjlO8&t=534s.

@richardlau richardlau added windows Issues and PRs related to the Windows platform. flaky-test Issues and PRs related to the tests with unstable failures on the CI. labels Oct 9, 2023
cjihrig added a commit to cjihrig/node that referenced this issue Oct 10, 2023
This test was flaky on Windows when trying to clean up the
tmp directory between tests. This commit updates the test to
not delete anything between tests.

Fixes: nodejs#50101
cjihrig added a commit to cjihrig/node that referenced this issue Oct 10, 2023
This test was flaky on Windows when trying to clean up the
tmp directory between tests. This commit updates the test to
not delete anything between tests.

Fixes: nodejs#50101
cjihrig added a commit to cjihrig/node that referenced this issue Oct 10, 2023
This test was flaky on Windows when trying to clean up the
tmp directory, probably because it relied on child processes
timing out and being killed.

This commit updates the test to check for debug output
from the test runner. This should be adequate because the
original change was effectively:

let concurrency = getOptionValue('--test-concurrency') || true;

The test runner now logs the value of the concurrency variable.

Fixes: nodejs#50101
nodejs-github-bot pushed a commit that referenced this issue Oct 12, 2023
This test was flaky on Windows when trying to clean up the
tmp directory, probably because it relied on child processes
timing out and being killed.

This commit updates the test to check for debug output
from the test runner. This should be adequate because the
original change was effectively:

let concurrency = getOptionValue('--test-concurrency') || true;

The test runner now logs the value of the concurrency variable.

Fixes: #50101
PR-URL: #50108
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Geoffrey Booth <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
alexfernandez pushed a commit to alexfernandez/node that referenced this issue Nov 1, 2023
This test was flaky on Windows when trying to clean up the
tmp directory, probably because it relied on child processes
timing out and being killed.

This commit updates the test to check for debug output
from the test runner. This should be adequate because the
original change was effectively:

let concurrency = getOptionValue('--test-concurrency') || true;

The test runner now logs the value of the concurrency variable.

Fixes: nodejs#50101
PR-URL: nodejs#50108
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Geoffrey Booth <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
targos pushed a commit that referenced this issue Nov 11, 2023
This test was flaky on Windows when trying to clean up the
tmp directory, probably because it relied on child processes
timing out and being killed.

This commit updates the test to check for debug output
from the test runner. This should be adequate because the
original change was effectively:

let concurrency = getOptionValue('--test-concurrency') || true;

The test runner now logs the value of the concurrency variable.

Fixes: #50101
PR-URL: #50108
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Geoffrey Booth <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
targos pushed a commit that referenced this issue Nov 27, 2023
This test was flaky on Windows when trying to clean up the
tmp directory, probably because it relied on child processes
timing out and being killed.

This commit updates the test to check for debug output
from the test runner. This should be adequate because the
original change was effectively:

let concurrency = getOptionValue('--test-concurrency') || true;

The test runner now logs the value of the concurrency variable.

Fixes: #50101
PR-URL: #50108
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Geoffrey Booth <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
debadree25 pushed a commit to debadree25/node that referenced this issue Apr 15, 2024
This test was flaky on Windows when trying to clean up the
tmp directory, probably because it relied on child processes
timing out and being killed.

This commit updates the test to check for debug output
from the test runner. This should be adequate because the
original change was effectively:

let concurrency = getOptionValue('--test-concurrency') || true;

The test runner now logs the value of the concurrency variable.

Fixes: nodejs#50101
PR-URL: nodejs#50108
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Geoffrey Booth <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
sercher added a commit to sercher/graaljs that referenced this issue Apr 25, 2024
This test was flaky on Windows when trying to clean up the
tmp directory, probably because it relied on child processes
timing out and being killed.

This commit updates the test to check for debug output
from the test runner. This should be adequate because the
original change was effectively:

let concurrency = getOptionValue('--test-concurrency') || true;

The test runner now logs the value of the concurrency variable.

Fixes: nodejs/node#50101
PR-URL: nodejs/node#50108
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Geoffrey Booth <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
sercher added a commit to sercher/graaljs that referenced this issue Apr 25, 2024
This test was flaky on Windows when trying to clean up the
tmp directory, probably because it relied on child processes
timing out and being killed.

This commit updates the test to check for debug output
from the test runner. This should be adequate because the
original change was effectively:

let concurrency = getOptionValue('--test-concurrency') || true;

The test runner now logs the value of the concurrency variable.

Fixes: nodejs/node#50101
PR-URL: nodejs/node#50108
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Geoffrey Booth <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
flaky-test Issues and PRs related to the tests with unstable failures on the CI. windows Issues and PRs related to the Windows platform.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant