Project

General

Profile

Bug #2814

"zfs list" hangs and can not be killed

Added by Vitaliy Gusev almost 8 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Start date:
2012-06-03
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage
Gerrit CR:

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()

Also available in: Atom PDF