[zfs-discuss] Deadlock when pool fails during a file operation?

Will Rouesnel w.rouesnel at gmail.com
Tue Apr 3 01:42:54 EDT 2012

I'm currently trying to do a migration of my XFS RAID6 fileserver to ZFS 
on Linux. Since I'm kind of cobbling a lot of disks together to have a 
temporary volume to convert the main volume, some of them aren't the 
most reliable.

But I've encountered an interesting problem - if I'm rsync'ing and the 
zfs volume unmounts due to write errors, rsync won't actually terminate 
and close the file handle until I run "zpool clear <poolname>". Which 
isn't actually possible to do if something happens like a drive dropping 
out of the array.

Instead, rsync will sit there as uninterruptible in the channel 
cv_wait_common. So I'm stuck with rsync holding activity on the device 
so I can't unmount it, but if I can't clear errors and restore IO on the 
pool then I can't kill rsync either.

Any one have any ideas?

More information about the zfs-discuss mailing list