From 6da25d17bd95cbbe986f0bc55f95a4dda6adb39a Mon Sep 17 00:00:00 2001 From: zhongjiawei Date: Wed, 8 Nov 2023 15:33:59 +0800 Subject: [PATCH] containerd:bump ttrpc to fix containerd-shim socket connect increase leak after restart docker --- containerd.spec | 8 ++++- git-commit | 2 +- patch/0106-containerd-bump-ttrpc.patch | 46 ++++++++++++++++++++++++++ series.conf | 1 + 4 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 patch/0106-containerd-bump-ttrpc.patch diff --git a/containerd.spec b/containerd.spec index c440cdb..5a418cf 100644 --- a/containerd.spec +++ b/containerd.spec @@ -2,7 +2,7 @@ %global debug_package %{nil} Version: 1.2.0 Name: containerd -Release: 313 +Release: 314 Summary: An industry-standard container runtime License: ASL 2.0 URL: https://containerd.io @@ -72,6 +72,12 @@ install -p -m 755 bin/ctr $RPM_BUILD_ROOT/%{_bindir}/ctr %{_bindir}/ctr %changelog +* Wed Nov 08 2023 zhongjiawei - 1.2.0-314 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:bump ttrpc to fix containerd-shim socket connect increase leak after restart docker + * Tue Sep 19 2023 zhongjiawei - 1.2.0-313 - Type:bugfix - ID:NA diff --git a/git-commit b/git-commit index 1bb0620..c7d9ab6 100644 --- a/git-commit +++ b/git-commit @@ -1 +1 @@ -83c1d6b5231445a23935134d0cf18c2f5280ef87 +8e9edf2a5aa9a0e32d8c7c0c6100542001c6910c diff --git a/patch/0106-containerd-bump-ttrpc.patch b/patch/0106-containerd-bump-ttrpc.patch new file mode 100644 index 0000000..3f43b28 --- /dev/null +++ b/patch/0106-containerd-bump-ttrpc.patch @@ -0,0 +1,46 @@ +From 55e0671ff64532964c2de038d98be0e6a73bcfe7 Mon Sep 17 00:00:00 2001 +From: Georgi Sabev +Date: Mon, 13 May 2019 16:21:04 +0100 +Subject: [PATCH] Bump ttrpc + +Co-authored-by: Giuseppe Capizzi +Signed-off-by: Georgi Sabev +--- + vendor.conf | 2 +- + vendor/github.com/containerd/ttrpc/server.go | 7 ++++++- + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/vendor.conf b/vendor.conf +index 0f76be3b0..35c887dde 100644 +--- a/vendor.conf ++++ b/vendor.conf +@@ -36,7 +36,7 @@ github.com/Microsoft/go-winio v0.4.11 + github.com/Microsoft/hcsshim v0.7.12 + google.golang.org/genproto d80a6e20e776b0b17a324d0ba1ab50a39c8e8944 + golang.org/x/text 19e51611da83d6be54ddafce4a4af510cb3e9ea4 +-github.com/containerd/ttrpc 699c4e40d1e7416e08bf7019c7ce2e9beced4636 ++github.com/containerd/ttrpc f82148331ad2181edea8f3f649a1f7add6c3f9c2 + github.com/syndtr/gocapability db04d3cc01c8b54962a58ec7e491717d06cfcc16 + gotest.tools v2.1.0 + github.com/google/go-cmp v0.1.0 +diff --git a/vendor/github.com/containerd/ttrpc/server.go b/vendor/github.com/containerd/ttrpc/server.go +index 263cb4583..ab2fdf2fc 100644 +--- a/vendor/github.com/containerd/ttrpc/server.go ++++ b/vendor/github.com/containerd/ttrpc/server.go +@@ -446,7 +446,12 @@ func (c *serverConn) run(sctx context.Context) { + // branch. Basically, it means that we are no longer receiving + // requests due to a terminal error. + recvErr = nil // connection is now "closing" +- if err != nil && err != io.EOF { ++ if err == io.EOF || err == io.ErrUnexpectedEOF { ++ // The client went away and we should stop processing ++ // requests, so that the client connection is closed ++ return ++ } ++ if err != nil { + logrus.WithError(err).Error("error receiving message") + } + case <-shutdown: +-- +2.33.0 + diff --git a/series.conf b/series.conf index 5826df2..5016a15 100644 --- a/series.conf +++ b/series.conf @@ -113,4 +113,5 @@ patch/0104-containerd-bugfix-add-nil-pointer-check-for-cgroup-v1-mem-usage.patch patch/0105-containerd-fix-allow-attaching-to-any-combination-of-stdin-stdo.patch # sw_64 sw64_patch/3000-bbolt-add-support-sw_64.patch +patch/0106-containerd-bump-ttrpc.patch # end -- Gitee