Skip to content

Commit 1424121

Browse files
caxu-rhacornett21
authored andcommitted
engine: close layer readers when counting layer size
Signed-off-by: Caleb Xu <caxu@redhat.com>
1 parent 605e636 commit 1424121

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

internal/engine/engine.go

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -529,13 +529,22 @@ func writeCertImage(ctx context.Context, imageRef image.ImageReference) error {
529529
return fmt.Errorf("could not get layer by diff id: %w", err)
530530
}
531531

532-
uncompressed, err := layer.Uncompressed()
533-
if err != nil {
534-
return fmt.Errorf("could not get uncompressed layer: %w", err)
535-
}
536-
written, err := io.Copy(io.Discard, uncompressed)
532+
written, err := func() (int64, error) {
533+
uncompressed, err := layer.Uncompressed()
534+
if err != nil {
535+
return 0, fmt.Errorf("could not get uncompressed layer: %w", err)
536+
}
537+
defer uncompressed.Close()
538+
539+
written, err := io.Copy(io.Discard, uncompressed)
540+
if err != nil {
541+
return written, fmt.Errorf("could not copy from layer: %w", err)
542+
}
543+
544+
return written, nil
545+
}()
537546
if err != nil {
538-
return fmt.Errorf("could not copy from layer: %w", err)
547+
return err
539548
}
540549

541550
pyxisLayer := pyxis.Layer{

0 commit comments

Comments
 (0)