-
Notifications
You must be signed in to change notification settings - Fork 29.8k
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: fix flaky test-tls-socket-close #11921
Conversation
Replace timer/timeout race with event-based ordering, eliminating test flakiness. Fixes: nodejs#11912
Stress test on current master (should show failures): https://ci.nodejs.org/job/node-stress-single-test-pi1-binary/17/label=pi1-raspbian-wheezy/console Stress test on this PR (should show no failures): https://ci.nodejs.org/job/node-stress-single-test-pi1-binary/19/label=pi1-raspbian-wheezy/console |
Argh! This version of the test doesn't fail/segfault on v7.0.0 the way the original version does, so I've now made the test invalid. Will mark this as stalled until I get around to fixing it or I give up and close it. |
Fixed it, but now have to re-run all the stress tests etc.... |
Current master stress test showing 28 failures in 999 runs: https://ci.nodejs.org/job/node-stress-single-test-pi1-binary/17/label=pi1-raspbian-wheezy/console |
Stress test against this PR that will hopefully show no failures: https://ci.nodejs.org/job/node-stress-single-test-pi1-binary/21/label=pi1-raspbian-wheezy/console EDIT: Oof, this made it a lot worse. Back to the drawing board. |
OK, did some step-debugging and hopefully this will now do it... Stress test against this PR: https://ci.nodejs.org/job/node-stress-single-test-pi1-fanned/25/ |
Argh, cleaned up some unused code. Once more with feeling: Stress test against this PR: https://ci.nodejs.org/job/node-stress-single-test-pi1-fanned/26/ |
All tests passing including stress test. |
LGTM apart from one nit. Thanks for fixing this! |
// this breaks if TLSSocket is already managing the socket: | ||
netSocket.destroy(); | ||
const interval = setInterval(() => { | ||
// Checking this way allows us to do the right at a time that causes a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/right/write/
Replace timer/timeout race with event-based ordering, eliminating test flakiness. PR-URL: nodejs#11921 Fixes: nodejs#11912 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Landed in 7bc893f |
Replace timer/timeout race with event-based ordering, eliminating test flakiness. PR-URL: nodejs/node#11921 Fixes: nodejs/node#11912 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Replace timer/timeout race with event-based ordering, eliminating test
flakiness.
Fixes: #11912
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passesAffected core subsystem(s)
test tls