]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
Fix incomplete destruction of unprivileged ephemeral containers
authorStéphane Graber <stgraber@ubuntu.com>
Mon, 6 Apr 2015 16:11:25 +0000 (12:11 -0400)
committerStéphane Graber <stgraber@ubuntu.com>
Mon, 6 Apr 2015 16:12:10 +0000 (12:12 -0400)
If an unprivileged ephemeral container is started as follows,

    lxc-start-ephemeral -o trusty -n test_ephemeral

Then an empty directory remains upon exit from the container,

    ~/.local/share/lxc/test_ephemeral/tmpfs/delta0

(The tmpfs filesystem is successfully unmounted, but we seem to lack
permission to delete the delta0 directory).

This issue arose following commits 4799a1e and dd2271e .

The following patch resolves the issue. It has been tested on ubuntu
14.04 with the lxc-daily ppa.
Since gmail screws up the formatting of the patch via line-wrapping
etc, please copy the patch from the issue-tracker rather than from
this email.

Signed-off by: Oleg Freedholm <overlayfs@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
src/lxc/lxc-start-ephemeral.in

index b049f80ac24c2cc04427c24b7304866f85b90a5b..7bf336e92d14d09c28f51f55b9b5ca9c714b39fe 100644 (file)
@@ -240,17 +240,15 @@ LXC_NAME="%s"
     count = 0
     for entry in overlay_dirs:
         tmpdir = "%s/tmpfs" % dest_path
+        fd.write("mkdir -p %s\n" % (tmpdir))
+        if args.storage_type == "tmpfs":
+            fd.write("mount -n -t tmpfs -o mode=0755 none %s\n" % (tmpdir))
         deltdir = "%s/delta%s" % (tmpdir, count)
         workdir = "%s/work%s" % (tmpdir, count)
         fd.write("mkdir -p %s %s\n" % (deltdir, entry[1]))
         if have_new_overlay:
             fd.write("mkdir -p %s\n" % workdir)
 
-        if args.storage_type == "tmpfs":
-            fd.write("mount -n -t tmpfs -o mode=0755 none %s\n" % (tmpdir))
-            fd.write("mkdir %s\n" % deltdir)
-            fd.write("mkdir %s\n" % workdir)
-
         fd.write("getfacl -a %s | setfacl --set-file=- %s || true\n" %
                  (entry[0], deltdir))
         fd.write("getfacl -a %s | setfacl --set-file=- %s || true\n" %