Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 2 Mar 2019 19:48:55 +0200
From:      Andriy Gapon <avg@FreeBSD.org>
To:        Nick Rogers <ncrogers@gmail.com>, FreeBSD STABLE <freebsd-stable@freebsd.org>
Subject:   Re: 12.0-RELEASE zfs/vnode deadlock issue
Message-ID:  <233f3723-a78e-91db-ebe6-9e13c1c9b50d@FreeBSD.org>
In-Reply-To: <CAKOb=YaLSPPRrLWGPbcDt0tKqS2h3mT2dLo92aK3r-8O%2B3SHTw@mail.gmail.com>
References:  <CAKOb=YaLSPPRrLWGPbcDt0tKqS2h3mT2dLo92aK3r-8O%2B3SHTw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 01/03/2019 17:00, Nick Rogers wrote:
> 36704 101146 perl                -                   mi_switch+0xe1
> sleepq_wait+0x2c sleeplk+0x1c5 lockmgr_xlock_hard+0x19c VOP_LOCK1_APV+0x7e
> _vn_lock+0x40 zfs_znode_alloc+0x434 zfs_mknode+0xa9d
> zfs_freebsd_create+0x512 VOP_CREATE_APV+0x78 vn_open_cred+0x2c9
> kern_openat+0x20c amd64_syscall+0x369 fast_syscall_common+0x101

I suspect that this thread is a root cause of the problem.
In this place, the vnode should be freshly created and not visible to anything
but the current thread.  So, vn_lock() should always immediately succeed.  I
cannot understand how the vnode lock could be held by another thread.

-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?233f3723-a78e-91db-ebe6-9e13c1c9b50d>