Skip to content

Commit 28d201f

Browse files
committed
daemon/containerd: log errors when releasing leases
Log a warning if we encounter an error when releasing leases. While it may not have direct consequences, failing to release the lease should be unexpected, so let's make them visible. Signed-off-by: Sebastiaan van Stijn <[email protected]>
1 parent 69c19cf commit 28d201f

4 files changed

Lines changed: 19 additions & 8 deletions

File tree

daemon/containerd/image_builder.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -460,11 +460,15 @@ func (i *ImageService) CreateImage(ctx context.Context, config []byte, parent st
460460

461461
// necessary to prevent the contents from being GC'd
462462
// between writing them here and creating an image
463-
ctx, done, err := i.client.WithLease(ctx, leases.WithRandomID(), leases.WithExpiration(1*time.Hour))
463+
ctx, release, err := i.client.WithLease(ctx, leases.WithRandomID(), leases.WithExpiration(1*time.Hour))
464464
if err != nil {
465465
return nil, err
466466
}
467-
defer done(ctx)
467+
defer func() {
468+
if err := release(ctx); err != nil {
469+
log.G(ctx).WithError(err).Warn("failed to release lease created for create")
470+
}
471+
}()
468472

469473
commitManifestDesc, err := writeContentsForImage(ctx, i.snapshotter, i.client.ContentStore(), ociImgToCreate, layers)
470474
if err != nil {

daemon/containerd/image_commit.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,15 @@ func (i *ImageService) CommitImage(ctx context.Context, cc backend.CommitConfig)
6868
)
6969

7070
// Don't gc me and clean the dirty data after 1 hour!
71-
ctx, done, err := i.client.WithLease(ctx, leases.WithRandomID(), leases.WithExpiration(1*time.Hour))
71+
ctx, release, err := i.client.WithLease(ctx, leases.WithRandomID(), leases.WithExpiration(1*time.Hour))
7272
if err != nil {
7373
return "", fmt.Errorf("failed to create lease for commit: %w", err)
7474
}
75-
defer done(ctx)
75+
defer func() {
76+
if err := release(ctx); err != nil {
77+
log.G(ctx).WithError(err).Warn("failed to release lease created for commit")
78+
}
79+
}()
7680

7781
diffLayerDesc, diffID, err := createDiff(ctx, cc.ContainerID, sn, cs, differ)
7882
if err != nil {

daemon/containerd/image_import.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,11 @@ func (i *ImageService) ImportImage(ctx context.Context, ref reference.Named, pla
4646
if err != nil {
4747
return "", errdefs.System(err)
4848
}
49-
defer release(ctx)
49+
defer func() {
50+
if err := release(ctx); err != nil {
51+
logger.WithError(err).Warn("failed to release lease created for import")
52+
}
53+
}()
5054

5155
if platform == nil {
5256
def := platforms.DefaultSpec()

daemon/containerd/image_push.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,8 @@ func (i *ImageService) PushImage(ctx context.Context, targetRef reference.Named,
4646
return err
4747
}
4848
defer func() {
49-
err := release(leasedCtx)
50-
if err != nil && !cerrdefs.IsNotFound(err) {
51-
log.G(ctx).WithField("image", targetRef).WithError(err).Error("failed to delete lease created for push")
49+
if err := release(leasedCtx); err != nil {
50+
log.G(ctx).WithField("image", targetRef).WithError(err).Warn("failed to release lease created for push")
5251
}
5352
}()
5453

0 commit comments

Comments
 (0)