diff --git a/virtcontainers/qemu.go b/virtcontainers/qemu.go index e1e17be9a0..4a18041840 100644 --- a/virtcontainers/qemu.go +++ b/virtcontainers/qemu.go @@ -93,6 +93,8 @@ type qemu struct { ctx context.Context nvdimmCount int + + stopped bool } const ( @@ -835,8 +837,16 @@ func (q *qemu) stopSandbox() error { span, _ := q.trace("stopSandbox") defer span.Finish() - defer q.cleanupVM() q.Logger().Info("Stopping Sandbox") + if q.stopped { + q.Logger().Info("Already stopped") + return nil + } + + defer func() { + q.cleanupVM() + q.stopped = true + }() err := q.qmpSetup() if err != nil {