Comment 11 for bug 1431650

Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote :

Hi Mathieu,

I did some research for the commit mentioned in comment #10.

Its description clarifies (how/why) it solves this problem, and even others we would probably hit later (e.g., after booting, SCSI disks added/removed re-trigerring udev rules, and then involving multipathd).

It's been written by a multipath/enterprise hardware guy for the suse distros.
I see it in opensuse [1], with a patch named after 'sles12', which also names the branch in his github repo [2].

It looks good to go, combined with another fix applied to the initramfs script (the udev settle thing we talked about, but on a slightly different place). Patch attached.

With it applied, the udev timeout/killing disappears as expected, and with the earlier 'udevadm settle' call in place, so disappears the random dm ioctl() failures (race condition w/ multipath in udev rules):

    device-mapper: create ioctl on mpathX-partY failed: Device or resource busy
    create/reload failed on mpathX-partY

In summary, the attached patch restores event-based multipath discovery.. and we no longer need to remove the 95-multipath.rules from initramfs.

Links:
    [1] https://build.opensuse.org/package/revisions/openSUSE:Factory/multipath-tools
    [2] https://github.com/hreinecke/multipath-tools/tree/sles12