diff -Nru docker.io-1.6.2~dfsg1/debian/changelog docker.io-1.6.2~dfsg1/debian/changelog --- docker.io-1.6.2~dfsg1/debian/changelog 2015-07-15 10:11:06.000000000 +0000 +++ docker.io-1.6.2~dfsg1/debian/changelog 2015-09-23 12:37:56.000000000 +0000 @@ -1,3 +1,48 @@ +docker.io (1.6.2~dfsg1-1ubuntu4~14.04.1) trusty; urgency=medium + + * Backport to Ubuntu 14.04 (LP: #1454719). + * Disabled + - d/p/lxc.autodev-support.patch to minimise regression risk as + it is not relevant for the version of LXC on Trusty (1.0.3-0ubuntu3). + - d/p/update-go.net-golang.org.patch: there has been a url + canonical name change upstream, but keeping this patch on involves + backporting golang to 1.4 which is undesirable for this backport + (golang-go.net-dev needs golang-x-text, which does not build + successfully without a 1.4 backport). + - Wily related fixes: + + d/p/golang-1.5-wily.patch to fix FTBFS with golang-1.5 build on wily + + d/p/ppc64el-wily.patch to fix ppc64le FTBFS on wily (LP: #1488668) + + d/p/libcontainer_arm64_syscall_dup2_to_dup3-c_changes.patch (LP: #1488669) + + d/p/libcontainer_arm64_syscall_dup2_to_dup3-golang_changes.patch (LP: #1488669) + + d/rules to build with golang-go on arm64 (LP: #1488669) + + d/control to build with golang-go on arm64 (LP: #1488669) + * Reverted: + d/rules: http://anonscm.debian.org/cgit/docker/docker.io.git/diff/?id=b1458f5 + commit to preserve docker.io symlink. + + -- Pierre-André MOREY Tue, 22 Sep 2015 13:47:53 +0200 + +docker.io (1.6.2~dfsg1-1ubuntu4) wily; urgency=medium + + * Add patches from upstream to fix some upgrade path bugs: + - d/p/add-mutex-read-m_path.patch to fix vivid upgrade-path + - d/p/stop-systemd-on-destroy.patch to fix leftover ".scope" fails + * Add patches to fix Wily FTBFS: + - d/p/ppc64el-wily.patch to fix ppc64le FTBFS on wily (LP: #1488668) + - d/p/golang-1.5-wily.patch to fix FTBFS with golang-1.5 build on + wily + * arm64 support fixes for golang-go build (LP: #1488669): + - d/p/libcontainer_arm64_syscall_dup2_to_dup3-c_changes.patch (LP: + #1488669) + - d/p/libcontainer_arm64_syscall_dup2_to_dup3-golang_changes.patch + (LP: #1488669) + * d/rules to build with golang-go on arm64 (LP: #1488669) + * d/control to build with golang-go on arm64 (LP: #1488669) + * Revert device-mapper-cleanup.patch dropped with an new one: + d/p/device-mapper-cleanup2.patch + + -- Pierre-André MOREY Fri, 18 Sep 2015 14:50:57 +0200 + docker.io (1.6.2~dfsg1-1ubuntu3~14.04.1) trusty; urgency=medium * Backport to Ubuntu 14.04 (LP: #1454719). diff -Nru docker.io-1.6.2~dfsg1/debian/patches/add-mutex-read-m_path.patch docker.io-1.6.2~dfsg1/debian/patches/add-mutex-read-m_path.patch --- docker.io-1.6.2~dfsg1/debian/patches/add-mutex-read-m_path.patch 1970-01-01 00:00:00.000000000 +0000 +++ docker.io-1.6.2~dfsg1/debian/patches/add-mutex-read-m_path.patch 2015-09-23 12:09:09.000000000 +0000 @@ -0,0 +1,101 @@ +From 81444369c6a2bccac92f03c9b1df115a98286c3a Mon Sep 17 00:00:00 2001 +From: Antonio Murdaca +Date: Mon, 25 May 2015 20:29:09 +0200 +Subject: [PATCH] Add mutex in Manager to read from m.Paths + +Signed-off-by: Antonio Murdaca + +Origin: other, https://github.com/LK4D4/libcontainer/commit/81444369c6a2bccac92f03c9b1df115a98286c3a.patch +Last-Update: 2015-07-30 + +Modified to be applied to this docker commit. Added to fix vivid upgrade path. + +--- +diff --git a/libcontainer/cgroups/fs/apply_raw.go b/libcontainer/cgroups/fs/apply_raw.go +index 0a2d76b..3f8ed5e 100644 +--- a/libcontainer/cgroups/fs/apply_raw.go ++++ b/libcontainer/cgroups/fs/apply_raw.go +@@ -37,6 +37,7 @@ type subsystem interface { + } + + type Manager struct { ++ mu sync.Mutex + Cgroups *configs.Cgroup + Paths map[string]string + } +@@ -112,11 +113,20 @@ func (m *Manager) Apply(pid int) error { + } + + func (m *Manager) Destroy() error { +- return cgroups.RemovePaths(m.Paths) ++ m.mu.Lock() ++ defer m.mu.Unlock() ++ if err := cgroups.RemovePaths(m.Paths); err != nil { ++ return err ++ } ++ m.Paths = make(map[string]string) ++ return nil + } + + func (m *Manager) GetPaths() map[string]string { +- return m.Paths ++ m.mu.Lock() ++ paths := m.Paths ++ m.mu.Unlock() ++ return paths + } + + // Symmetrical public function to update device based cgroups. Also available +@@ -133,6 +143,8 @@ func ApplyDevices(c *configs.Cgroup, pid int) error { + } + + func (m *Manager) GetStats() (*cgroups.Stats, error) { ++ m.mu.Lock() ++ defer m.mu.Unlock() + stats := cgroups.NewStats() + for name, path := range m.Paths { + sys, ok := subsystems[name] +diff --git a/libcontainer/cgroups/systemd/apply_systemd.go b/libcontainer/cgroups/systemd/apply_systemd.go +index 3609bcc..7f539e2 100644 +--- a/libcontainer/cgroups/systemd/apply_systemd.go ++++ b/libcontainer/cgroups/systemd/apply_systemd.go +@@ -20,6 +20,7 @@ import ( + ) + + type Manager struct { ++ mu sync.Mutex + Cgroups *configs.Cgroup + Paths map[string]string + } +@@ -235,11 +236,20 @@ func (m *Manager) Apply(pid int) error { + } + + func (m *Manager) Destroy() error { +- return cgroups.RemovePaths(m.Paths) ++ m.mu.Lock() ++ defer m.mu.Unlock() ++ if err := cgroups.RemovePaths(m.Paths); err != nil { ++ return err ++ } ++ m.Paths = make(map[string]string) ++ return nil + } + + func (m *Manager) GetPaths() map[string]string { +- return m.Paths ++ m.mu.Lock() ++ paths := m.Paths ++ m.mu.Unlock() ++ return paths + } + + func writeFile(dir, file, data string) error { +@@ -335,6 +345,8 @@ func (m *Manager) GetPids() ([]int, error) { + } + + func (m *Manager) GetStats() (*cgroups.Stats, error) { ++ m.mu.Lock() ++ defer m.mu.Unlock() + stats := cgroups.NewStats() + for name, path := range m.Paths { + sys, ok := subsystems[name] diff -Nru docker.io-1.6.2~dfsg1/debian/patches/device-mapper-cleanup2.patch docker.io-1.6.2~dfsg1/debian/patches/device-mapper-cleanup2.patch --- docker.io-1.6.2~dfsg1/debian/patches/device-mapper-cleanup2.patch 1970-01-01 00:00:00.000000000 +0000 +++ docker.io-1.6.2~dfsg1/debian/patches/device-mapper-cleanup2.patch 2015-09-23 12:09:09.000000000 +0000 @@ -0,0 +1,58 @@ +Description: Cleanup stale device mapper mounts on start + On shutdown, docker sometimes leaves device mapper + mounts for container mounted, causing the containers + impacted to be un-startable post-restart. + . + Cleanup any stale device mapper mounts on startup; this + is really just a workaround for an open issue upstream. +Author: James Page +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1404300 +Bug: https://github.com/docker/docker/issues/5684 + +To reproduce, just install docker.io from trusty archive (0.9.1 or 1.0.1), start a +container doing just a echo hello, every seconds, then upgrade. The container cannot +start again. + +diff --git a/contrib/init/sysvinit-debian/docker b/contrib/init/sysvinit-debian/docker +index cdeedf7..9b0ca45 100755 +--- a/contrib/init/sysvinit-debian/docker ++++ b/contrib/init/sysvinit-debian/docker +@@ -57,10 +57,20 @@ fail_unless_root() { + fi + } + ++devicemapper_umount() { ++ # Cleanup any stale mounts left from previous shutdown ++ # see https://bugs.launchpad.net/ubuntu/+source/docker.io/+bug/1404300 ++ grep "mapper/docker" /proc/mounts | awk '{ print $2 }' | \ ++ xargs -r umount || true ++} ++ + case "$1" in + start) + fail_unless_root + ++ cgroupfs_mount ++ devicemapper_umount ++ + touch "$DOCKER_LOGFILE" + chgrp docker "$DOCKER_LOGFILE" + +diff --git a/contrib/init/upstart/docker.conf b/contrib/init/upstart/docker.conf +index c0f4697..6216960 100644 +--- a/contrib/init/upstart/docker.conf ++++ b/contrib/init/upstart/docker.conf +@@ -7,6 +7,13 @@ limit nproc 524288 1048576 + + respawn + ++pre-start script ++ # Cleanup any stale mounts left from previous shutdown ++ # see https://bugs.launchpad.net/ubuntu/+source/docker.io/+bug/1404300 ++ grep "mapper/docker" /proc/mounts | awk '{ print $2 }' | \ ++ xargs -r umount || true ++end script ++ + script + # modify these in /etc/default/$UPSTART_JOB (/etc/default/docker) + DOCKER=/usr/bin/$UPSTART_JOB diff -Nru docker.io-1.6.2~dfsg1/debian/patches/golang-1.5-wily.patch docker.io-1.6.2~dfsg1/debian/patches/golang-1.5-wily.patch --- docker.io-1.6.2~dfsg1/debian/patches/golang-1.5-wily.patch 1970-01-01 00:00:00.000000000 +0000 +++ docker.io-1.6.2~dfsg1/debian/patches/golang-1.5-wily.patch 2015-09-23 12:09:09.000000000 +0000 @@ -0,0 +1,92 @@ +From 0a426878b52e9eaa243df117ece0608804c28d29 Mon Sep 17 00:00:00 2001 +From: Vincent Batts +Date: Fri, 7 Aug 2015 10:18:20 -0400 +Subject: [PATCH] devicemapper: fix zero-sized field access + +Fixes: #15279 + +Due to +https://github.com/golang/go/commit/7904946eeb35faece61bbf6f5b3cc8be2f519c17 +the devices field is dropped. + +This solution works on go1.4 and go1.5 + +Signed-off-by: Vincent Batts + +Last-Update: 2015-09-16 +Origin: other, https://github.com/rhatdan/docker/commit/0a426878b52e9eaa243df117ece0608804c28d29.patch + +Fix FTBFS on wily because of a change in C bindings in Golang-1.5 +Backported as the patch didn't apply directly. +cf: https://github.com/docker/docker/issues/15279 + +--- + +diff --git a/daemon/graphdriver/devmapper/deviceset.go b/daemon/graphdriver/devmapper/deviceset.go +index 686d72b..c3f3943 100644 +--- a/daemon/graphdriver/devmapper/deviceset.go ++++ b/daemon/graphdriver/devmapper/deviceset.go +@@ -1203,12 +1203,16 @@ func (devices *DeviceSet) deactivatePool() error { + if err != nil { + return err + } +- if d, err := devicemapper.GetDeps(devname); err == nil { +- // Access to more Debug output +- log.Debugf("[devmapper] devicemapper.GetDeps() %s: %#v", devname, d) ++ ++ if devinfo.Exists == 0 { ++ return nil ++ } ++ if err := devicemapper.RemoveDevice(devname); err != nil { ++ return err + } +- if devinfo.Exists != 0 { +- return devicemapper.RemoveDevice(devname) ++ ++ if d, err := devicemapper.GetDeps(devname); err == nil { ++ log.Warnf("[devmapper] device %s still has %d active dependents", devname, d.Count) + } + + return nil + +diff --git a/pkg/devicemapper/devmapper_wrapper.go b/pkg/devicemapper/devmapper_wrapper.go +index ae4f30f..296a39f 100644 +--- a/pkg/devicemapper/devmapper_wrapper.go ++++ b/pkg/devicemapper/devmapper_wrapper.go +@@ -38,7 +38,10 @@ static void log_with_errno_init() + */ + import "C" + +-import "unsafe" ++import ( ++ "reflect" ++ "unsafe" ++) + + type ( + CDmTask C.struct_dm_task +@@ -182,12 +185,22 @@ func dmTaskGetDepsFct(task *CDmTask) *Deps { + if Cdeps == nil { + return nil + } ++ ++ // golang issue: https://github.com/golang/go/issues/11925 ++ hdr := reflect.SliceHeader{ ++ Data: uintptr(unsafe.Pointer(uintptr(unsafe.Pointer(Cdeps)) + unsafe.Sizeof(*Cdeps))), ++ Len: int(Cdeps.count), ++ Cap: int(Cdeps.count), ++ } ++ devices := *(*[]C.uint64_t)(unsafe.Pointer(&hdr)) ++ ++ + deps := &Deps{ + Count: uint32(Cdeps.count), + Filler: uint32(Cdeps.filler), + } +- for _, device := range Cdeps.device { +- deps.Device = append(deps.Device, (uint64)(device)) ++ for _, device := range devices { ++ deps.Device = append(deps.Device, uint64(device)) + } + return deps + } diff -Nru docker.io-1.6.2~dfsg1/debian/patches/libcontainer_arm64_syscall_dup2_to_dup3-c_changes.patch docker.io-1.6.2~dfsg1/debian/patches/libcontainer_arm64_syscall_dup2_to_dup3-c_changes.patch --- docker.io-1.6.2~dfsg1/debian/patches/libcontainer_arm64_syscall_dup2_to_dup3-c_changes.patch 1970-01-01 00:00:00.000000000 +0000 +++ docker.io-1.6.2~dfsg1/debian/patches/libcontainer_arm64_syscall_dup2_to_dup3-c_changes.patch 2015-09-23 12:09:09.000000000 +0000 @@ -0,0 +1,44 @@ +From 29ee54ce2a4b6faff2ae650d14092d0214e2b2f2 Mon Sep 17 00:00:00 2001 +From: Geoff Levand +Date: Tue, 9 Jun 2015 15:19:47 -0700 +Subject: [PATCH] nsenter: Convert dup2 calls to dup3 + +For consistency with similar changes required by go lang sources, convert the +C library dup2() calls to dup3(). + +The go language syscall.Dup2() routine is not available on all CPU +architectures, so yscall.Dup2() calls were converted to syscall.Dup3(). + +Signed-off-by: Geoff Levand + +Last-Update: 2015-09-17 +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/docker.io/+bug/1488669 +Origin: upstream, https://github.com/glevand/docker--libcontainer/commit/29ee54ce2a4b6faff2ae650d14092d0214e2b2f2 + +--- + nsenter/nsexec.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libcontainer/nsenter/nsexec.c b/libcontainer/nsenter/nsexec.c +index d8e45f3..d78e169 100644 +--- a/libcontainer/nsenter/nsexec.c ++++ b/libcontainer/nsenter/nsexec.c +@@ -148,15 +148,15 @@ void nsexec() + pr_perror("ioctl TIOCSCTTY failed"); + exit(1); + } +- if (dup2(consolefd, STDIN_FILENO) != STDIN_FILENO) { ++ if (dup3(consolefd, STDIN_FILENO, 0) != STDIN_FILENO) { + pr_perror("Failed to dup 0"); + exit(1); + } +- if (dup2(consolefd, STDOUT_FILENO) != STDOUT_FILENO) { ++ if (dup3(consolefd, STDOUT_FILENO, 0) != STDOUT_FILENO) { + pr_perror("Failed to dup 1"); + exit(1); + } +- if (dup2(consolefd, STDERR_FILENO) != STDERR_FILENO) { ++ if (dup3(consolefd, STDERR_FILENO, 0) != STDERR_FILENO) { + pr_perror("Failed to dup 2"); + exit(1); + } diff -Nru docker.io-1.6.2~dfsg1/debian/patches/libcontainer_arm64_syscall_dup2_to_dup3-golang_changes.patch docker.io-1.6.2~dfsg1/debian/patches/libcontainer_arm64_syscall_dup2_to_dup3-golang_changes.patch --- docker.io-1.6.2~dfsg1/debian/patches/libcontainer_arm64_syscall_dup2_to_dup3-golang_changes.patch 1970-01-01 00:00:00.000000000 +0000 +++ docker.io-1.6.2~dfsg1/debian/patches/libcontainer_arm64_syscall_dup2_to_dup3-golang_changes.patch 2015-09-23 12:09:09.000000000 +0000 @@ -0,0 +1,56 @@ +From 0e8afb8f9da900e9630c001950582683cb66163b Mon Sep 17 00:00:00 2001 +From: Geoff Levand +Date: Tue, 9 Jun 2015 15:19:47 -0700 +Subject: [PATCH] linux: Convert dup2 calls to dup3 + +Convert syscall.Dup2 calls to syscall.Dup3. The dup2 syscall is depreciated +and is not available on some architectures. Fixes build errors like these when +building for arm64: + + console_linux.go: undefined: syscall.Dup2 + +Signed-off-by: Geoff Levand + +Last-Update: 2015-09-17 +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/docker.io/+bug/1488669 +Origin: upstream, https://github.com/glevand/docker--libcontainer/commit/0e8afb8f9da900e9630c001950582683cb66163b +--- + console_linux.go | 4 ++-- + rootfs_linux.go | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libcontainer/console_linux.go b/libcontainer/console_linux.go +index 5eaf031..e35ac52 100644 +--- a/libcontainer/console_linux.go ++++ b/libcontainer/console_linux.go +@@ -92,7 +92,7 @@ func (c *linuxConsole) mount(rootfs, mountLabel string, uid, gid int) error { + return syscall.Mount(c.slavePath, dest, "bind", syscall.MS_BIND, "") + } + +-// dupStdio opens the slavePath for the console and dup2s the fds to the current ++// dupStdio opens the slavePath for the console and dups the fds to the current + // processes stdio, fd 0,1,2. + func (c *linuxConsole) dupStdio() error { + slave, err := c.open(syscall.O_RDWR) +@@ -101,7 +101,7 @@ func (c *linuxConsole) dupStdio() error { + } + fd := int(slave.Fd()) + for _, i := range []int{0, 1, 2} { +- if err := syscall.Dup2(fd, i); err != nil { ++ if err := syscall.Dup3(fd, i, 0); err != nil { + return err + } + } +diff --git a/libcontainer/rootfs_linux.go b/libcontainer/rootfs_linux.go +index 4ddfff1..0b0c381 100644 +--- a/libcontainer/rootfs_linux.go ++++ b/libcontainer/libcontainer/rootfs_linux.go +@@ -272,7 +272,7 @@ func reOpenDevNull(rootfs string) error { + } + if stat.Rdev == devNullStat.Rdev { + // Close and re-open the fd. +- if err := syscall.Dup2(int(file.Fd()), fd); err != nil { ++ if err := syscall.Dup3(int(file.Fd()), fd, 0); err != nil { + return err + } + } diff -Nru docker.io-1.6.2~dfsg1/debian/patches/ppc64el-wily.patch docker.io-1.6.2~dfsg1/debian/patches/ppc64el-wily.patch --- docker.io-1.6.2~dfsg1/debian/patches/ppc64el-wily.patch 1970-01-01 00:00:00.000000000 +0000 +++ docker.io-1.6.2~dfsg1/debian/patches/ppc64el-wily.patch 2015-09-23 12:09:09.000000000 +0000 @@ -0,0 +1,55 @@ +From 251880b22deac7a5f6c922d895004f8dd19b0f3e Mon Sep 17 00:00:00 2001 +From: Michael Chase-Salerno +Date: Thu, 11 Jun 2015 20:07:33 +0000 +Subject: [PATCH] Additional ppc architectures follow the arm datatype + +Signed-off-by: Michael Chase-Salerno + +Last-Update: 2015-09-14 +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/docker.io/+bug/1488668 +Origin: upstream, https://github.com/docker/libcontainer/commit/024e2020d50c6052f2b63f6c8ba551aa72b37bca + +Fix FTBFS on wily. The type of syscall.RawSockaddr.Data for gccgo changed in wily recently and this breaks docker. + +--- + libcontainer/netlink/netlink_linux_arm.go | 5 ----- + libcontainer/netlink/netlink_linux_armppc64.go | 7 +++++++ + libcontainer/netlink/netlink_linux_notarm.go | 2 +- + 3 files changed, 8 insertions(+), 6 deletions(-) + delete mode 100644 netlink/netlink_linux_arm.go + create mode 100644 netlink/netlink_linux_armppc64.go + +diff --git a/libcontainer/netlink/netlink_linux_arm.go b/libcontainer/netlink/netlink_linux_arm.go +deleted file mode 100644 +index 779e58a..0000000 +--- a/libcontainer/netlink/netlink_linux_arm.go ++++ /dev/null +@@ -1,5 +0,0 @@ +-package netlink +- +-func ifrDataByte(b byte) uint8 { +- return uint8(b) +-} +diff --git a/libcontainer/netlink/netlink_linux_armppc64.go b/libcontainer/netlink/netlink_linux_armppc64.go +new file mode 100644 +index 0000000..965e0bf +--- /dev/null ++++ b/libcontainer/netlink/netlink_linux_armppc64.go +@@ -0,0 +1,7 @@ ++// +build arm ppc64 ppc64le ++ ++package netlink ++ ++func ifrDataByte(b byte) uint8 { ++ return uint8(b) ++} +diff --git a/libcontainer/netlink/netlink_linux_notarm.go b/libcontainer/netlink/netlink_linux_notarm.go +index f151722..7446279 100644 +--- a/libcontainer/netlink/netlink_linux_notarm.go ++++ b/libcontainer/netlink/netlink_linux_notarm.go +@@ -1,4 +1,4 @@ +-// +build !arm ++// +build !arm,!ppc64,!ppc64le + + package netlink + diff -Nru docker.io-1.6.2~dfsg1/debian/patches/series docker.io-1.6.2~dfsg1/debian/patches/series --- docker.io-1.6.2~dfsg1/debian/patches/series 2015-07-15 10:07:24.000000000 +0000 +++ docker.io-1.6.2~dfsg1/debian/patches/series 2015-09-23 12:37:16.000000000 +0000 @@ -1,4 +1,5 @@ cgroupfs-mount-convenience-copy.patch +device-mapper-cleanup2.patch # https://github.com/docker/docker/pull/12048! (1.7+) 12048-auto-btrfs_noversion.patch @@ -29,3 +30,13 @@ #Update vendored go.net to use golang.org/x/net canonical path #update-go.net-golang.org.patch + +#Fix/Workaround for *.scope leftovers files bug +add-mutex-read-m_path.patch +stop-systemd-on-destroy.patch + +#Wily FTBFS Fixes +#ppc64el-wily.patch +#golang-1.5-wily.patch +#libcontainer_arm64_syscall_dup2_to_dup3-c_changes.patch +#libcontainer_arm64_syscall_dup2_to_dup3-golang_changes.patch diff -Nru docker.io-1.6.2~dfsg1/debian/patches/stop-systemd-on-destroy.patch docker.io-1.6.2~dfsg1/debian/patches/stop-systemd-on-destroy.patch --- docker.io-1.6.2~dfsg1/debian/patches/stop-systemd-on-destroy.patch 1970-01-01 00:00:00.000000000 +0000 +++ docker.io-1.6.2~dfsg1/debian/patches/stop-systemd-on-destroy.patch 2015-09-23 12:09:09.000000000 +0000 @@ -0,0 +1,30 @@ +From f6ad21078597c7f6900138e0b76ec8fb68fce6f1 Mon Sep 17 00:00:00 2001 +From: Alexander Morozov +Date: Mon, 8 Jun 2015 15:06:05 -0700 +Subject: [PATCH] Stop systemd unit on destroy + +It totally fixes leftover ".scope" fails. Of course it's just +workaround, real issue seems to be in go-systemd library or in systemd +itself. + +Signed-off-by: Alexander Morozov + +Origin: other, https://github.com/LK4D4/libcontainer/commit/f6ad21078597c7f6900138e0b76ec8fb68fce6f1 +Last-Update: 2015-07-30 + +--- + cgroups/systemd/apply_systemd.go | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/libcontainer/cgroups/systemd/apply_systemd.go b/libcontainer/cgroups/systemd/apply_systemd.go +index 98e9a5d..1251447 100644 +--- a/libcontainer/cgroups/systemd/apply_systemd.go ++++ b/libcontainer/cgroups/systemd/apply_systemd.go +@@ -259,6 +259,7 @@ func (m *Manager) Apply(pid int) error { + func (m *Manager) Destroy() error { + m.mu.Lock() + defer m.mu.Unlock() ++ theConn.StopUnit(getUnitName(m.Cgroups), "replace") + if err := cgroups.RemovePaths(m.Paths); err != nil { + return err + }