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>