[dm-devel] multipath-tools: race-condition with boot.multipath and boot.lvm

Michael Steinmann msl at calivia.com
Fri Mar 17 09:56:41 UTC 2006


We're currently experiencing problems at boot and got aware of a
race-condition related to LVM over multipath.

We're on SuSE SLES9 SP3 x86_64, multipath-tools-0.4.5-0.11

The SuSE initscript contains 'sleep 1' after running /sbin/multipath in
/etc/init.d/boot.multipath. Our SAN is currently so slow that we had to
increase the sleep to 15 seconds to boot reliably. If the vgscan in
/etc/init.d/boot.lvm starts too quick it would not see the VGs on the
multipath devices.

Is there a way to wait until all multipath devices are up and ready?


The relevant part of SLES9 SP3 /etc/init.d/boot.multipath:

case "$1" in
    start)
        echo -n "Creating multipath targets"
        # Check whether we should rescan for devices
        if grep -q multipath /proc/cmdline && test -d
/sys/class/scsi_host; then
            pushd /sys/class/scsi_host 2> /dev/null
            for host in *; do
                if [ -d $host ]; then
                    echo "- - -" > $host/scan
                fi
            done
        fi
        # Load prerequisite module
        modprobe dm-multipath

        # Clear /dev/disk/by-name/ prior to start-up; multipath will
        # recreate them.
        rm -f /dev/disk/by-name/* 2>&1 >/dev/null

        # Start the program directly as checkproc doesn't work here
        $PROGRAM -v 0

        # Remember status and be verbose
        rc_status -v
-        sleep 1
+        sleep 15
        ;;

--
mike




More information about the dm-devel mailing list