]> git.ipfire.org Git - people/pmueller/ipfire-3.x.git/blobdiff - pakfire/patches/0007-cgroup-Move-builder-process-out-of-cgroup-before-des.patch
pakfire: Sync with upstream.
[people/pmueller/ipfire-3.x.git] / pakfire / patches / 0007-cgroup-Move-builder-process-out-of-cgroup-before-des.patch
diff --git a/pakfire/patches/0007-cgroup-Move-builder-process-out-of-cgroup-before-des.patch b/pakfire/patches/0007-cgroup-Move-builder-process-out-of-cgroup-before-des.patch
new file mode 100644 (file)
index 0000000..4b93d85
--- /dev/null
@@ -0,0 +1,35 @@
+From 3503b1493c09bbcca6d8dff203126703a7fc5822 Mon Sep 17 00:00:00 2001
+From: Michael Tremer <michael.tremer@ipfire.org>
+Date: Sun, 10 Mar 2013 01:22:37 +0100
+Subject: [PATCH 07/19] cgroup: Move builder process out of cgroup before
+ destroying it.
+
+Before all processes in the cgroup are killed, the builder process
+is migrated to the parent group, because kill_and_wait() waits
+for nothing because it will never kill its own process.
+---
+ python/pakfire/builder.py | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/python/pakfire/builder.py b/python/pakfire/builder.py
+index 7427a8c..944c1a0 100644
+--- a/python/pakfire/builder.py
++++ b/python/pakfire/builder.py
+@@ -200,11 +200,13 @@ class BuildEnviron(object):
+       def stop(self):
+               if self.cgroup:
++                      # Move the builder process out of the cgroup.
++                      self.cgroup.migrate_task(self.cgroup.parent, os.getpid())
++
+                       # Kill all still running processes in the cgroup.
+                       self.cgroup.kill_and_wait()
+                       # Remove cgroup and all parent cgroups if they are empty.
+-                      self.cgroup.migrate_task(self.cgroup.root, os.getpid())
+                       self.cgroup.destroy()
+                       parent = self.cgroup.parent
+-- 
+1.8.1.4
+