Bug#704073: [multipath-tools-boot] error when update-initramfs
Ritesh Raj Sarraf
rrs at researchut.com
Tue Apr 2 18:19:54 UTC 2013
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."
-------------- next part --------------
#! /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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 897 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-lvm-maintainers/attachments/20130402/d5abe3e5/attachment-0001.pgp>
More information about the pkg-lvm-maintainers
mailing list