[Buildd-tools-devel] Bug#391319: schroot: leftover processes cause umount to fail

Kees Cook kees at outflux.net
Fri Oct 6 00:00:48 UTC 2006


Package: schroot
Version: 1.0.2-1
Severity: normal
Tags: patch


While using schroot on LVM snapshots with sbuild, I have sometimes run into
situations where build deps start up services (like cron, dbus, etc).
Once the build is finished, schroot attempts to umount and destroy the
LVM snapshot, but since there are still processes running in the chroot,
the umount fails.

Since the chroot is "over", it seems like it makes sense to kill all the
processes left in the chroot, and then reattempt to umount.  This patch
implements that.  Does this seem like a sensible change?

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing')
Architecture: i386 (x86_64)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17-10-generic
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
-------------- next part --------------
Index: schroot/setup/10mount
===================================================================
--- schroot/setup/10mount	(revision 1032)
+++ schroot/setup/10mount	(working copy)
@@ -32,7 +32,15 @@
 	if [ "$AUTH_VERBOSITY" = "verbose" ]; then
 	    echo "Unmounting $mountloc"
 	fi
-	umount "$mountloc" || exit 1
+	if ! umount "$mountloc" 2>/dev/null; then
+	    FUSER_OPTS="-mk"
+	    if [ "$AUTH_VERBOSITY" = "verbose" ]; then
+	        echo "Killing processes on $mountloc"
+		FUSER_OPTS="$FUSER_OPTS -v"
+	    fi
+	    fuser $FUSER_OPTS $mountloc
+	    umount "$mountloc" || exit 1
+	fi
     done || exit 1
 }
 


More information about the Buildd-tools-devel mailing list