From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tore Anderson Subject: Deadlock on RHEL4 with kpartx/queue_if_no_path - any way out? Date: Mon, 19 May 2008 11:00:46 +0200 Message-ID: <483141BE.2010304@linpro.no> Reply-To: device-mapper development Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com To: device-mapper development List-Id: dm-devel.ids Hi. Due to a PEBCAK and wrong paths being removed I've now ended up in this situation: $ multipath -ll multimedia multimedia (3600a0b80002984ae00001da546c27de1) [size=200 GB][features="1 queue_if_no_path"][hwhandler="0"] \_ round-robin 0 [enabled] \_ #:#:#:# - 65:16 [failed][faulty] I readded the paths with 'echo - - - > /sys/class/scsi_host/host*/scan', but the map does not get healthy - all attempts to reload the map with the multipath tools ends up in blocking I/O, using dmsetup directly I only get failures due to the map being busy. This is how the process list looks: $ ps axf PID TTY STAT TIME COMMAND [...] 11598 ? SLl 0:01 /sbin/multipathd 12080 ? S< 0:00 /bin/sh /etc/dev.d/block/multipath.dev block 12087 ? S< 0:00 \_ /sbin/dmsetup ls -j 253 -m 3 --target multipath --exec /sbin/kpartx -a 12088 ? D< 0:00 \_ /sbin/kpartx -a /dev/mapper/multimedia 12714 ? S< 0:00 /bin/sh /etc/dev.d/block/multipath.dev block 12720 ? S< 0:00 \_ /sbin/multipath -v0 /dev/sdb 12794 ? S< 0:00 /bin/sh /etc/dev.d/block/multipath.dev block 12800 ? D< 0:00 \_ /sbin/multipath -v0 /dev/sdc 12831 ? D 0:00 multipath -v 2 14132 ? S< 0:00 /bin/sh /etc/dev.d/block/multipath.dev block 14139 ? S< 0:00 \_ /sbin/dmsetup ls -j 253 -m 3 --target multipath --exec /sbin/kpartx -a 14140 ? D< 0:00 \_ /sbin/kpartx -a /dev/mapper/multimedia 14219 ? S< 0:00 /bin/sh /etc/dev.d/block/multipath.dev block 14225 ? D< 0:00 \_ /sbin/multipath -v0 /dev/sdd 14255 ? D 0:00 multipath -v 2 15312 ? D 0:00 multipath /dev/sdd 17032 ? D 0:00 multipath 1008 ? S< 0:00 /bin/sh /etc/dev.d/block/multipath.dev block 1014 ? D< 0:00 \_ /sbin/multipath -v0 /dev/sde ...I assume the kpartx process is locking the map so no changes can be done, but since there's no alive paths and queue_if_no_path is active, it will never return, and I'm stuck in a deadlock. Is there any way out of this save a reboot? Regards, -- Tore Anderson