Package: multipath-tools
Version: 0.4.9+git0.4dfdaf2b-4
Severity: important


This could happen if you have no dm understood root device.

rrs@champaran:~/Community/Packaging/pkg-lvm/multipath-tools (master)$
sudo /etc/init.d/multipath-tools stop
Device does not exist.
Command failed


If a user's setup is direct access to scsi device, be it either sd
naming scheme or persistent names, it appears that no entry for it is
created in /sys/block sysfs hierarchy.

In this scenario, the multipath-tools' stop target fails thusly breaking
all upgrades.

Current resolution is to run the init script to survive errors, i.e. "!sh
-e"



-- Package-specific info:
Contents of /etc/multipath.conf:
blacklist {
       wwid "1Seagate FreeAgent GoFlex*"
        wwid "1Seagate FA GoFlex Desk*"
        wwid "1Seagate_FreeAgent_GoFlex*"
}


-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (100, 'experimental'), (1, 
'quantal')
Architecture: amd64 (x86_64)

Kernel: Linux 3.3.0-trunk-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages multipath-tools depends on:
ii  initscripts         2.88dsf-22.1
ii  kpartx              0.4.9+git0.4dfdaf2b-4
ii  libaio1             0.3.109-2
ii  libc6               2.13-32
ii  libdevmapper1.02.1  2:1.02.74-3
ii  libreadline6        6.2-8
ii  lsb-base            4.1+Debian3
ii  udev                175-3.1

multipath-tools recommends no packages.

Versions of packages multipath-tools suggests:
pn  multipath-tools-boot  <none>

-- Configuration Files:
/etc/init.d/multipath-tools changed:
PATH=/sbin:/bin:/usr/sbin/:/usr/bin
DAEMON=/sbin/multipathd
NAME=multipathd
DESC="multipath daemon"
syspath=/sys/block
test -x $DAEMON || exit 0
. /lib/lsb/init-functions
if [ -f /etc/default/multipath-tools ] ; then
        . /etc/default/multipath-tools
fi
set -e
teardown_slaves()
{
cd $1; 
if [ -d "slaves" ]; then
for slave in slaves/*;
do
        if [ "$slave" = "slaves/*" ]; then
                read dev <  $1/dev
                tablename=`dmsetup table --target multipath | sed -n "s/\(.*\): 
.* $dev .*/\1/p"`
                if ! [ -z $tablename ]; then
                        log_daemon_msg "Root is on a multipathed device, 
multipathd can not be stopped"
                        exit 1
                fi
        else
                local_slave=`readlink -f $slave`;
                teardown_slaves $local_slave;
        fi
        done
                
else
                read dev <  $1/dev
                tablename=`dmsetup table --target multipath | sed -n "s/\(.*\): 
.* $dev .*/\1/p"`
                if ! [ -z $tablename ]; then
                        log_daemon_msg "Root is on a multipathed device, 
multipathd can not be stopped"
                        exit 1
                fi
fi
}
case "$1" in
  start)
        log_daemon_msg "Starting $DESC" "$NAME"
        start-stop-daemon --oknodo --start --quiet --pidfile /var/run/$NAME.pid 
--exec $DAEMON -- $DAEMON_OPTS
        log_end_msg $?
        ;;
  stop)
        root_dev=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $1; }}' 
/etc/mtab)
        dm_num=`dmsetup info -c --noheadings -o minor $root_dev`
        if [ $? -ne 0 ]; then
                # Looks like we couldn't find a device mapper root device
                # But we shouldn't bail out here otherwise, the stop target and 
the
                # upgrade processes will break
                echo;
        else
                root_dm_device="dm-$dm_num"
                [ -d $syspath/$root_dm_device ] && teardown_slaves 
$syspath/$root_dm_device
        fi
        log_daemon_msg "Stopping $DESC" "$NAME"
        start-stop-daemon --oknodo --stop --quiet --pidfile /var/run/$NAME.pid 
--exec $DAEMON
        log_end_msg $?
        ;;
  reload|force-reload)
        log_daemon_msg "Reloading $DESC" "$NAME"
        start-stop-daemon --stop --signal 1 --quiet --pidfile 
/var/run/$NAME.pid --exec $DAEMON
        log_end_msg $?
        ;;
  restart|force-reload)
        $0 stop
        sleep 1
        $0 start
        ;;
  *)
        N=/etc/init.d/multipath-tools
        echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
        exit 1
        ;;
esac
exit 0


-- no debconf information



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to