Skip to content

Commit 4e73bdf

Browse files
committed
sandbox: Don't create shared propagation peer group
Shared mount propagation always causes extremely hard to debug bugs. For example, if I do the following mounts /my/rootfs/path => /buildroot /dev => /buildroot/dev /my/rootfs/path => /buildroot/a/b/c Then what will happen with shared mount propagation on / is that when /dev is mounted to /buildroot/dev, it will be propagated back to /my/rootfs/path/dev, and so as well to /buildroot/a/b/c/dev. Then, when /buildroot/a/b/c/dev is unmounted during teardown, /buildroot/dev will also be unmounted, causing mayhem during cleanup. Let's stick to slave propagation so the behavior is actually sane. The only reason we were doing shared is because nspawn was doing it and the only reason nspawn does it is because some bit of systemd's service namespacing happens to depend on it. With shared mount propagation, Signed-off-by: Daan De Meyer <daan@amutable.com>
1 parent 70ce10d commit 4e73bdf

1 file changed

Lines changed: 0 additions & 5 deletions

File tree

mkosi/sandbox.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1679,11 +1679,6 @@ def enter(argv: list[str]) -> list[str]:
16791679
# As documented in the pivot_root() man page, this will unmount the old rootfs.
16801680
umount2(".", MNT_DETACH)
16811681

1682-
# Avoid surprises by making sure the sandbox's mount propagation is shared. This doesn't
1683-
# actually mean mounts get propagated into the host. Instead, a new mount propagation peer
1684-
# group is set up.
1685-
mount("", ".", "", MS_SHARED | MS_REC, "")
1686-
16871682
if chdir:
16881683
os.chdir(chdir)
16891684

0 commit comments

Comments
 (0)