We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents f94176b + 8349e9c commit 9836771Copy full SHA for 9836771
exporter/containerimage/export.go
@@ -298,14 +298,20 @@ func (e *imageExporterInstance) Export(ctx context.Context, src *exporter.Source
298
}
299
for _, sfx := range sfx {
300
img.Name = targetName + sfx
301
- if _, err := e.opt.Images.Update(imageClientCtx, img); err != nil {
302
- if !errors.Is(err, cerrdefs.ErrNotFound) {
303
- return nil, nil, nil, tagDone(err)
304
- }
+ for { // handle possible race between Update and Create
+ if _, err := e.opt.Images.Update(imageClientCtx, img); err != nil {
+ if !errors.Is(err, cerrdefs.ErrNotFound) {
+ return nil, nil, nil, tagDone(err)
305
+ }
306
- if _, err := e.opt.Images.Create(imageClientCtx, img); err != nil {
307
+ if _, err := e.opt.Images.Create(imageClientCtx, img); err != nil {
308
+ if !errors.Is(err, cerrdefs.ErrAlreadyExists) {
309
310
311
+ continue
312
313
314
+ break
315
316
317
tagDone(nil)
0 commit comments