|
@@ -253,13 +253,14 @@ func (ls *layerStore) applyTar(tx *fileMetadataTransaction, ts io.Reader, parent
|
|
}
|
|
}
|
|
|
|
|
|
applySize, err := ls.driver.ApplyDiff(layer.cacheID, parent, rdr)
|
|
applySize, err := ls.driver.ApplyDiff(layer.cacheID, parent, rdr)
|
|
|
|
+ // discard trailing data but ensure metadata is picked up to reconstruct stream
|
|
|
|
+ // unconditionally call io.Copy here before checking err to ensure the resources
|
|
|
|
+ // allocated by NewInputTarStream above are always released
|
|
|
|
+ io.Copy(ioutil.Discard, rdr) // ignore error as reader may be closed
|
|
if err != nil {
|
|
if err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
|
|
|
|
- // Discard trailing data but ensure metadata is picked up to reconstruct stream
|
|
|
|
- io.Copy(ioutil.Discard, rdr) // ignore error as reader may be closed
|
|
|
|
-
|
|
|
|
layer.size = applySize
|
|
layer.size = applySize
|
|
layer.diffID = DiffID(digester.Digest())
|
|
layer.diffID = DiffID(digester.Digest())
|
|
|
|
|