]> Cypherpunks repositories - gostls13.git/commitdiff
misc/ios: always kill lldb process when it hangs
authorElias Naur <elias.naur@gmail.com>
Tue, 3 Oct 2017 11:05:22 +0000 (13:05 +0200)
committerElias Naur <elias.naur@gmail.com>
Tue, 3 Oct 2017 14:21:35 +0000 (14:21 +0000)
The lldb child process is killed if a test runs too long. Also
kill it when the setup times out (and is retried).

Might help with builder flakes where all 5 attempts to start up
lldb fail even though the tests before and after the timeouts
succeed. For example:

...
ok   vendor/golang_org/x/net/route 37.797s
lldb setup error: command timeout (lldb start for 17s)
start timeout, trying again
lldb setup error: command timeout (lldb start for 17s)
start timeout, trying again
lldb setup error: command timeout (lldb start for 17s)
start timeout, trying again
lldb setup error: command timeout (lldb start for 17s)
start timeout, trying again
lldb setup error: command timeout (lldb start for 17s)
go_darwin_arm_exec: failed to start test harness (retry attempted)
FAIL vendor/golang_org/x/text/transform 115.185s
ok   vendor/golang_org/x/text/unicode/norm 122.773s
...

Change-Id: I6638860522896491dccfa12f1e520c0f23df6d66
Reviewed-on: https://go-review.googlesource.com/67791
Run-TryBot: Elias Naur <elias.naur@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
misc/ios/go_darwin_arm_exec.go

index b49496cc1066102099590f6d6bab79642d0412ea..f1807ae1e02bb904b88b81e8896cb2b6470d2c1a 100644 (file)
@@ -385,6 +385,9 @@ func (s *lldbSession) wait(reason string, cond func(out *buf) bool, extraTimeout
                        }
                        return fmt.Errorf("test timeout (%s)", reason)
                case <-doTimedout:
+                       if p := s.cmd.Process; p != nil {
+                               p.Kill()
+                       }
                        return fmt.Errorf("command timeout (%s for %v)", reason, doTimeout)
                case err := <-s.exited:
                        return fmt.Errorf("exited (%s: %v)", reason, err)