From d04b5e08d2ddbd9955ad618b93a2db1751eb35b5 Mon Sep 17 00:00:00 2001 From: zhongjiawei Date: Thu, 12 Oct 2023 15:12:06 +0800 Subject: [PATCH] docker:add delay after freeze (cherry picked from commit 2e48b57e25c721804c926c73370c33d3e769bc94) --- VERSION-vendor | 2 +- docker.spec | 8 +++++- git-commit | 2 +- ...er.state-to-Thawed-to-increase-freez.patch | 27 +++++++++++++++---- 4 files changed, 31 insertions(+), 8 deletions(-) diff --git a/VERSION-vendor b/VERSION-vendor index d11ff4d..68ceae5 100644 --- a/VERSION-vendor +++ b/VERSION-vendor @@ -1 +1 @@ -18.09.0.330 +18.09.0.331 diff --git a/docker.spec b/docker.spec index d1b5a6a..43bfaab 100644 --- a/docker.spec +++ b/docker.spec @@ -1,6 +1,6 @@ Name: docker-engine Version: 18.09.0 -Release: 330 +Release: 331 Epoch: 2 Summary: The open-source application container engine Group: Tools/Docker @@ -227,6 +227,12 @@ fi %endif %changelog +* Thu Oct 12 2023 zhongjiawei - 18.09.0-331 +- Type:bugfix +- CVE:NA +- SUG:NA +- DESC:add delay after freeze + * Mon Oct 09 2023 Lu Jingxiao - 18.09.0-330 - Type:bugfix - CVE:NA diff --git a/git-commit b/git-commit index 1b6e3a1..ceb79cb 100644 --- a/git-commit +++ b/git-commit @@ -1 +1 @@ -6e79cc61cbbc23c3aa3368ef6159a04d0e6ecc04 +27990572a4a6368c387a04649493a8a41bf26d57 diff --git a/patch/0236-docker-set-freezer.state-to-Thawed-to-increase-freez.patch b/patch/0236-docker-set-freezer.state-to-Thawed-to-increase-freez.patch index 738361a..0ab75cc 100644 --- a/patch/0236-docker-set-freezer.state-to-Thawed-to-increase-freez.patch +++ b/patch/0236-docker-set-freezer.state-to-Thawed-to-increase-freez.patch @@ -1,4 +1,4 @@ -From a1e170db821863c8a8062f599fab64d6c1d95210 Mon Sep 17 00:00:00 2001 +From 2a6d6321956d0a6edbec7421357e14c01dc7f5ab Mon Sep 17 00:00:00 2001 From: chenjiankun Date: Fri, 13 Jan 2023 17:13:22 +0800 Subject: [PATCH] docker: set freezer.state to Thawed to increase freeze @@ -6,12 +6,15 @@ Subject: [PATCH] docker: set freezer.state to Thawed to increase freeze docker pause/unpause with parallel docker exec can lead to freezing state, set freezer.state to Thawed to increase freeze chances + +Occasional short sleep before reading the state back also improves +the chances to succeed in freezing in case of a very slow system. --- - components/engine/daemon/freezer/freezer.go | 21 +++++++++++++++++++++ - 1 file changed, 21 insertions(+) + components/engine/daemon/freezer/freezer.go | 28 +++++++++++++++++++++ + 1 file changed, 28 insertions(+) diff --git a/components/engine/daemon/freezer/freezer.go b/components/engine/daemon/freezer/freezer.go -index 6df176f2f..fde134887 100644 +index 6df176f2f..bd45304f4 100644 --- a/components/engine/daemon/freezer/freezer.go +++ b/components/engine/daemon/freezer/freezer.go @@ -186,6 +186,7 @@ func (f *freezer) updateCgroup(state string) error { @@ -49,6 +52,20 @@ index 6df176f2f..fde134887 100644 // In case this loop does not exit because it doesn't get the expected // state, let's write again this state, hoping it's going to be properly // set this time. Otherwise, this loop could run infinitely, waiting for +@@ -201,6 +222,13 @@ func (f *freezer) updateCgroup(state string) error { + if err := writeFile(f.path, "freezer.state", state); err != nil { + return fmt.Errorf("cannot write freezer.state for %#v", err) + } ++ if count%25 == 24 { ++ // Occasional short sleep before reading ++ // the state back also improves the chances to ++ // succeed in freezing in case of a very slow ++ // system. ++ time.Sleep(10 * time.Microsecond) ++ } + newState, err := readFile(f.path, "freezer.state") + if err != nil { + return fmt.Errorf("read freezer.state failed after write: %v", err) -- -2.23.0 +2.33.0 -- Gitee