Harald Schmalzbauer
2013-Feb-15 16:43 UTC
mount lag, umounting returns wrong "Device busy"
Hello,
while playing with new jail features, I recognized that manually
umounting doesn't work as I'd expect.
After jail has been destroyed, the following mountpoint is active:
/dev/gpt/jailname1ROOT on /.jail.jailname1 (ufs, local, read-only)
There was var mounted to /.jail.jailname1/var but that sucessfully umounted.
'fstat' also shows no open files in /.jail.jailname1
But when I do 'umount /.jail.jailname' I get "Device busy"
returned.
Some minutes later umounting works.
But I always have to wait some time, although nothing is open and
nothing is mounted above.
Does anybody have an idea what could cause that false "Device busy"?
-Harry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 196 bytes
Desc: OpenPGP digital signature
URL:
<http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20130215/5cf7a525/attachment.sig>
On Fri, Feb 15, 2013 at 05:43:16PM +0100, Harald Schmalzbauer wrote:> Hello, > > while playing with new jail features, I recognized that manually > umounting doesn't work as I'd expect. > After jail has been destroyed, the following mountpoint is active: > /dev/gpt/jailname1ROOT on /.jail.jailname1 (ufs, local, read-only) > > There was var mounted to /.jail.jailname1/var but that sucessfully umounted. > 'fstat' also shows no open files in /.jail.jailname1 > > But when I do 'umount /.jail.jailname' I get "Device busy" returned. > Some minutes later umounting works. > But I always have to wait some time, although nothing is open and > nothing is mounted above. > > Does anybody have an idea what could cause that false "Device busy"? >My guess is that the jail was not dead yet and it held a reference for /.jail.jailname1's vnode. jls -v should show the jail. I don't know if this can happen, but my guess is that not-yet-expired network connections hold reference to a jail preventing it from being destroyed. So I would definitely checkout netstat output. There may be other posibilities, but nothing obvious comes to my mind at the moment. -- Mateusz Guzik <mjguzik gmail.com>