Processes wedging on ZFS accesses

David Adam zanchey at ucc.gu.uwa.edu.au
Fri Jun 17 03:54:34 UTC 2016


Hi all,

We're still having trouble with our 10.3-RELEASE-p3 fileserver using a ZFS 
pool.

After a certain amount of uptime (usually a week or so), a Samba process 
will get stuck in D-state:

max  2075  0.0  0.2 339928 26616  -  D    26May16      0:19.59 
/usr/local/sbin/smbd --daemon --configfile=/usr/local/etc/smb4.conf

Running find(1) over the hierarchy that the smbd process has open will 
also wedge in a D-state.

Our backups also seem to get stuck, presumably in the same spot.

`procstat -k` on the stuck processes (smbd and our stuck python-based 
backup program) shows:
  PID    TID COMM             TDNAME           KSTACK
 2075 100587 smbd             -                mi_switch+0xe1 
sleepq_wait+0x3a _sx_slock_hard+0x31b namei+0x1c5 vn_open_cred+0x24d 
zfs_getextattr+0x1f2 VOP_GETEXTATTR_APV+0xa7 extattr_get_vp+0x15d 
sys_extattr_get_file+0xf4 amd64_syscall+0x40f Xfast_syscall+0xfb
 2075 100623 smbd             -                mi_switch+0xe1 
sleepq_wait+0x3a sleeplk+0x15d __lockmgr_args+0xca0 vop_stdlock+0x3c 
VOP_LOCK1_APV+0xab _vn_lock+0x43 knlist_remove_kq+0x24 filt_vfsdetach+0x22 
knote_fdclose+0xef closefp+0x42 amd64_syscall+0x40f Xfast_syscall+0xfb
21676 101572 python2.7        -                mi_switch+0xe1 
sleepq_wait+0x3a sleeplk+0x15d __lockmgr_args+0x91a vop_stdlock+0x3c 
VOP_LOCK1_APV+0xab _vn_lock+0x43 vget+0x73 cache_lookup+0x5d5 
vfs_cache_lookup+0xac VOP_LOOKUP_APV+0xa1 lookup+0x5a1 namei+0x4d4 
kern_statat_vnhook+0xae sys_lstat+0x30 amd64_syscall+0x40f 
Xfast_syscall+0xfb
36144 101585 python2.7        -                mi_switch+0xe1 
sleepq_wait+0x3a sleeplk+0x15d __lockmgr_args+0x91a vop_stdlock+0x3c 
VOP_LOCK1_APV+0xab _vn_lock+0x43 vget+0x73 cache_lookup+0x5d5 
vfs_cache_lookup+0xac VOP_LOOKUP_APV+0xa1 lookup+0x5a1 namei+0x4d4 
kern_statat_vnhook+0xae sys_lstat+0x30 amd64_syscall+0x40f 
Xfast_syscall+0xfb

Memory doesn't appear to be a problem, and we have the ARC wired to 10 GB 
maximum:
Mem: 80M Active, 2127M Inact, 13G Wired, 36K Cache, 1643M Buf, 308M Free
ARC: 9921M Total, 7056M MFU, 2434M MRU, 977K Anon, 162M Header, 267M Other
Swap: 20G Total, 20G Free

I'm getting a DDB kernel built, but is there any other information that is 
useful? One of the problems is that Samba won't start a new process for 
the user whose process is already wedged, so eventually user logins stop 
working.

Thanks

David Adam
zanchey at ucc.gu.uwa.edu.au


More information about the freebsd-fs mailing list