isula-build/patch/0037-isula-build-fix-goroutine-leak-problem.patch

43 lines
1.6 KiB
Diff
Raw Normal View History

From 56012b7a20cd09c91788f610321fefe82f4bbb5f Mon Sep 17 00:00:00 2001
From: yangfeiyu <yangfeiyu2@huawei.com>
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 <yangfeiyu2@huawei.com>
---
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