From 4ea1d4e1645d75366257f3e43127b3cb8ed4448e Mon Sep 17 00:00:00 2001 From: chenjiankun Date: Thu, 29 Jun 2023 16:25:20 +0800 Subject: [PATCH] docker: repalce unix.Rmdir with os.RemoveAll when remove mount point dir fix #I7G1LL (cherry picked from commit 3bd8a5e5db07f799b66ccaee5f84665632ff00a4) --- VERSION-vendor | 2 +- docker-engine-openeuler.spec | 8 +++- ...nix.Rmdir-with-os.RemoveAll-when-rem.patch | 38 +++++++++++++++++++ series.conf | 1 + 4 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 patch/0260-docker-repalce-unix.Rmdir-with-os.RemoveAll-when-rem.patch diff --git a/VERSION-vendor b/VERSION-vendor index 3ac6e00..aebab0c 100644 --- a/VERSION-vendor +++ b/VERSION-vendor @@ -1 +1 @@ -18.09.0.255 +18.09.0.256 diff --git a/docker-engine-openeuler.spec b/docker-engine-openeuler.spec index 5fe715d..7d7da3d 100644 --- a/docker-engine-openeuler.spec +++ b/docker-engine-openeuler.spec @@ -1,6 +1,6 @@ Name: docker-engine Version: 18.09.0 -Release: 255 +Release: 256 Epoch: 1 Summary: The open-source application container engine Group: Tools/Docker @@ -199,6 +199,12 @@ fi %endif %changelog +* Tue Jun 27 2023 chenjiankun - 18.09.0-256 +- Type:bugfix +- CVE:NA +- SUG:NA +- DESC:repalce unix.Rmdir with os.RemoveAll when remove mount point dir + * Tue Jun 27 2023 chenjiankun - 18.09.0-255 - Type:bugfix - CVE:NA diff --git a/patch/0260-docker-repalce-unix.Rmdir-with-os.RemoveAll-when-rem.patch b/patch/0260-docker-repalce-unix.Rmdir-with-os.RemoveAll-when-rem.patch new file mode 100644 index 0000000..f46b328 --- /dev/null +++ b/patch/0260-docker-repalce-unix.Rmdir-with-os.RemoveAll-when-rem.patch @@ -0,0 +1,38 @@ +From 9f1aa90a8c1b3856c4bb6ec422b8f67ac5afc31e Mon Sep 17 00:00:00 2001 +From: chenjiankun +Date: Mon, 12 Jun 2023 16:09:06 +0800 +Subject: [PATCH] docker: repalce unix.Rmdir with os.RemoveAll when remove + mount point dir + +In some cases, there are some files in the mount point dir, so we can't use +unix.Rmdir to remove mount point dir. +--- + components/engine/daemon/graphdriver/devmapper/driver.go | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/components/engine/daemon/graphdriver/devmapper/driver.go b/components/engine/daemon/graphdriver/devmapper/driver.go +index 3005b84eb..a1a6e17af 100644 +--- a/components/engine/daemon/graphdriver/devmapper/driver.go ++++ b/components/engine/daemon/graphdriver/devmapper/driver.go +@@ -19,7 +19,6 @@ import ( + "github.com/docker/go-units" + "github.com/pkg/errors" + "github.com/sirupsen/logrus" +- "golang.org/x/sys/unix" + ) + + func init() { +@@ -196,7 +195,9 @@ func (d *Driver) Remove(id string) error { + // mount point is not important and should not be treated + // as a failure to remove the container. + mp := path.Join(d.home, "mnt", id) +- err := unix.Rmdir(mp) ++ // In some cases, there are some files in the mount point dir, so we can't use ++ // unix.Rmdir to remove mount point dir. os.RemoveAll is more appropriate ++ err := os.RemoveAll(mp) + if err != nil && !os.IsNotExist(err) { + logrus.WithField("storage-driver", "devicemapper").Warnf("unable to remove mount point %q: %s", mp, err) + } +-- +2.23.0 + diff --git a/series.conf b/series.conf index 14b40f9..cb90892 100644 --- a/series.conf +++ b/series.conf @@ -248,4 +248,5 @@ patch/0256-docker-libnet-d-overlay-document-some-encryption-code.patch patch/0257-docker-libnet-d-overlay-add-BPF-powered-VNI-matcher.patch patch/0258-docker-thinpool-full-because-kill-docker-daemon-when.patch patch/0259-backport-fix-blockThreshold-full-bug.patch +patch/0260-docker-repalce-unix.Rmdir-with-os.RemoveAll-when-rem.patch #end