filesystem deadlock, process in vodead state

Robert Schulze rs at bytecamp.net
Thu Nov 19 09:41:14 UTC 2015


Hi,

on an SSD-only mirrored pool which was idle for about 30 days, I noticed
a stuck chksetuid run from periodic. The "find" process is stuck on
vodead state.

I found out which directory is affected via procstat -f and tried to ls
it, now this ls is stuck in above state, too (no surprise).

procstat -kk output is:

 1816 102485 find             -                mi_switch+0xe1
sleepq_wait+0x3a _sleep+0x287 vnode_create_vobject+0x100
zfs_freebsd_open+0xf5 VOP_OPEN_APV+0xa1 vn_open_vnode+0x234
vn_open_cred+0x33e kern_openat+0x26f amd64_syscall+0x33a Xfast_syscall+0xfb

71376 102400 ls               -                mi_switch+0xe1
sleepq_wait+0x3a _sleep+0x287 vnode_create_vobject+0x100
zfs_freebsd_open+0xf5 VOP_OPEN_APV+0xa1 vn_open_vnode+0x234
vn_open_cred+0x33e kern_openat+0x26f amd64_syscall+0x33a Xfast_syscall+0xfb

The processes are not killable.
So what is this state and how to fix the deadlocked filesystem? I'm able
to give any debugging information, just give me some pointers.

# uname: FreeBSD 10.2-RELEASE-p5 #1 r289218

# zpool status

  pool: home
 state: ONLINE
  scan: none requested
config:

	NAME               STATE     READ WRITE CKSUM
	home               ONLINE       0     0     0
	  mirror-0         ONLINE       0     0     0
	    gpt/mirror0-a  ONLINE       0     0     0
	    gpt/mirror0-b  ONLINE       0     0     0
	  mirror-1         ONLINE       0     0     0
	    gpt/mirror1-a  ONLINE       0     0     0
	    gpt/mirror1-b  ONLINE       0     0     0
	  mirror-2         ONLINE       0     0     0
	    gpt/mirror2-a  ONLINE       0     0     0
	    gpt/mirror2-b  ONLINE       0     0     0
	  mirror-3         ONLINE       0     0     0
	    gpt/mirror3-a  ONLINE       0     0     0
	    gpt/mirror3-b  ONLINE       0     0     0

errors: No known data errors


with kind regards,
Robert Schulze


More information about the freebsd-fs mailing list