[Bug 229614] ZFS lockup in zil_commit_impl

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Mon Jul 9 07:30:47 UTC 2018


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=229614

--- Comment #7 from Andriy Gapon <avg at FreeBSD.org> ---
(In reply to Michael Gmelin from comment #5)
I am confident that it's the same bug.
I think that it is a deadlock between a thread like the one from comment #0 and
a thread like this:
zfs_zget+0x1b4 zfs_get_data+0x7c zil_commit+0x926 zfs_sync+0xad sys_sync+0xe6
amd64_syscall+0x2f6 Xfast_syscall+0xfb

The first thread is waiting on zil_commit in the second thread to complete.
At the same time the second thread is waiting (in zfs_zget) on the first thread
to finish reclaiming the vnode.

I think I understand the problem, but I do not see an easy way to fix it.
Checking the vnode state in zil_commit -> zfs_get_data -> zfs_zget is
problematic as zil_commit can be called from vnode operations while an
arbitrary other vnode is locked.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-fs mailing list