From 8c1024b36cf0dd880f11339446e81ec8be297efd Mon Sep 17 00:00:00 2001 From: Mikhail Klementev Date: Sun, 7 May 2023 15:59:45 +0000 Subject: [PATCH] Ensure log file is available for VM status check --- pew.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pew.go b/pew.go index ddb4642..68d568c 100644 --- a/pew.go +++ b/pew.go @@ -564,7 +564,7 @@ func (cmd PewCmd) testArtifact(swg *sizedwaitgroup.SizedWaitGroup, log.Error().Err(err).Msgf("create %s", logfile) return } - defer f.Close() + // Make sure the file is closed on each return before !q.Died logging slog := zerolog.New(zerolog.MultiLevelWriter( &consoleWriter, @@ -597,6 +597,7 @@ func (cmd PewCmd) testArtifact(swg *sizedwaitgroup.SizedWaitGroup, q, err := qemu.NewSystem(qemu.X86x64, kernel, ki.RootFS) if err != nil { slog.Error().Err(err).Msg("qemu init") + f.Close() return } q.Log = slog @@ -625,6 +626,7 @@ func (cmd PewCmd) testArtifact(swg *sizedwaitgroup.SizedWaitGroup, err = q.Start() if err != nil { slog.Error().Err(err).Msg("qemu start") + f.Close() return } defer q.Stop() @@ -634,6 +636,7 @@ func (cmd PewCmd) testArtifact(swg *sizedwaitgroup.SizedWaitGroup, time.Sleep(time.Minute) slog.Debug().Msg("still alive") } + f.Close() }() tmp, err := ioutil.TempDir(tempDirBase, "out-of-tree_")