-
Notifications
You must be signed in to change notification settings - Fork 30k
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
flaky: test-child-process-pipe-dataflow #25988
Comments
if Is this system picked part of regular CI? @refack - can you please check if it has |
ran a 3K times on the failing system but no reproduce. It turns out that the assumptions about |
If the test fails with errors from the child commands, there is no debug info. Suppliment the stderr data so that we know what to look for. Refs: nodejs#25988 PR-URL: nodejs#26007 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
If the test fails with errors from the child commands, there is no debug info. Suppliment the stderr data so that we know what to look for. Refs: #25988 PR-URL: #26007 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
test-azure_msft-win10-x64-4 00:22:57 not ok 61 parallel/test-child-process-pipe-dataflow
00:22:57 ---
00:22:57 duration_ms: 0.175
00:22:57 severity: fail
00:22:57 exitcode: 1
00:22:57 stack: |-
00:22:57 got unexpected data from child #0:
00:22:57 cat
00:22:57 got unexpected data from child #0:
00:22:57 :
00:22:57 got unexpected data from child #0:
00:22:57
00:22:57 got unexpected data from child #0:
00:22:57 write error
00:22:57 got unexpected data from child #0:
00:22:57 :
00:22:57 got unexpected data from child #0:
00:22:57 No space left on device
00:22:57 got unexpected data from child #0:
00:22:57
00:22:57
00:22:57 assert.js:85
00:22:57 throw new AssertionError(obj);
00:22:57 ^
00:22:57
00:22:57 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
00:22:57
00:22:57 1 !== 0
00:22:57
00:22:57 at ChildProcess.<anonymous> (c:\workspace\node-test-binary-windows\test\parallel\test-child-process-pipe-dataflow.js:42:14)
00:22:57 at ChildProcess.<anonymous> (c:\workspace\node-test-binary-windows\test\common\index.js:358:15)
00:22:57 at ChildProcess.emit (events.js:198:13)
00:22:57 at Process.ChildProcess._handle.onexit (internal/child_process.js:254:12)
00:22:57 ... |
Is this expected? node/test/parallel/test-child-process-pipe-dataflow.js Lines 36 to 44 in 269103a
P.S. Worker had 60GB free disk space. |
P.S. I want to add a lint rule that looks for asserts with no message in loops 🤔 |
test-azure_msft-win10-x64-5 10:32:10 not ok 62 parallel/test-child-process-pipe-dataflow
10:32:10 ---
10:32:10 duration_ms: 0.212
10:32:10 severity: fail
10:32:10 exitcode: 1
10:32:10 stack: |-
10:32:10 assert.js:85
10:32:10 throw new AssertionError(obj);
10:32:10 ^
10:32:10
10:32:10 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
10:32:10
10:32:10 1 !== 0
10:32:10
10:32:10 at ChildProcess.<anonymous> (c:\workspace\node-test-binary-windows\test\parallel\test-child-process-pipe-dataflow.js:42:14)
10:32:10 at ChildProcess.<anonymous> (c:\workspace\node-test-binary-windows\test\common\index.js:358:15)
10:32:10 at ChildProcess.emit (events.js:198:13)
10:32:10 at Process.ChildProcess._handle.onexit (internal/child_process.js:254:12)
10:32:10 ... |
looking for suggestions here! |
test-azure_msft-win10-x64-2 18:23:33 not ok 130 parallel/test-child-process-pipe-dataflow
18:23:33 ---
18:23:33 duration_ms: 0.147
18:23:33 severity: fail
18:23:33 exitcode: 1
18:23:33 stack: |-
18:23:33 assert.js:89
18:23:33 throw new AssertionError(obj);
18:23:33 ^
18:23:33
18:23:33 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
18:23:33
18:23:33 1 !== 0
18:23:33
18:23:33 at ChildProcess.<anonymous> (c:\workspace\node-test-binary-windows-2\test\parallel\test-child-process-pipe-dataflow.js:46:14)
18:23:33 at ChildProcess.<anonymous> (c:\workspace\node-test-binary-windows-2\test\common\index.js:374:15)
18:23:33 at ChildProcess.emit (events.js:200:13)
18:23:33 at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12) {
18:23:33 generatedMessage: true,
18:23:33 code: 'ERR_ASSERTION',
18:23:33 actual: 1,
18:23:33 expected: 0,
18:23:33 operator: 'strictEqual'
18:23:33 }
18:23:33 ... |
as there was no associated |
I'll open a PR to add more debugging data so that if this happens again, at least we'll know which subprocess is failing. |
|
test-azure_msft-win10-x64-2 00:11:03 not ok 135 parallel/test-child-process-pipe-dataflow
00:11:03 ---
00:11:03 duration_ms: 0.212
00:11:03 severity: fail
00:11:03 exitcode: 1
00:11:03 stack: |-
00:11:03 Can't clean tmpdir: c:\workspace\node-test-binary-windows-2\test\.tmp.134
00:11:03 Files blocking: [ 'data.txt' ]
00:11:03
00:11:03 assert.js:93
00:11:03 throw new AssertionError(obj);
00:11:03 ^
00:11:03
00:11:03 AssertionError [ERR_ASSERTION]: child 1 exited with code 1
00:11:03 at ChildProcess.<anonymous> (c:\workspace\node-test-binary-windows-2\test\parallel\test-child-process-pipe-dataflow.js:49:14)
00:11:03 at ChildProcess.<anonymous> (c:\workspace\node-test-binary-windows-2\test\common\index.js:372:15)
00:11:03 at ChildProcess.emit (events.js:223:5)
00:11:03 at Process.ChildProcess._handle.onexit (internal/child_process.js:270:12) {
00:11:03 generatedMessage: false,
00:11:03 code: 'ERR_ASSERTION',
00:11:03 actual: 1,
00:11:03 expected: 0,
00:11:03 operator: 'strictEqual'
00:11:03 }
00:11:03 ... |
this does not look like the usual symptom this test was manifesting - |
It happened again a few hours ago: test-azure_msft-win10-x64-2 00:09:26 not ok 135 parallel/test-child-process-pipe-dataflow
00:09:26 ---
00:09:26 duration_ms: 0.194
00:09:26 severity: fail
00:09:26 exitcode: 1
00:09:26 stack: |-
00:09:26 assert.js:98
00:09:26 throw new AssertionError(obj);
00:09:26 ^
00:09:26
00:09:26 AssertionError [ERR_ASSERTION]: child 1 exited with code 1
00:09:26 at ChildProcess.<anonymous> (c:\workspace\node-test-binary-windows-2\test\parallel\test-child-process-pipe-dataflow.js:49:14)
00:09:26 at ChildProcess.<anonymous> (c:\workspace\node-test-binary-windows-2\test\common\index.js:372:15)
00:09:26 at ChildProcess.emit (events.js:219:5)
00:09:26 at Process.ChildProcess._handle.onexit (internal/child_process.js:274:12) {
00:09:26 generatedMessage: false,
00:09:26 code: 'ERR_ASSERTION',
00:09:26 actual: 1,
00:09:26 expected: 0,
00:09:26 operator: 'strictEqual'
00:09:26 }
00:09:26 ... |
Since stdio can still be open when the subprocess exits, I wonder if we're losing information by asserting so early on the error code? |
When the test fails, it usually ends up failing on the assertion that `wc` did not find as many bytes as it expected. That may not be helpful if it is caused by a failure earlier in the command pipeline ( cat | grep | wc ). Move the byte check to `process.on('exit')` so that other error handlers that report the existence of errors run first. Refs: nodejs#25988
When the test fails, it usually ends up failing on the assertion that `wc` did not find as many bytes as it expected. That may not be helpful if it is caused by a failure earlier in the command pipeline ( cat | grep | wc ). Move the byte check to `process.on('exit')` so that other error handlers that report the existence of errors run first. Refs: nodejs#25988 PR-URL: nodejs#37632 Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Different way of failing than the last time. A timeout this time.
|
When the test fails, it usually ends up failing on the assertion that `wc` did not find as many bytes as it expected. That may not be helpful if it is caused by a failure earlier in the command pipeline ( cat | grep | wc ). Move the byte check to `process.on('exit')` so that other error handlers that report the existence of errors run first. Refs: #25988 PR-URL: #37632 Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Make sure all the `wc` process stdout data is received before checking its validity. Fixes: #25988 PR-URL: #36366 Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
When the test fails, it usually ends up failing on the assertion that `wc` did not find as many bytes as it expected. That may not be helpful if it is caused by a failure earlier in the command pipeline ( cat | grep | wc ). Move the byte check to `process.on('exit')` so that other error handlers that report the existence of errors run first. Refs: #25988 PR-URL: #37632 Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This test started to fail again. Almost 100% of Windows CI runs are red. |
@targos this seems to fix the issue in my Windows machine: diff --git a/test/parallel/test-child-process-pipe-dataflow.js b/test/parallel/test-child-process-pipe-dataflow.js
index 2e2edc65e9..5b34ea1429 100644
--- a/test/parallel/test-child-process-pipe-dataflow.js
+++ b/test/parallel/test-child-process-pipe-dataflow.js
@@ -27,7 +27,7 @@ const MB = KB * KB;
// So cut the buffer into lines at some points, forcing
// data flow to be split in the stream.
for (let i = 1; i < KB; i++)
- buf.write(os.EOL, i * KB);
+ buf.write('\n', i * KB);
fs.writeFileSync(file, buf.toString());
cat = spawn('cat', [file]);
|
This almost always fail in the Windows CI now |
Job: https://ci.nodejs.org/job/node-test-binary-windows/23616/COMPILED_BY=vs2017,RUNNER=win10,RUN_SUBSET=3/testReport/junit/(root)/test/parallel_test_child_process_pipe_dataflow/
Worker: https://ci.nodejs.org/computer/test-azure_msft-win10-x64-3/
Code:
https://github.com/gireeshpunathil/node/blob/b1f82e4342f8a630b1ef83cd33781a725428f569/test/parallel/test-child-process-pipe-dataflow.js#L44-L46
Message:
The text was updated successfully, but these errors were encountered: