[dm-devel] "queue if no paths" infinite recursion when there are no paths

Alasdair G Kergon agk at redhat.com
Thu Feb 24 02:37:32 UTC 2005


On Wed, Feb 23, 2005 at 04:20:15PM -0500, goggin, edward wrote:
> It appears that there is no stopping condition for retrying i/os failed
> via bio_endio() in dispatch_queued_ios().  

Currently they are meant to be requeued down different path - never
down a path already used - so they try all paths then get
errored.  If there's no path available, and m->suspended is set,
nothing is meant to be queued.
I think the bug is the goto requeue that should have tested
for m->suspended first - a test for queue_if_no_path missed when m
->suspended was added.

if (!m->queue_if_no_path &&!m->suspended) {

Alasdair




More information about the dm-devel mailing list