zpool clear
heroically dies restoring the pool, but doesn't save your previously queued IO
#16175
Labels
Type: Defect
Incorrect behavior (e.g. crash, hang)
System information
Describe the problem you're observing
If I have a USB hard drive that I created a pool on, using the name
/dev/disk/by-id/mydrive-part1
, pointing to/dev/sda1
, unplug it, and replug it, ZFS will say it's SUSPENDED because the disk is gone.Great. The device got the name
sdb
sincesda
was still being held open when the disk reappeared, I zpool clear that device (by guid, since the device's name won't work, which is a separate complaint), and it marks the pool and device ONLINE after one or two iterations ofzpool clear pool
orzpool clear pool guid
, hurray....except the clear command never returns, IO from before the hotplug is hung forever, the old device name is still present (e.g. something is holding references to it still), and the stacktrace is in
zio_resume
.New writes to the pool appear to succeed, but old IO is stuck forever.
zfs_ioc_clear
is blocking onzio_resume
is blocking onzio_wait
, andtxg_wait
andcp
say they're blocking on:So I assume it's some dance like nothing told the old
zio
s that their reference to the disk they're trying to write to is stale. (zpool reopen
doesn't save you.)Describe how to reproduce the problem
Above.
Include any warning/errors/backtraces from the system logs
Above.
The text was updated successfully, but these errors were encountered: