From 5ededd527a7d2be40279ceb110ca11d333284ea4 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 5 Nov 2013 22:03:43 -0800 Subject: [PATCH] builder/qemu: catch early exits of qemu --- builder/qemu/driver.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/builder/qemu/driver.go b/builder/qemu/driver.go index f233faa1a..5c402cecb 100644 --- a/builder/qemu/driver.go +++ b/builder/qemu/driver.go @@ -12,6 +12,7 @@ import ( "strings" "sync" "syscall" + "time" "unicode" ) @@ -116,6 +117,16 @@ func (d *QemuDriver) Qemu(qemuArgs ...string) error { d.vmEndCh = nil }() + // Wait at least a couple seconds for an early fail from Qemu so + // we can report that. + select { + case exit := <-endCh: + if exit != 0 { + return fmt.Errorf("Qemu failed to start. Please run with logs to get more info.") + } + case <-time.After(2 * time.Second): + } + // Setup our state so we know we are running d.vmCmd = cmd d.vmEndCh = endCh