[lxc-devel] [PATCH] waitpid at abort to make sure we can rmdir cgroups

Serge Hallyn serge.hallyn at ubuntu.com
Thu May 30 16:22:16 UTC 2013


If we abort the container start, and don't wait for the init task to be
reaped after we kill it, then we can't remove the container cgroup
because it is not empty.

Signed-off-by: Serge Hallyn <serge.hallyn at ubuntu.com>
---
 src/lxc/start.c |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/lxc/start.c b/src/lxc/start.c
index d43d580..5092b51 100644
--- a/src/lxc/start.c
+++ b/src/lxc/start.c
@@ -451,9 +451,12 @@ static void lxc_fini(const char *name, struct lxc_handler *handler)
 
 void lxc_abort(const char *name, struct lxc_handler *handler)
 {
+	int ret, status;
+
 	lxc_set_state(name, handler, ABORTING);
 	if (handler->pid > 0)
 		kill(handler->pid, SIGKILL);
+	while ((ret = waitpid(-1, &status, 0)) > 0) ;
 }
 
 #include <sys/reboot.h>
-- 
1.7.9.5





More information about the lxc-devel mailing list