Bug#755674: systemd-sysv: unmounting bind mounts takes age (due to recursion?)

Samuel Thibault sthibault at debian.org
Sat Aug 23 11:57:32 BST 2014


Hello,

Samuel Thibault, le Tue 22 Jul 2014 11:21:52 +0200, a écrit :
> During shutdown, the unmount step takes age, it seems systemd struggles
> with unmounting my bind mounts, see the attached log.
> 
> I guess the problem is that since I have put /usr/src and chroots in
> /home (which is the biggest of my system partitions) and I want /home
> and /usr/src to appear in chroots, I'm using these in my /etc/fstab:
> 
> /home/src	/usr/src	bind	bind		0	0
> /home		/home/32/home	none	bind		0	0
> /home		/home/unstable/home	none	bind		0	0
> /home		/home/squeeze/home	none	bind		0	0
> /home		/home/squeeze-32/home	none	bind		0	0
> /home		/home/wheezy/home	none	bind		0	0
> /home		/home/wheezy-32/home	none	bind		0	0
> /usr/src	/home/32/usr/src	none	bind		0	0
> /usr/src	/home/unstable/usr/src	none	bind		0	0
> /usr/src	/home/squeeze/usr/src	none	bind		0	0
> /usr/src	/home/squeeze-32/usr/src	none	bind		0	0
> /usr/src	/home/wheezy/usr/src	none	bind		0	0
> /usr/src	/home/wheezy-32/usr/src	none	bind		0	0
> 
> which indeed brings a recursive thing, but sysvinit's umount was
> completely fine with it...

I tried with just that fstab and it's still bearable. I have attached
the more complete fstab with all my bind mounts. This ends up with ~2500
lines in the output of the mount command... For instance

proc on /usr/local/montesting/home/wheezy-32/home/wheezy/home/squeeze-32/home/squeeze/home/32/home/32/proc type proc (rw,relatime)

There is no reason why it should contain such recursive mounts...

Just to save you the time, here are the commands to create the bind
mount directories:

mkdir -p /home/usr/src
mkdir -p /var/cache/pbuilder
mkdir -p /home/pbuilder
mkdir -p /home/tmp
for i in 32 unstable squeeze squeeze-32 wheezy wheezy-32 ; do
	mkdir -p /home/$i/dev
	mkdir -p /home/$i/proc
	mkdir -p /home/$i/sys
	mkdir -p /home/$i/home
	mkdir -p /home/$i/usr/src
	mkdir -p /home/$i/tmp
	mkdir -p /home/$i/var/cache/pbuilder/result
done
mkdir -p /usr/local/montesting/home

Samuel
-------------- next part --------------
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=44838476-67a8-4556-8146-9dfe1912deee /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=602e49f8-65bb-4d6d-8ea7-1765ca3755ea none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

/home/src	/usr/src	bind	bind	0	0
/home/pbuilder	/var/cache/pbuilder	bind	bind	0	0
/home/tmp	/var/tmp		bind	bind	0	0

proc	/home/32/proc	proc	defaults	0	0
sysfs	/home/32/sys	sysfs	defaults	0	0
/dev	/home/32/dev	bind	bind	0	0
/home	/home/32/home	bind	bind	0	0
/usr/src	/home/32/usr/src	bind	bind	0	0
/tmp	/home/32/tmp	bind	bind	0	0
/var/cache/pbuilder/result	/home/32/var/cache/pbuilder/result	bind	bind	0	0

proc	/home/unstable/proc	proc	defaults	0	0
sysfs	/home/unstable/sys	sysfs	defaults	0	0
/dev	/home/unstable/dev	bind	bind	0	0
/home	/home/unstable/home	bind	bind	0	0
/usr/src	/home/unstable/usr/src	bind	bind	0	0
/tmp	/home/unstable/tmp	bind	bind	0	0
/var/cache/pbuilder/result	/home/unstable/var/cache/pbuilder/result	bind	bind	0	0

proc	/home/squeeze/proc	proc	defaults	0	0
sysfs	/home/squeeze/sys	sysfs	defaults	0	0
/dev	/home/squeeze/dev	bind	bind	0	0
/home	/home/squeeze/home	bind	bind	0	0
/usr/src	/home/squeeze/usr/src	bind	bind	0	0
/tmp	/home/squeeze/tmp	bind	bind	0	0
/var/cache/pbuilder/result	/home/squeeze/var/cache/pbuilder/result	bind	bind	0	0

proc	/home/squeeze-32/proc	proc	defaults	0	0
sysfs	/home/squeeze-32/sys	sysfs	defaults	0	0
/dev	/home/squeeze-32/dev	bind	bind	0	0
/home	/home/squeeze-32/home	bind	bind	0	0
/usr/src	/home/squeeze-32/usr/src	bind	bind	0	0
/tmp	/home/squeeze-32/tmp	bind	bind	0	0
/var/cache/pbuilder/result	/home/squeeze-32/var/cache/pbuilder/result	bind	bind	0	0

proc	/home/wheezy/proc	proc	defaults	0	0
sysfs	/home/wheezy/sys	sysfs	defaults	0	0
/dev	/home/wheezy/dev	bind	bind	0	0
/home	/home/wheezy/home	bind	bind	0	0
/usr/src	/home/wheezy/usr/src	bind	bind	0	0
/tmp	/home/wheezy/tmp	bind	bind	0	0
/var/cache/pbuilder/result	/home/wheezy/var/cache/pbuilder/result	bind	bind	0	0

proc	/home/wheezy-32/proc	proc	defaults	0	0
sysfs	/home/wheezy-32/sys	sysfs	defaults	0	0
/dev	/home/wheezy-32/dev	bind	bind	0	0
/home	/home/wheezy-32/home	bind	bind	0	0
/usr/src	/home/wheezy-32/usr/src	bind	bind	0	0
/tmp	/home/wheezy-32/tmp	bind	bind	0	0
/var/cache/pbuilder/result	/home/wheezy-32/var/cache/pbuilder/result	bind	bind	0	0

/home	/usr/local/montesting/home bind bind 0 0


More information about the Pkg-systemd-maintainers mailing list