Bug #2814
open"zfs list" hangs and can not be killed
0%
Description
In some situations (see bug #2807) ds_rwlock on READ can not be obtained immediately and caller goes to uninterruptible sleep via cv_wait. Process just "hangs" and this brings problem.
Solution: Replace cv_wait with cv_wait_sig.
Stack:
PC: _resume_from_idle+0xf1 CMD: zfs list -t all -r -Ho name,mounted,mountpoint,origin,canmount,type backup
stack pointer for thread ffffff04faf061a0: ffffff001fd49990
[ ffffff001fd49990 _resume_from_idle+0xf1() ]
swtch+0x145()
cv_wait+0x61()
dsl_dataset_hold_ref+0x8a()
dsl_dataset_hold+0xa6()
dmu_objset_hold+0x2f()
zfs_ioc_objset_stats+0x30()
zfs_ioc_dataset_list_next+0x155()
zfsdev_ioctl+0x15e()
cdev_ioctl+0x45()
spec_ioctl+0x5a()
fop_ioctl+0x7b()
ioctl+0x18e()
dtrace_systrace_syscall32+0x11a()
No data to display