RESOLVED FIXED 221129
Flaky JSC test: stress/shared-array-buffer-sort-while-different-thread-is-modifying.js.default
https://bugs.webkit.org/show_bug.cgi?id=221129
Summary Flaky JSC test: stress/shared-array-buffer-sort-while-different-thread-is-mod...
Michael Catanzaro
Reported 2021-01-29 06:30:13 PST
JSC stress test is flaky on Red Hat's internal CI (which runs with JIT disabled and cloop enabled). The first known failure was Dec 13. I didn't report it until now because until earlier this week, all the failures occurred on ppc64le, so I incorrectly assumed the issue was specific to that architecture. But the test has since failed on both s390x and x86_64 as well, so it's a more general problem. Unfortunately, the error message is pretty generic: Running stress/shared-array-buffer-sort-while-different-thread-is-modifying.js.default stress/shared-array-buffer-sort-while-different-thread-is-modifying.js.default: Exception: JavaScript execution terminated. stress/shared-array-buffer-sort-while-different-thread-is-modifying.js.default: ERROR: Unexpected exit code: 1 FAIL: stress/shared-array-buffer-sort-while-different-thread-is-modifying.js.default I don't know what to make of "JavaScript execution terminated," but it's this same error on all architectures. Based on the failure history, it might be due to some change that landed in trunk during early December: Dec 13: failed on ppc64le Jan 5: failed on ppc64le Jan 8: failed on ppc64le Jan 19: failed on ppc64le Jan 26: failed on s390x Jan 29: failed on s390x and x86_64
Attachments
Patch (1.55 KB, patch)
2021-02-09 08:02 PST, Michael Catanzaro
no flags
Patch (2.99 KB, patch)
2021-03-02 16:15 PST, Yusuke Suzuki
ews-feeder: commit-queue-
Patch (3.18 KB, patch)
2021-03-02 16:16 PST, Yusuke Suzuki
saam: review+
ews-feeder: commit-queue-
Radar WebKit Bug Importer
Comment 1 2021-02-05 06:31:14 PST
Michael Catanzaro
Comment 2 2021-02-09 08:02:52 PST
Michael Catanzaro
Comment 3 2021-02-09 08:06:08 PST
(In reply to Michael Catanzaro from comment #0) > Based on the failure history, it might be due to some change that landed in > trunk during early December: > > Dec 13: failed on ppc64le > Jan 5: failed on ppc64le > Jan 8: failed on ppc64le > Jan 19: failed on ppc64le > Jan 26: failed on s390x > Jan 29: failed on s390x and x86_64 Feb 2: failed on s390x Feb 6: failed on x86_64
Michael Catanzaro
Comment 4 2021-02-16 14:16:35 PST
Sadly this is going to be very difficult to track down. I am currently running this test in a continuous loop on (a) my desktop, and (b) the s390x server that we use for our internal CI (since it seems to fail more often on this server than it does for x86_64). Sadly the test passes every time. Since it is a timing issue, I bet it only fails when the tests are run all at once instead of one at a time. I was hoping to bisect it, but it doesn't fail often enough for it to be practical to bisect in this way.
Michael Catanzaro
Comment 5 2021-03-02 07:40:07 PST
This test is still flaky on all architectures: Feb 13: failed on ppc64le Feb 14: failed on s390x Feb 15: failed on s390x Feb 19: failed on ppc64le Feb 20: failed on aarch64 March 1: failed on ppc64le
Michael Catanzaro
Comment 6 2021-03-02 07:41:28 PST
Comment on attachment 419715 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=419715&action=review > JSTests/stress/shared-array-buffer-sort-while-different-thread-is-modifying.js:3 > +//@ skip > //@ runDefault("--watchdog=1000", "--watchdog-exception-ok") > +// FIXME: unskip this test when https://bugs.webkit.org/show_bug.cgi?id=221129 is fixed. Can we land this...?
Yusuke Suzuki
Comment 7 2021-03-02 11:12:22 PST
@Michael Thanks. Could you paste the crash trace of the failure?
Michael Catanzaro
Comment 8 2021-03-02 11:41:51 PST
Unfortunately I don't think it's crashing because the process exit status is 1. If there was a crash, the exit status would be (128 + signal value). So we don't have much to go on other than the stdout/stderr in comment #0.
Yusuke Suzuki
Comment 9 2021-03-02 15:29:25 PST
OK, "JavaScript execution terminated" this sounds like this is not a real bug. Possibly, the thread is terminated, and we are not properly handling that case in jsc shell...?
Yusuke Suzuki
Comment 10 2021-03-02 16:15:06 PST
Yusuke Suzuki
Comment 11 2021-03-02 16:16:48 PST
Michael Catanzaro
Comment 12 2021-03-02 16:44:34 PST
Comment on attachment 422019 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=422019&action=review Thanks Yusuke! > Source/JavaScriptCore/jsc.cpp:416 > + CommandLine(CommandLineForWorkersTag); This could use: explicit
Yusuke Suzuki
Comment 13 2021-03-02 17:56:38 PST
Comment on attachment 422019 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=422019&action=review Thanks! >> Source/JavaScriptCore/jsc.cpp:416 >> + CommandLine(CommandLineForWorkersTag); > > This could use: explicit Fixed.
Yusuke Suzuki
Comment 14 2021-03-02 18:04:22 PST
Note You need to log in before you can comment on or make changes to this bug.