diff --git a/internal/shim/sandbox/vm/vm.go b/internal/shim/sandbox/vm/vm.go index 1d4fbd89..62f8178f 100644 --- a/internal/shim/sandbox/vm/vm.go +++ b/internal/shim/sandbox/vm/vm.go @@ -75,6 +75,12 @@ func (s *localsandbox) Start(ctx context.Context, opts ...sandbox.Opt) error { if err != nil { return err } + vmiStarted := false + defer func() { + if !vmiStarted { + _ = vmi.Shutdown(ctx) + } + }() for _, d := range o.Disks { var mountOpts []vm.MountOpt @@ -126,6 +132,7 @@ func (s *localsandbox) Start(ctx context.Context, opts ...sandbox.Opt) error { return err } + vmiStarted = true s.instance = vmi return nil }