daemon/c8d: Use non cancellable context in defers
Fixes leases not being released when operation was cancelled.
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
(cherry picked from commit 6f27bef9fc
)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
a9e20aeaed
commit
2783345d3a
4 changed files with 8 additions and 4 deletions
|
@ -18,6 +18,7 @@ import (
|
|||
"github.com/docker/docker/api/types/backend"
|
||||
imagetypes "github.com/docker/docker/api/types/image"
|
||||
"github.com/docker/docker/api/types/registry"
|
||||
"github.com/docker/docker/internal/compatcontext"
|
||||
registrypkg "github.com/docker/docker/registry"
|
||||
|
||||
// "github.com/docker/docker/api/types/container"
|
||||
|
@ -477,7 +478,7 @@ func (i *ImageService) CreateImage(ctx context.Context, config []byte, parent st
|
|||
return nil, err
|
||||
}
|
||||
defer func() {
|
||||
if err := release(ctx); err != nil {
|
||||
if err := release(compatcontext.WithoutCancel(ctx)); err != nil {
|
||||
logrus.WithError(err).Warn("failed to release lease created for create")
|
||||
}
|
||||
}()
|
||||
|
|
|
@ -20,6 +20,7 @@ import (
|
|||
"github.com/containerd/containerd/snapshots"
|
||||
"github.com/docker/docker/api/types/backend"
|
||||
"github.com/docker/docker/image"
|
||||
"github.com/docker/docker/internal/compatcontext"
|
||||
"github.com/docker/docker/pkg/archive"
|
||||
"github.com/opencontainers/go-digest"
|
||||
"github.com/opencontainers/image-spec/identity"
|
||||
|
@ -73,7 +74,7 @@ func (i *ImageService) CommitImage(ctx context.Context, cc backend.CommitConfig)
|
|||
return "", fmt.Errorf("failed to create lease for commit: %w", err)
|
||||
}
|
||||
defer func() {
|
||||
if err := release(ctx); err != nil {
|
||||
if err := release(compatcontext.WithoutCancel(ctx)); err != nil {
|
||||
logrus.WithError(err).Warn("failed to release lease created for commit")
|
||||
}
|
||||
}()
|
||||
|
|
|
@ -18,6 +18,7 @@ import (
|
|||
"github.com/docker/docker/builder/dockerfile"
|
||||
"github.com/docker/docker/errdefs"
|
||||
"github.com/docker/docker/image"
|
||||
"github.com/docker/docker/internal/compatcontext"
|
||||
"github.com/docker/docker/pkg/archive"
|
||||
"github.com/docker/docker/pkg/pools"
|
||||
"github.com/google/uuid"
|
||||
|
@ -47,7 +48,7 @@ func (i *ImageService) ImportImage(ctx context.Context, ref reference.Named, pla
|
|||
return "", errdefs.System(err)
|
||||
}
|
||||
defer func() {
|
||||
if err := release(ctx); err != nil {
|
||||
if err := release(compatcontext.WithoutCancel(ctx)); err != nil {
|
||||
logger.WithError(err).Warn("failed to release lease created for import")
|
||||
}
|
||||
}()
|
||||
|
|
|
@ -17,6 +17,7 @@ import (
|
|||
"github.com/docker/distribution/reference"
|
||||
"github.com/docker/docker/api/types/registry"
|
||||
"github.com/docker/docker/errdefs"
|
||||
"github.com/docker/docker/internal/compatcontext"
|
||||
"github.com/docker/docker/pkg/streamformatter"
|
||||
"github.com/opencontainers/go-digest"
|
||||
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
|
||||
|
@ -46,7 +47,7 @@ func (i *ImageService) PushImage(ctx context.Context, targetRef reference.Named,
|
|||
return err
|
||||
}
|
||||
defer func() {
|
||||
if err := release(leasedCtx); err != nil {
|
||||
if err := release(compatcontext.WithoutCancel(leasedCtx)); err != nil {
|
||||
logrus.WithField("image", targetRef).WithError(err).Warn("failed to release lease created for push")
|
||||
}
|
||||
}()
|
||||
|
|
Loading…
Add table
Reference in a new issue