diff --git a/metadata/sandbox.go b/metadata/sandbox.go index 542a1b3c0..a682693d9 100644 --- a/metadata/sandbox.go +++ b/metadata/sandbox.go @@ -239,6 +239,9 @@ func (s *sandboxStore) Delete(ctx context.Context, id string) error { } if err := buckets.DeleteBucket([]byte(id)); err != nil { + if err == bbolt.ErrBucketNotFound { + err = errdefs.ErrNotFound + } return fmt.Errorf("failed to delete sandbox %q: %w", id, err) } diff --git a/pkg/cri/server/sandbox_remove.go b/pkg/cri/server/sandbox_remove.go index 4cccd13dc..5e04a7226 100644 --- a/pkg/cri/server/sandbox_remove.go +++ b/pkg/cri/server/sandbox_remove.go @@ -105,7 +105,10 @@ func (c *criService) RemovePodSandbox(ctx context.Context, r *runtime.RemovePodS c.sandboxStore.Delete(id) if err := c.client.SandboxStore().Delete(ctx, id); err != nil { - return nil, fmt.Errorf("failed to remove sandbox metadata from store: %w", err) + if !errdefs.IsNotFound(err) { + return nil, fmt.Errorf("failed to remove sandbox metadata from store: %w", err) + } + log.G(ctx).WithError(err).Warnf("failed to delete sandbox metadata from store: %q maybe recovered from v1.x release", id) } // Release the sandbox name reserved for the sandbox.