Commit c413a550 authored by Michael Yang's avatar Michael Yang
Browse files

download: handle inner errors

parent 630bb75d
...@@ -31,11 +31,13 @@ type blobDownload struct { ...@@ -31,11 +31,13 @@ type blobDownload struct {
Total int64 Total int64
Completed atomic.Int64 Completed atomic.Int64
done bool
Parts []*blobDownloadPart Parts []*blobDownloadPart
context.CancelFunc context.CancelFunc
done bool
err error
references atomic.Int32 references atomic.Int32
} }
...@@ -125,7 +127,11 @@ func (b *blobDownload) Prepare(ctx context.Context, requestURL *url.URL, opts *R ...@@ -125,7 +127,11 @@ func (b *blobDownload) Prepare(ctx context.Context, requestURL *url.URL, opts *R
return nil return nil
} }
func (b *blobDownload) Run(ctx context.Context, requestURL *url.URL, opts *RegistryOptions) (err error) { func (b *blobDownload) Run(ctx context.Context, requestURL *url.URL, opts *RegistryOptions) {
b.err = b.run(ctx, requestURL, opts)
}
func (b *blobDownload) run(ctx context.Context, requestURL *url.URL, opts *RegistryOptions) error {
defer blobDownloadManager.Delete(b.Digest) defer blobDownloadManager.Delete(b.Digest)
ctx, b.CancelFunc = context.WithCancel(ctx) ctx, b.CancelFunc = context.WithCancel(ctx)
...@@ -285,8 +291,8 @@ func (b *blobDownload) Wait(ctx context.Context, fn func(api.ProgressResponse)) ...@@ -285,8 +291,8 @@ func (b *blobDownload) Wait(ctx context.Context, fn func(api.ProgressResponse))
Completed: b.Completed.Load(), Completed: b.Completed.Load(),
}) })
if b.done { if b.done || b.err != nil {
return nil return b.err
} }
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment