Skip to content

Commit 8a44ae4

Browse files
authored
fix: errgroup context cancled after Wait (#222)
Signed-off-by: chlins <[email protected]>
1 parent 003371d commit 8a44ae4

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

pkg/backend/pull.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,26 +88,26 @@ func (b *backend) Pull(ctx context.Context, target string, cfg *config.Pull) err
8888

8989
// copy the layers.
9090
dst := b.store
91-
g, ctx := errgroup.WithContext(ctx)
91+
g, gctx := errgroup.WithContext(ctx)
9292
g.SetLimit(cfg.Concurrency)
9393

9494
var fn func(desc ocispec.Descriptor) error
9595
if cfg.ExtractFromRemote {
9696
fn = func(desc ocispec.Descriptor) error {
97-
return pullAndExtractFromRemote(ctx, pb, internalpb.NormalizePrompt("Pulling blob"), src, cfg.ExtractDir, desc)
97+
return pullAndExtractFromRemote(gctx, pb, internalpb.NormalizePrompt("Pulling blob"), src, cfg.ExtractDir, desc)
9898
}
9999
} else {
100100
fn = func(desc ocispec.Descriptor) error {
101-
return pullIfNotExist(ctx, pb, internalpb.NormalizePrompt("Pulling blob"), src, dst, desc, repo, tag)
101+
return pullIfNotExist(gctx, pb, internalpb.NormalizePrompt("Pulling blob"), src, dst, desc, repo, tag)
102102
}
103103
}
104104

105105
logrus.Infof("pull: processing layers for target %s [count: %d]", target, len(manifest.Layers))
106106
for _, layer := range manifest.Layers {
107107
g.Go(func() error {
108108
select {
109-
case <-ctx.Done():
110-
return ctx.Err()
109+
case <-gctx.Done():
110+
return gctx.Err()
111111
default:
112112
}
113113

@@ -124,7 +124,7 @@ func (b *backend) Pull(ctx context.Context, target string, cfg *config.Pull) err
124124
}
125125

126126
return err
127-
}, append(defaultRetryOpts, retry.Context(ctx))...)
127+
}, append(defaultRetryOpts, retry.Context(gctx))...)
128128
})
129129
}
130130

pkg/backend/push.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,26 +77,26 @@ func (b *backend) Push(ctx context.Context, target string, cfg *config.Push) err
7777
// note: the order is important, manifest should be pushed at last.
7878

7979
// copy the layers.
80-
g, ctx := errgroup.WithContext(ctx)
80+
g, gctx := errgroup.WithContext(ctx)
8181
g.SetLimit(cfg.Concurrency)
8282

8383
logrus.Infof("push: processing layers for target %s [count: %d]", target, len(manifest.Layers))
8484
for _, layer := range manifest.Layers {
8585
g.Go(func() error {
8686
select {
87-
case <-ctx.Done():
88-
return ctx.Err()
87+
case <-gctx.Done():
88+
return gctx.Err()
8989
default:
9090
}
9191

9292
return retry.Do(func() error {
9393
logrus.Debugf("push: processing layer %s", layer.Digest)
94-
if err := pushIfNotExist(ctx, pb, internalpb.NormalizePrompt("Copying blob"), src, dst, layer, repo, tag); err != nil {
94+
if err := pushIfNotExist(gctx, pb, internalpb.NormalizePrompt("Copying blob"), src, dst, layer, repo, tag); err != nil {
9595
return err
9696
}
9797
logrus.Debugf("push: successfully processed layer %s", layer.Digest)
9898
return nil
99-
}, append(defaultRetryOpts, retry.Context(ctx))...)
99+
}, append(defaultRetryOpts, retry.Context(gctx))...)
100100
})
101101
}
102102

0 commit comments

Comments
 (0)