Title: [292808] trunk/Tools
Revision
292808
Author
ange...@igalia.com
Date
2022-04-13 06:39:38 -0700 (Wed, 13 Apr 2022)

Log Message

[run-jsc-stress-tests] Use ServerAliveInterval in GNU parallel
https://bugs.webkit.org/show_bug.cgi?id=239283

Reviewed by Adrian Perez de Castro.

run-jsc-stress-tests occasionally dies e.g. in
https://build.webkit.org/#/builders/31/builds/3262/steps/8/logs/stdio
because the remote commands don't produce any output for a full hour.

This seems like an issue with hung ssh connections (possibly because of
all the remotes rebooting at the same time), so use ServerAliveInterval
to detect that.

Reuse SSH_OPTIONS_DEFAULT to pick up the ServerAliveInterval. While
here, move the extra ssh options outside the command string and
document them properly.

* Scripts/run-jsc-stress-tests:

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (292807 => 292808)


--- trunk/Tools/ChangeLog	2022-04-13 12:53:15 UTC (rev 292807)
+++ trunk/Tools/ChangeLog	2022-04-13 13:39:38 UTC (rev 292808)
@@ -1,3 +1,24 @@
+2022-04-13  Angelos Oikonomopoulos  <ange...@igalia.com>
+
+        [run-jsc-stress-tests] Use ServerAliveInterval in GNU parallel
+        https://bugs.webkit.org/show_bug.cgi?id=239283
+
+        Reviewed by Adrian Perez de Castro.
+
+        run-jsc-stress-tests occasionally dies e.g. in
+        https://build.webkit.org/#/builders/31/builds/3262/steps/8/logs/stdio
+        because the remote commands don't produce any output for a full hour.
+
+        This seems like an issue with hung ssh connections (possibly because of
+        all the remotes rebooting at the same time), so use ServerAliveInterval
+        to detect that.
+
+        Reuse SSH_OPTIONS_DEFAULT to pick up the ServerAliveInterval. While
+        here, move the extra ssh options outside the command string and
+        document them properly.
+
+        * Scripts/run-jsc-stress-tests:
+
 2022-04-12  Jonathan Bedard  <jbed...@apple.com>
 
         [Merge-Queue] Do not duplicate reviewer names

Modified: trunk/Tools/Scripts/run-jsc-stress-tests (292807 => 292808)


--- trunk/Tools/Scripts/run-jsc-stress-tests	2022-04-13 12:53:15 UTC (rev 292807)
+++ trunk/Tools/Scripts/run-jsc-stress-tests	2022-04-13 13:39:38 UTC (rev 292808)
@@ -3052,8 +3052,22 @@
 fi
 shift
 EOF
+        extraOptions = [
+            # Many of our jobs are short, ensure GNU parallel won't need to set
+            # up an ssh connection from scratch.
+            "ControlPath=./%C",
+            "ControlMaster=auto",
+            "ControlPersist=10m",
+            # Treat remote boards as volatile. Don't check the host keys, don't
+            # save them locally.
+            "StrictHostKeyChecking=no",
+            "UserKnownHostsFile=/dev/null"
+        ].collect { |opt|
+            ["-o", opt]
+        }.flatten
+        sshOptions = (SSH_OPTIONS_DEFAULT + extraOptions).join(" ")
         wrapper.puts(head +
-                     "echo \"$@\" | ssh -o ControlPath=./%C -o ControlMaster=auto -o ControlPersist=10m -o NoHostAuthenticationForLocalhost=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p \"$remoteport\" -l \"$remoteuser\" -o RemoteCommand=\"if test -d '$remotedir'; then cd '$remotedir'; else echo '#{PARALLEL_REMOTE_WRAPPER_MARK_BEGIN}${remotehost}#{PARALLEL_REMOTE_WRAPPER_MARK_END}'; false; fi && sh -s\" \"$remotehost\""
+                     "echo \"$@\" | ssh #{sshOptions} -p \"$remoteport\" -l \"$remoteuser\" -o RemoteCommand=\"if test -d '$remotedir'; then cd '$remotedir'; else echo '#{PARALLEL_REMOTE_WRAPPER_MARK_BEGIN}${remotehost}#{PARALLEL_REMOTE_WRAPPER_MARK_END}'; false; fi && sh -s\" \"$remotehost\""
         )
         FileUtils.chmod("ugo=rx", wrapper.path)
         wrapper.close # Avoid ETXTBUSY
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to