Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Debug zio_wait() hangs (executor/waiter)
There exists a plausible cache concurrency issue with zio_wait(). This might occur because the zio->io_waiter to not assigned under a lock in zio_wait(), is not checked under a lock in zio_done(), and the zio may be dispatched to another thread for handling. That said, none of the actual crash dumps I've looked at show that this has ever occurred. Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Issue openzfs#2523
- Loading branch information
c034020
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The patch looks good. My only concern is that
io_waiter
andio_executor
are checked outsideio_lock
in a few other places, so the concurrency rules for these fields may become unclear with this change.