[buildd-tools-devel] Bug#672113: Bug#672113: schroot: 15killprocs does not check the right directory

Roger Leigh rleigh at codelibre.net
Mon May 14 20:30:34 UTC 2012


On Tue, May 08, 2012 at 04:52:32PM +0200, Julien Viard de Galbert wrote:
> While using sbuild with a file schroot configuration I noticed that
> sometimes the session would not close. It appeared that some daemon
> was still running and keeping the filesystem busy.
> 
> I'm using a tar with a toplevel directory containing the actual chroot
> content. My configuration looks like that:
> ....
> type=file
> file=/path/to/file.tar
> location=/squeeze
> 
> Adding some debugging to 15killprocs I noticed that it misses the 
> location part. So I tried the following change and it seams to fix it
> for me.
> 
> diff --git a/etc/setup.d/15killprocs b/etc/setup.d/15killprocs
> index 3b679f5..7927ee7 100755
> --- a/etc/setup.d/15killprocs
> +++ b/etc/setup.d/15killprocs
> @@ -84,5 +84,5 @@ do_kill_all()
>  }
>  
>  if [ $STAGE = "setup-recover" ] || [ $STAGE = "setup-stop" ]; then
> -    do_kill_all "$CHROOT_MOUNT_LOCATION"
> +    do_kill_all "$CHROOT_PATH"
>  fi
> 
> 
> Please double check that the change is correct and consider including it
> in a later release.

I'm not yet totally sure this is correct.  For one of the chroots
which fails, please could you run "schroot -v" and report what the
values of CHROOT_MOUNT_LOCATION and CHROOT_PATH are when the
setup scripts run on ending the session.

For me, they are always identical, with LOCATION added to CHROOT_PATH
if you have location=xxx in your configuration:

I: 99check: CHROOT_MOUNT_LOCATION=/var/lib/schroot/mount/sid-file-ca2422b1-ce8b-4b91-9141-efc50cce55a9
I: 99check: CHROOT_PATH=/var/lib/schroot/mount/sid-file-ca2422b1-ce8b-4b91-9141-efc50cce55a9/sid

In this case CHROOT_MOUNT_LOCATION is actually better, since it not
only /includes/ CHROOT_PATH in the checks, it also will kill processes
which are outside the chroot but which would cause the umount to
fail (not for file, but certainly for lvm-snapshot and other related
types).


So in summary, I'm confused why the existing logic is not working for
you given that it's actually encompassing (or should be encompassing)
CHROOT_PATH.  If it turns out this assumption is incorrect (and the
above check will be invaluable in determining that), we can change it
to maybe use either CHROOT_PATH or check both to be extra careful.


Regards,
Roger

-- 
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linux    http://people.debian.org/~rleigh/
 `. `'   schroot and sbuild  http://alioth.debian.org/projects/buildd-tools
   `-    GPG Public Key      F33D 281D 470A B443 6756 147C 07B3 C8BC 4083 E800





More information about the Buildd-tools-devel mailing list