-
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
Investigate flaky test/parallel/test-trace-events-fs-sync #22865
Comments
Seems to me that the thing to do would be one of:
Seem about right to others? Like, I assume we're getting SIGABRT because we're spawning too many processes or something like that? |
Oh...although the test is using spawnSync and not spawn so...maybe not? |
Stress test to confirm unreliability on current master: https://ci.nodejs.org/job/node-stress-single-test/2018/ |
I think this is due to the fact that the TraceEvent implementation we have presently is not fully robust to thread races, specially in shutdown code. I didn't have full confidence that we have fixed /all/ the issues in my previous set of fixes. Can I haz access to the FreeBSD machine again? I can take a look. |
From a core dump on FreeBSD:
In the meanwhile, the main thread was here:
|
For safer shutdown, we should destroy the platform – and background threads - before the tracing infrastructure is destroyed. This change fixes the relative order of NodePlatform disposition and the tracing agent shutting down. This matches the nesting order for startup. Make the tracing agent own the tracing controller instead of platform to match the above. Fixes: nodejs#22865
No surprise here, as #22938 hasn't landed yet, but still a thing: https://ci.nodejs.org/job/node-test-commit-freebsd/20670/nodes=freebsd11-x64/console 00:10:49 not ok 1911 parallel/test-trace-events-fs-sync # TODO : Fix flaky test
00:10:49 ---
00:10:49 duration_ms: 1.387
00:10:49 severity: flaky
00:10:49 exitcode: 1
00:10:49 stack: |-
00:10:49 /usr/home/iojs/build/workspace/node-test-commit-freebsd/nodes/freebsd11-x64/test/parallel/test-trace-events-fs-sync.js:143
00:10:49 throw new Error(`${tr}:\n${util.inspect(proc)}`);
00:10:49 ^
00:10:49
00:10:49 Error: fs.sync.fstat:
00:10:49 { status: null,
00:10:49 signal: 'SIGABRT',
00:10:49 output: [ null, '', '' ],
00:10:49 pid: 13999,
00:10:49 stdout: '',
00:10:49 stderr: '' }
00:10:49 at Object.<anonymous> (/usr/home/iojs/build/workspace/node-test-commit-freebsd/nodes/freebsd11-x64/test/parallel/test-trace-events-fs-sync.js:143:11)
00:10:50 at Module._compile (internal/modules/cjs/loader.js:703:30)
00:10:50 at Object.Module._extensions..js (internal/modules/cjs/loader.js:714:10)
00:10:50 at Module.load (internal/modules/cjs/loader.js:613:32)
00:10:50 at tryModuleLoad (internal/modules/cjs/loader.js:552:12)
00:10:50 at Function.Module._load (internal/modules/cjs/loader.js:544:3)
00:10:50 at Function.Module.runMain (internal/modules/cjs/loader.js:756:12)
00:10:50 at startup (internal/bootstrap/node.js:302:19)
00:10:50 at bootstrapNodeJSCore (internal/bootstrap/node.js:855:3)
00:10:50 ... |
For safer shutdown, we should destroy the platform – and background threads - before the tracing infrastructure is destroyed. This change fixes the relative order of NodePlatform disposition and the tracing agent shutting down. This matches the nesting order for startup. Make the tracing agent own the tracing controller instead of platform to match the above. Fixes: nodejs#22865 PR-URL: nodejs#22938 Reviewed-By: Eugene Ostroukhov <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Matteo Collina <[email protected]>
Fixed in 68b3e46 |
For safer shutdown, we should destroy the platform – and background threads - before the tracing infrastructure is destroyed. This change fixes the relative order of NodePlatform disposition and the tracing agent shutting down. This matches the nesting order for startup. Make the tracing agent own the tracing controller instead of platform to match the above. Fixes: nodejs#22865 PR-URL: nodejs#22938 Reviewed-By: Eugene Ostroukhov <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Matteo Collina <[email protected]>
For safer shutdown, we should destroy the platform – and background threads - before the tracing infrastructure is destroyed. This change fixes the relative order of NodePlatform disposition and the tracing agent shutting down. This matches the nesting order for startup. Make the tracing agent own the tracing controller instead of platform to match the above. Fixes: #22865 PR-URL: #22938 Reviewed-By: Eugene Ostroukhov <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Matteo Collina <[email protected]>
For safer shutdown, we should destroy the platform – and background threads - before the tracing infrastructure is destroyed. This change fixes the relative order of NodePlatform disposition and the tracing agent shutting down. This matches the nesting order for startup. Make the tracing agent own the tracing controller instead of platform to match the above. Fixes: #22865 PR-URL: #22938 Reviewed-By: Eugene Ostroukhov <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Matteo Collina <[email protected]>
For safer shutdown, we should destroy the platform – and background threads - before the tracing infrastructure is destroyed. This change fixes the relative order of NodePlatform disposition and the tracing agent shutting down. This matches the nesting order for startup. Make the tracing agent own the tracing controller instead of platform to match the above. Fixes: #22865 PR-URL: #22938 Reviewed-By: Eugene Ostroukhov <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Matteo Collina <[email protected]>
For safer shutdown, we should destroy the platform – and background threads - before the tracing infrastructure is destroyed. This change fixes the relative order of NodePlatform disposition and the tracing agent shutting down. This matches the nesting order for startup. Make the tracing agent own the tracing controller instead of platform to match the above. Fixes: #22865 PR-URL: #22938 Reviewed-By: Eugene Ostroukhov <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Matteo Collina <[email protected]>
For safer shutdown, we should destroy the platform – and background threads - before the tracing infrastructure is destroyed. This change fixes the relative order of NodePlatform disposition and the tracing agent shutting down. This matches the nesting order for startup. Make the tracing agent own the tracing controller instead of platform to match the above. Fixes: #22865 PR-URL: #22938 Reviewed-By: Eugene Ostroukhov <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Matteo Collina <[email protected]>
started seeing this again: not sure it is the same as the old one or not, will see if I can locally reproduce. |
Looks like we're now getting SIGABRT rather than SIGSEGV? Is that a step in the right direction? (I think so...)
https://ci.nodejs.org/job/node-test-commit-freebsd/20477/nodes=freebsd11-x64/console
Previous issue: #21038
@ofrobots @nodejs/trace-events @nodejs/platform-freebsd @nodejs/testing
The text was updated successfully, but these errors were encountered: