-
Notifications
You must be signed in to change notification settings - Fork 29.9k
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
test: investigate async-hooks/test-signalwrap #14070
Comments
Running a thousand times locally to see if it fails. |
Stress CI (the whole |
Stress returned no results 🤷♂️ |
You had previously landed something that has the async-hooks tests running parallel, right? If so, maybe try the stress test again under load by passing something like |
Worth a shot - https://ci.nodejs.org/job/node-stress-single-test/1315/nodes=aix61-ppc64/ |
I think there's a default shell setting on macOS that will stop things at 100, so I usually go for just under that as a first pass. And 96 instead of 97, 98, or 99 because it's kinda sorta almost a power of 2 (64 + 32), and we all prefer powers of 2, don't we? |
@Trott you are an evil genius 😉 this gave us a plethora of weirdness... No fails in A harness burp: ok 869 async-hooks/test-callback-error
---
duration_ms: 4.485
...
Exception in thread Thread-23:
Traceback (most recent call last):
File "/opt/freeware/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/opt/freeware/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
File "tools/test.py", line 140, in RunSingle
output = case.Run()
File "/home/iojs/build/workspace/node-stress-single-test/nodes/aix61-ppc64/tools/test.py", line 537, in Run
"TEST_THREAD_ID": "%d" % self.thread_id
File "/home/iojs/build/workspace/node-stress-single-test/nodes/aix61-ppc64/tools/test.py", line 519, in RunCommand
env)
File "/home/iojs/build/workspace/node-stress-single-test/nodes/aix61-ppc64/tools/test.py", line 752, in Execute
pty_out = pty_out
File "/home/iojs/build/workspace/node-stress-single-test/nodes/aix61-ppc64/tools/test.py", line 649, in RunProcess
**rest
File "/opt/freeware/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/opt/freeware/lib/python2.7/subprocess.py", line 1231, in _execute_child
self.pid = os.fork()
OSError: [Errno 11] Resource temporarily unavailable
ok 870 async-hooks/test-callback-error A fail in callback-error (here we go again 🤦♂️ ) not ok 609 async-hooks/test-callback-error
---
duration_ms: 4.97
severity: fail
stack: |-
start case 1
assert.js:586
assert.ifError = function ifError(err) { if (err) throw err; };
^
Error: spawnSync /home/iojs/build/workspace/node-stress-single-test/nodes/aix61-ppc64/out/Release/node EAGAIN
at exports._errnoException (util.js:1020:11)
at Object.spawnSync (internal/child_process.js:918:20)
at spawnSync (child_process.js:548:24)
at Object.<anonymous> (/home/iojs/build/workspace/node-stress-single-test/nodes/aix61-ppc64/test/async-hooks/test-callback-error.js:51:17)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Function.Module.runMain (module.js:605:10)
... A different callback-error error: not ok 41 async-hooks/test-callback-error
---
duration_ms: 7.592
severity: fail
stack: |-
start case 1
end case 1: 726.624ms
start case 2
end case 2: 428.448ms
start case 3
/home/iojs/build/workspace/node-stress-single-test/nodes/aix61-ppc64/test/async-hooks/test-callback-error.js:84
child.stdout.on('data', (data) => {
^
TypeError: Cannot read property 'on' of undefined
at Object.<anonymous> (/home/iojs/build/workspace/node-stress-single-test/nodes/aix61-ppc64/test/async-hooks/test-callback-error.js:84:15)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Function.Module.runMain (module.js:605:10)
at startup (bootstrap_node.js:158:16)
at bootstrap_node.js:575:3
... |
@refack if I understand your comment correct it seems like the original error just had a hiccup and other errors came up as being flaky instead? |
@BridgeAR It seems like stressing AIX gives many varied failures. But AFAICT the issue in the OP is still unresolved, but also unreproducible. Personally I haven't seen any of those since. I'll run another stress test, and if nothing comes up consistently I think this can be closed. https://ci.nodejs.org/job/node-stress-single-test/1424/nodes=aix61-ppc64/ |
Well we got one of the original:
(1 out of 100 while testing with |
Showed up in the 8.9.0 LTS proposal #16630 , this time on CentOS https://ci.nodejs.org/job/node-test-commit-linux/13690/nodes=centos7-64/consoleFull
|
Today on alpine36-container-x64: https://ci.nodejs.org/job/node-test-commit-linux/14184/nodes=alpine36-container-x64/consoleFull not ok 100 async-hooks/test-signalwrap
---
duration_ms: 0.767
severity: fail
stack: |-
Mismatched onsigusr2 function calls. Expected exactly 2, actual 1.
at Object.exports.mustCall (/home/iojs/build/workspace/node-test-commit-linux/nodes/alpine36-container-x64/test/common/index.js:490:10)
at Object.<anonymous> (/home/iojs/build/workspace/node-test-commit-linux/nodes/alpine36-container-x64/test/async-hooks/test-signalwrap.js:14:30)
at Module._compile (module.js:644:30)
at Object.Module._extensions..js (module.js:655:10)
at Module.load (module.js:563:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
at Function.Module.runMain (module.js:685:10)
at startup (bootstrap_node.js:192:16)
... |
alpine35-container-x64 too. https://ci.nodejs.org/job/node-test-commit-linux/15151/nodes=alpine35-container-x64/consoleText not ok 44 async-hooks/test-signalwrap
---
duration_ms: 0.375
severity: fail
stack: |-
Mismatched onsigusr2Again function calls. Expected exactly 1, actual 0.
at Object.exports.mustCall (/home/iojs/build/workspace/node-test-commit-linux/nodes/alpine35-container-x64/test/common/index.js:496:10)
at process.onsigusr2 (/home/iojs/build/workspace/node-test-commit-linux/nodes/alpine35-container-x64/test/async-hooks/test-signalwrap.js:48:34)
at process.<anonymous> (/home/iojs/build/workspace/node-test-commit-linux/nodes/alpine35-container-x64/test/common/index.js:530:15)
at process.emit (events.js:127:13)
at Signal.wrap.onsignal (internal/process.js:198:44)
... |
I think I know what's probably causing this....but first let me see if I can reproduce it... Stress test with |
Also, with |
Oh, thank goodness, the first one (
|
Use an interval to keep the event loop open so the test does not exit before receiving all signals fom asynchronous `exec()` calls. Fixes: nodejs#14070
Proposed fix: #17827 |
Use an interval to keep the event loop open so the test does not exit before receiving all signals fom asynchronous `exec()` calls. PR-URL: #17827 Fixes: #14070 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Gibson Fahnestock <[email protected]>
Use an interval to keep the event loop open so the test does not exit before receiving all signals fom asynchronous `exec()` calls. PR-URL: #17827 Fixes: #14070 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Gibson Fahnestock <[email protected]>
Use an interval to keep the event loop open so the test does not exit before receiving all signals fom asynchronous `exec()` calls. PR-URL: #17827 Fixes: #14070 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Gibson Fahnestock <[email protected]>
Use an interval to keep the event loop open so the test does not exit before receiving all signals fom asynchronous `exec()` calls. PR-URL: #17827 Fixes: #14070 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Gibson Fahnestock <[email protected]>
Use an interval to keep the event loop open so the test does not exit before receiving all signals fom asynchronous `exec()` calls. PR-URL: #17827 Fixes: #14070 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Gibson Fahnestock <[email protected]>
Use an interval to keep the event loop open so the test does not exit before receiving all signals fom asynchronous `exec()` calls. PR-URL: #17827 Fixes: #14070 Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Gibson Fahnestock <[email protected]>
master
aix61-ppc64
https://ci.nodejs.org/job/node-test-commit-aix/6994/nodes=aix61-ppc64/console
/cc @nodejs/async_hooks @nodejs/platform-aix
The text was updated successfully, but these errors were encountered: