multipathd is not starting waitevent checker for single paths
authorHannes Reinecke <hare@suse.de>
Mon, 9 Feb 2009 13:04:25 +0000 (14:04 +0100)
committerHannes Reinecke <hare@suse.de>
Wed, 18 May 2011 08:20:40 +0000 (10:20 +0200)
commita0cf544ce46264f637d695df1bfd7a5c85e5c0c8
treebc4beb4b0cfac4c83a607d2f7431dda1c7d8bf1c
parent6df6f4fb158132d90a9a228ac5b47f3571a7f14d
multipathd is not starting waitevent checker for single paths

After multipathd was started, any SCSI disks that would be added afterwards
would not trigger multipathd to create a waitevent thread.

The waitevent thread listens for kernel's offline/online events and thoroughly
checks what the kernel sees with what multipathd thinks and if something is
off,
whacks multipathd to the right state.

For devices which did not have a kernel device mapper helper (hp_sw, rdac,
etc) and only have one single path, when the link experiences a momentary blib
with I/O on it the path would be marked as failed _only_ by the kernel. This
event
would _not_ be propagated to multipathd (b/c it did not have a waitevent thread
create). Multipathd would only do the path checker which would provide a
PATH_UP event (rightly so - as the path would only be down for a second or so).
However, the device mapper path group would be marked as failed, and any
incoming I/O would be blocked (if queue_if_no_path was set) or fail.

The end result was the multipathd would think everything was peachy while the
kernel would be failing (or queueing) the I/O to the multipath device.

References: bnc#473841

Signed-off-by: Hannes Reinecke <hare@suse.de>
multipathd/main.c