Add missing unpacker.Wait for image import
- For remote snapshotters, the unpack phase serves as an important step for preparing the remote snapshot. With the missing unpacker.Wait, the snapshotter `Prepare` context is always canceled. - This patch allows remote snapshotter based archives to be imported via the transfer service or `ctr image import` Signed-off-by: Edgar Lee <edgarhinshunlee@gmail.com>
This commit is contained in:
parent
b0a7f08aa7
commit
779875a057
@ -113,10 +113,20 @@ func (ts *localTransferService) importStream(ctx context.Context, i transfer.Ima
|
|||||||
}
|
}
|
||||||
|
|
||||||
if err := images.WalkNotEmpty(ctx, handler, index); err != nil {
|
if err := images.WalkNotEmpty(ctx, handler, index); err != nil {
|
||||||
|
if unpacker != nil {
|
||||||
|
// wait for unpacker to cleanup
|
||||||
|
unpacker.Wait()
|
||||||
|
}
|
||||||
// TODO: Handle Not Empty as a special case on the input
|
// TODO: Handle Not Empty as a special case on the input
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if unpacker != nil {
|
||||||
|
if _, err = unpacker.Wait(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for _, desc := range descriptors {
|
for _, desc := range descriptors {
|
||||||
imgs, err := is.Store(ctx, desc, ts.images)
|
imgs, err := is.Store(ctx, desc, ts.images)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user