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>