diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2016-01-20 13:58:57 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2016-01-20 13:58:57 +0100 |
| commit | 8cff5843fb3bbbc1342cf3aafbff953f4477761f (patch) | |
| tree | 4b0588bf60a8110f70cde42051a526021c496542 /vm | |
| parent | aa1b7fe3a884674848f5f5a8edb4a9ad981fcad2 (diff) | |
vm/adb: use a more reliable way to reboot devices
Diffstat (limited to 'vm')
| -rw-r--r-- | vm/adb/adb.go | 9 | ||||
| -rw-r--r-- | vm/vm.go | 1 |
2 files changed, 8 insertions, 2 deletions
diff --git a/vm/adb/adb.go b/vm/adb/adb.go index 5fa3d17dd..5508667c0 100644 --- a/vm/adb/adb.go +++ b/vm/adb/adb.go @@ -74,9 +74,14 @@ func (inst *instance) adbOK() error { } func (inst *instance) adbReboot() error { - if _, err := inst.adb("reboot"); err != nil { - return fmt.Errorf("adb reboot failed: %v", err) + // adb reboot episodically hangs, so we use a more reliable way. + if _, err := inst.adb("push", inst.cfg.Executor, "/data/syz-executor"); err != nil { + return err } + if _, err := inst.adb("shell", "/data/syz-executor", "reboot"); err != nil { + return err + } + time.Sleep(10 * time.Second) for i := 0; i < 300; i++ { time.Sleep(time.Second) if inst.adbOK() == nil { @@ -37,6 +37,7 @@ type Config struct { Cmdline string Image string Sshkey string + Executor string ConsoleDev string Cpu int Mem int |
