[JSC] Implement high-level retry loop for run-jsc-stress-tests
Created attachment 428615 [details] Patch
Created attachment 428619 [details] Patch
The behavior of this patch (for --gnu-parallel-runner only) should be captured in the MIPS EWS run at https://ews-build.webkit.org/#/builders/45/builds/4271 (I manually rebooted one of the remote boards partway through): [...] Remote host lost state, triggering high-level retry: mips-ci20-board26.local.igalia.com 5d65329bd1a3mips-ci20-board26.local.igalia.coma9aea5c3b843 parallel: SIGTERM received. No new jobs will be started. parallel: Waiting for these 9 jobs to finish. Send SIGTERM again to stop now. [...] After try 1/3: got results for 1566/40530 tests, 3/3 hosts live [reinitialization of the remotes] [lots of successful tests] Results for JSC stress tests: 0 failures found. 0 tests failed to complete. OK.
<rdar://problem/78303014>
*** Bug 220794 has been marked as a duplicate of this bug. ***
Ping. This patch should only make a difference --gnu-parallel-runner which AFAIK is currently only used by the MIPS bots. Only touches the generic path to change remoteIndex + array access to using a remoteHost passed from the caller (which I think is a simplification) and to make use of common code (processStatusLine) in both the local and remote paths in getStatusMap. Oh, and to remove some apparently unneeded (or, no longer needed) escapes in exportBaseEnvironmentVariables that fail on the new (only when using --gnu-parallel-runner) runAndMonitorCommandOutput.
I'm not super fluent with Ruby, but thankfully Angelos' changes are well commented so it was not much trouble to make sense of it. Thanks for the patch!
Committed r278159 (238203@main): <https://commits.webkit.org/238203@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 428619 [details].
Comment on attachment 428619 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=428619&action=review > Tools/Scripts/run-jsc-stress-tests:2201 > + dyldFrameworkPath = "\$(cd #{$testingFrameworkPath.dirname}; pwd)" Opps, I think you forget the beginning '\', makes on device test failed, since we will run the command by ssh, without \$, $(...) will be execute locally