Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Sep 2014 10:21:03 -0500
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        Peter Holm <peter@holm.cc>, Konstantin Belousov <kostikbel@gmail.com>
Cc:        FreeBSD FS <freebsd-fs@FreeBSD.org>
Subject:   Re: Deadlock with umount -f involving tmpfs on top of ZFS on r271170
Message-ID:  <5422E15F.8050702@FreeBSD.org>
In-Reply-To: <20140924132605.GA11772@x2.osted.lan>
References:  <5420D5FC.4030600@FreeBSD.org> <20140923131244.GC8870@kib.kiev.ua> <5422240F.4080003@FreeBSD.org> <20140924102758.GH8870@kib.kiev.ua> <20140924132605.GA11772@x2.osted.lan>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--6L95Hio9mHWwXDUslpWojPu5fbsVNbV1C
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

On 9/24/2014 8:26 AM, Peter Holm wrote:
> On Wed, Sep 24, 2014 at 01:27:58PM +0300, Konstantin Belousov wrote:
>> On Tue, Sep 23, 2014 at 08:53:19PM -0500, Bryan Drewery wrote:
>>> I tried your patch and still ran into the deadlock. Here is the debug=

>>> information: https://people.freebsd.org/~bdrewery/vfs_deadlock.2.txt
>>
>> I see what is going on.  Previous patch cannot help there.
>>
>> The problem is that kern_linkat() starts write with vn_start_write(9),=

>> and then  tries to execute namei(9) with a path potentially crossing
>> the mount point.  If the mount point is being unmounted, unmount canno=
t
>> lay suspension on the filesystem due to writer, but it owns the covere=
d
>> vnode lock.  On the other hand, namei(9) is unable to cross the mount
>> point since covered vnode is locked, thus writer does not make progres=
s.
>>
>> The similar issue exists in rename code. The deadlock is only possible=

>> for filesystems which suspend writes on unmount; such fs are UFS and t=
mpfs.
>>
>> Try this.
>>
>> diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c
>> index b3b7ed5..9775480 100644
>=20
> I had been trying different scenarios without much luck, but with
> your description I got the problem instantly. :)
>=20
> The patch is an improvement, but:
>=20
> http://people.freebsd.org/~pho/stress/log/kostik718.txt
>=20
> - Peter
>=20

By the way this was my test script:

http://dpaste.com/35AYZZ7

It could be simplified a lot.

--=20
Regards,
Bryan Drewery


--6L95Hio9mHWwXDUslpWojPu5fbsVNbV1C
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)

iQEcBAEBAgAGBQJUIuFiAAoJEDXXcbtuRpfP7AgIAJfRpz4TgSHCmhkV5dWjuROZ
S78/01sl2VNzhK/O1dNSdVEkPmoKbTRGO9nbecLytaVqjUZk8EbbL0DEG07srDoB
znXg1b8ASglw2lxqNfQ/849FvwHtHb3aDSNIALBiOctrIPngm4PgnIm5jKTaaAQJ
4j9DwTJ93d5mOw2JzaKZ0Ro7WBmCpx+D9hvfVYPo1sPbvtp5ujkRG+I92iJswq8U
+3iiJYBjhFCYZmD3HBV4O7Bbvqa1w3Ip/0UPdsYhwNSlPT6wEL5ujdIcCRFanegy
u7zJ+of/dS9mqq/cfc6CIyOJ1uERs9pF5fcLuRntFY//upwVmaZn58ct2uyc7rg=
=FsIY
-----END PGP SIGNATURE-----

--6L95Hio9mHWwXDUslpWojPu5fbsVNbV1C--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5422E15F.8050702>