• Elias Naur's avatar
    misc/android: don't let the Android exec wrapper hang indefinitely · 00f82778
    Elias Naur authored
    On Android, the exec wrapper passes on output from adb to its parent
    process by passing on os.Stderr and os.Stdout to adb. If the adb
    process somehow hangs, it will keep stderr and stdout will open, in turn
    blocking go test from ever returning from its cmd.Wait() even though
    it has killed the exec wrapper process.
    
    Break the short circuit by introducing a wrapper between adb and the
    exec wrapper, preventing os/exec.Run from passing along the raw
    file descriptors for os.Stdout and os.Stderr.
    
    (Hopefully) fixes occasional indefinite hangs on the Android builder.
    
    Change-Id: I1188211fbde79b4a66bf93ff8e9d0091abf34560
    Reviewed-on: https://go-review.googlesource.com/42271
    Run-TryBot: Elias Naur <elias.naur@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    00f82778
go_android_exec.go 4.34 KB