On Tuesday 02 April 2013 08:27 PM, matthew pideil wrote:
> Hello,
>
> I tried your packages without results :
>
> LM05q:~/tmp# LANG=C dpkg -i *deb
> (Reading database ... 31699 files and directories currently installed.)
> Preparing to replace kpartx 0.4.9+git0.4dfdaf2b-7 (using
> kpartx_0.4.9+git0.4dfdaf2b-7_amd64.deb) ...
> Unpacking replacement kpartx ...
> Preparing to replace multipath-tools 0.4.9+git0.4dfdaf2b-6 (using
> multipath-tools_0.4.9+git0.4dfdaf2b-7_amd64.deb) ...
> [....] Root is on a multipathed device, multipathd can not be
> stopped:invoke-rc.d: initscript multipath-tools, action "stop" failed.
> dpkg: warning: subprocess old pre-removal script returned error exit
> status 1
> dpkg: trying script from the new package instead ...
> [....] Root is on a multipathed device, multipathd can n

Okay!! It is a tricky situation now. The old, buggy version, has the bug
that you cannot stop the daemon. When the dpkg installer calls it with
the stop target, it exits unclean. And because of this, dpkg aborts the
installation.

I have a sure feeling that it is fixed but I'd like you to confirm.

To work around it, you will have to brute force part of the
installation. Attached with this email is the new initscirpt which has
the fix. You need to take this initscript and overwrite it to the one in
/etc/init.d/
Once you do that, you should not see the installation failure and you
can work further on your tests.


Ritesh


-- 
Ritesh Raj Sarraf
RESEARCHUT - http://www.researchut.com
"Necessity is the mother of invention."

#! /bin/sh
### BEGIN INIT INFO
# Provides:          multipath-tools
# Required-Start:    udev $local_fs $syslog
# Required-Stop:     udev $local_fs $syslog
# Should-Start:      iscsi
# Should-Stop:       iscsi
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: multipath daemon
# Description:
### END INIT INFO

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

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"
                        DONT_STOP_MPATHD=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"
                        DONT_STOP_MPATHD=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)
        DONT_STOP_MPATHD=0
        root_dev=$(awk '{ if ($1 !~ /^[ \t]*#/ && $1 ~ /\// && $2 == "/") { 
print $1; }}' /etc/mtab)
        dm_num=$(dmsetup info -c --noheadings -o minor $root_dev 2>/dev/null)
        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. See DBUG #674733
                echo;
        else
                root_dm_device="dm-$dm_num"
                [ -d $syspath/$root_dm_device ] && teardown_slaves 
$syspath/$root_dm_device
        fi

        if [ x$DONT_STOP_MPATHD = x0 ]; then
                log_daemon_msg "Stopping $DESC" "$NAME"
                start-stop-daemon --oknodo --stop --quiet --pidfile 
/var/run/$NAME.pid --exec $DAEMON
                log_end_msg $?
        fi
        ;;
  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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to