From 56012b7a20cd09c91788f610321fefe82f4bbb5f Mon Sep 17 00:00:00 2001 From: yangfeiyu Date: Mon, 7 Sep 2020 20:57:34 +0800 Subject: [PATCH] isula-build: fix goroutine leak problem reason: when import a zstd tar file, goroutine will leak because of the unclosing channel of tar stream Signed-off-by: yangfeiyu --- vendor/github.com/containers/storage/layers.go | 1 + vendor/github.com/containers/storage/pkg/archive/archive.go | 1 + 2 files changed, 2 insertions(+) diff --git a/vendor/github.com/containers/storage/layers.go b/vendor/github.com/containers/storage/layers.go index 1fc25bab..2d2cf08e 100644 --- a/vendor/github.com/containers/storage/layers.go +++ b/vendor/github.com/containers/storage/layers.go @@ -1329,6 +1329,7 @@ func (r *layerStore) ApplyDiff(to string, diff io.Reader) (size int64, err error if err != nil { return -1, err } + defer uncompressed.Close() uncompressedDigest := digest.Canonical.Digester() uncompressedCounter := ioutils.NewWriteCounter(uncompressedDigest.Hash()) uidLog := make(map[uint32]struct{}) diff --git a/vendor/github.com/containers/storage/pkg/archive/archive.go b/vendor/github.com/containers/storage/pkg/archive/archive.go index dd3b7506..58c4d184 100755 --- a/vendor/github.com/containers/storage/pkg/archive/archive.go +++ b/vendor/github.com/containers/storage/pkg/archive/archive.go @@ -139,6 +139,7 @@ func IsArchivePath(path string) bool { if err != nil { return false } + defer rdr.Close() r := tar.NewReader(rdr) _, err = r.Next() return err == nil -- 2.23.0