Bug#615958: multipath-tools: The unmount-iscsi.sh-scripts fails on shutdown. In combination with a HP MSA 2012i SAN it doesn't detect the _netdevices properly and will unmount the local (root) partitions as well which causes the machine to hang itself.
Quentin
quentin at datavisual.nl
Tue Mar 1 10:08:33 UTC 2011
Package: multipath-tools
Version: 0.4.8+git0.761c66f-9
Severity: important
-- Package-specific info:
Contents of /etc/multipath.conf:
blacklist {
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
}
defaults {
user_friendly_names yes
}
devices {
device {
vendor "HP"
product "MSA2[02]12fc|MSA2012i"
getuid_callout "/lib/udev/scsi_id --page=0x83 --whitelisted --device=/dev/%n"
hardware_handler "0"
path_selector "round-robin 0"
path_grouping_policy multibus
failback immediate
rr_weight uniform
no_path_retry 18
rr_min_io 100
path_checker tur
}
}
-- System Information:
Debian Release: 6.0
APT prefers squeeze-updates
APT policy: (500, 'squeeze-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.32-5-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-13.1 scripts for initializing and shutt
ii kpartx 0.4.8+git0.761c66f-9 create device mappings for partiti
ii libaio1 0.3.107-7 Linux kernel AIO access library -
ii libc6 2.11.2-10 Embedded GNU C Library: Shared lib
ii libdevmapper1.02.1 2:1.02.48-5 The Linux Kernel Device Mapper use
ii libncurses5 5.7+20100313-5 shared libraries for terminal hand
ii libreadline6 6.1-3 GNU readline and history libraries
ii lsb-base 3.2-23.2squeeze1 Linux Standard Base 3.2 init scrip
ii udev 164-3 /dev/ and hotplug management daemo
multipath-tools recommends no packages.
Versions of packages multipath-tools suggests:
ii multipath-tools-boo 0.4.8+git0.761c66f-9 Support booting from multipath dev
-- no debconf information
The new working (custom modified) script: umountiscsi.sh
#! /bin/sh
### BEGIN INIT INFO
# Provides: umountiscsi.sh
# Required-Start:
# Required-Stop: $network $remote_fs sendsigs open-iscsi
# Default-Start:
# Default-Stop: 0 1 6
# Short-Description: Unmounts iSCSI filesystems and stops iSCSI services
### END INIT INFO
. /lib/init/vars.sh
. /lib/lsb/init-functions
# Include defaults if available
if [ -f /etc/default/open-iscsi ]; then
. /etc/default/open-iscsi
fi
do_stop () {
log_daemon_msg "Unmounting iscsi-backed filesystems"
umount_fail=0
if [ $HANDLE_NETDEV -eq 1 ]; then
log_progress_msg "Unmounting all devices marked _netdev";
umount -a -O _netdev >/dev/null 2>&1
fi
# Now handle iSCSI LVM Volumes
if [ -n "$LVMGROUPS" ]; then
log_daemon_msg "Deactivating iSCSI volume groups"
for vg in "$LVMGROUPS"; do
log_progress_msg $vg
vgchange --available=n $vg
if [ $? -ne 0 ]; then
log_warning_msg "Cannot deactivate Volume Group $vg"
umount_fail=1
fi
done
log_end_msg 0
fi
for HOST_DIR in /sys/devices/platform/host*; do
if ! [ -d $HOST_DIR/iscsi_host* ]; then
continue
fi
for SESSION_DIR in $HOST_DIR/session*; do
#######if ! [ -d $SESSION_DIR/target* ]; then
if ! [ -d $SESSION_DIR/target*/*\:*/block ]; then
continue
fi
for BLOCK_FILE in $SESSION_DIR/target*/*\:*/block/*; do
BLOCK_DEV=`echo "$BLOCK_FILE" | sed 's/.*block\///'`
DOS_PARTITIONS="`awk "/^\/dev\/$BLOCK_DEV/ { print \\$2; }" < /proc/mounts`"
for DEVICE in $DOS_PARTITIONS; do
#log_progress_msg $DEVICE
#echo $DEVICE
umount $DEVICE
exit_status=$?
if ! [ $exit_status -eq 0 ]; then
umount_fail=1
log_warning_msg "Could not unmount $DEVICE"
fi
done
done
done
done
if [ $umount_fail -ne 0 ]; then
log_end_msg 1
exit 1
else
log_end_msg 0
exit 0
fi
}
case "$1" in
start)
# No-op
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop|"")
do_stop
;;
*)
echo "Usage: umountiscsi.sh [start|stop]" >&2
exit 3
;;
esac
More information about the pkg-lvm-maintainers
mailing list