[Pkg-iscsi-maintainers] Bug#782177: open-iscsi must wait for opensm

Michael Rasmussen mir at datanom.net
Thu Apr 9 00:32:33 UTC 2015


Package: open-iscsi
Version: 2.0.873-3
Severity: normal

Dear Maintainer,

If LUNs are accessed through infiniband they will not be available until the opensm
daemon is properly running resulting in failed login and attachment of LUN's. In
worst case if root is installed on such a LUN the system will fail to boot.

How to fix: Either opensm should start i runlevel S with a lower number than open-iscsi
or open-iscsi should have a dependency to opensm.

-- System Information:
Debian Release: 7.8
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.10.0-8-pve (SMP w/4 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 open-iscsi depends on:
ii  libc6  2.13-38+deb7u8
ii  udev   175-7.2

open-iscsi recommends no packages.

open-iscsi suggests no packages.

-- Configuration Files:
/etc/init.d/open-iscsi changed:
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/iscsid
ADM=/usr/bin/iscsiadm
PIDFILE=/var/run/iscsid.pid
NAMEFILE=/etc/iscsi/initiatorname.iscsi
CONFIGFILE=/etc/iscsi/iscsid.conf
[ -x "$DAEMON" ] || exit 0
. /lib/lsb/init-functions
if [ -f /etc/default/open-iscsi ]; then
	. /etc/default/open-iscsi
fi
if [ ! -d /sys/class/ ]; then
  log_failure_msg "iSCSI requires a mounted sysfs, not started."
  exit 0
fi
nodestartup_re='s/^node\.conn\[0]\.startup[ 	]*=[ 	]*//p'
RETVAL=0
sanitychecks() {
        # Do sanity checks before we start..
        if [ ! -e "$CONFIGFILE" ]; then
                echo
                echo "Error: configuration file $CONFIGFILE is missing!"
                echo "The iSCSI driver has not been correctly installed and cannot start."
                echo
                exit 1
        elif [ -s $PIDFILE ] && kill -0 `head -1 $PIDFILE` >/dev/null ; then
		echo
                echo "iSCSI daemon already running"
                echo
                exit 0
        fi
        if [ ! -f $NAMEFILE ] ; then
            echo
            echo "Error: InitiatorName file $NAMEFILE is missing!"
            echo "The iSCSI driver has not been correctly installed and cannot start."
            echo
            exit 1
        fi
        # see if we need to generate a unique iSCSI InitiatorName
        # this should only happen if the
        if grep -q "^GenerateName=yes" $NAMEFILE ; then
            if [ ! -x /usr/sbin/iscsi-iname ] ; then
                echo "Error: /usr/sbin/iscsi-iname does not exist, driver was not successfully installed"
                exit 1;
            fi
            # Generate a unique InitiatorName and save it
            INAME=`/usr/sbin/iscsi-iname -p iqn.1993-08.org.debian:01`
            if [ "$INAME" != "" ] ; then
                echo "## DO NOT EDIT OR REMOVE THIS FILE!" > $NAMEFILE
                echo "## If you remove this file, the iSCSI daemon will not start." >> $NAMEFILE
                echo "## If you change the InitiatorName, existing access control lists" >> $NAMEFILE
                echo "## may reject this initiator.  The InitiatorName must be unique">> $NAMEFILE
                echo "## for each iSCSI initiator.  Do NOT duplicate iSCSI InitiatorNames." >> $NAMEFILE
                printf "InitiatorName=$INAME\n"  >> $NAMEFILE
                chmod 600 $NAMEFILE
            else
                echo "Error: failed to generate an iSCSI InitiatorName, driver cannot start."
                echo
                exit 1;
            fi
        fi
        # make sure there is a valid InitiatorName for the driver
        if ! grep -q "^InitiatorName=[^ \t\n]" $NAMEFILE ; then
            echo
            echo "Error: $NAMEFILE does not contain a valid InitiatorName."
            echo "The iSCSI driver has not been correctly installed and cannot start."
            echo
            exit 1
        fi
}
start() {
	log_daemon_msg "Starting iSCSI initiator service" "iscsid"
	sanitychecks
	modprobe -q iscsi_tcp 2>/dev/null || :
	modprobe -q ib_iser 2>/dev/null || :
	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON
	RETVAL=$?
	log_end_msg $RETVAL
	starttargets
	udevadm settle || true;
	# Handle iSCSI LVM devices
	if [ ! -x "/sbin/vgchange" -a -n "$LVMGROUPS" ]; then
		log_warning_msg "LVM2 tools are not installed, not honouring LVMGROUPS."
		LMVGROUPS=""
	fi
	if [ -n "$LVMGROUPS" ]; then
		log_daemon_msg "Activating iSCSI volume groups"
		for vg in "$LVMGROUPS"; do
			log_progress_msg $vg
			vgchange --available=y $vg
		done
		log_end_msg 0
	fi
	# Now let's mount
	log_daemon_msg "Mounting network filesystems"
	MOUNT_RESULT=1
	if mount -a -O _netdev >/dev/null 2>&1; then
		MOUNT_RESULT=0
		break
	fi
	log_end_msg $MOUNT_RESULT
}
starttargets() {
	log_daemon_msg "Setting up iSCSI targets"
	echo
	$ADM -m node --loginall=automatic
	log_end_msg 0
}
stoptargets() {
	log_daemon_msg "Disconnecting iSCSI targets"
	sync
	# only logout if daemon is running, iscsiadm hangs otherwise
        if [ -s $PIDFILE ] && kill -0 `head -1 $PIDFILE` >/dev/null ; then
		$ADM -m node --logoutall=all
        fi
	log_end_msg 0
}
stop() {
	if [ -f /etc/iscsi/iscsi.initramfs ]; then
		log_warning_msg "/etc/iscsi/iscsi.initramfs present, not stopping iscsid yet"
		return 0
	fi
	# Call umountiscsi.sh to unmount iSCSI devices first
	invoke-rc.d umountiscsi.sh stop
	exit_status=$?
	if [ $exit_status -ne 0 ]; then
		log_failure_msg "Couldn't unmount all iSCSI devices. Cannot stop iSCSI service"
		exit 1
	fi
	stoptargets
	log_daemon_msg "Stopping iSCSI initiator service"
	start-stop-daemon --stop --quiet --pidfile $PIDFILE --signal TERM --exec $DAEMON
	rm -f $PIDFILE
	modprobe -r ib_iser 2>/dev/null
	modprobe -r iscsi_tcp 2>/dev/null
	log_end_msg 0
}
restart() {
	stop
	start
}
restarttargets() {
	stoptargets
	starttargets
}
status() {
	#XXX FIXME: what to do here?
	#status iscsid
	# list active sessions
	echo Current active iSCSI sessions:
	$ADM -m session
}
case "$1" in
	start|starttargets|stop|stoptargets|restart|restarttargets|status)
		$1
		;;
	force-reload)
		restart
		;;
	*)
		echo "Usage: $0 {start|stop|restart|force-reload|status}"
		exit 1
		;;
esac
exit $RETVAL

/etc/iscsi/initiatorname.iscsi [Errno 13] Permission denied: u'/etc/iscsi/initiatorname.iscsi'
/etc/iscsi/iscsid.conf changed:
node.startup = automatic
node.session.timeo.replacement_timeout = 120
node.conn[0].timeo.login_timeout = 15
node.conn[0].timeo.logout_timeout = 15
node.conn[0].timeo.noop_out_interval = 5
node.conn[0].timeo.noop_out_timeout = 5
node.session.err_timeo.abort_timeout = 15
node.session.err_timeo.lu_reset_timeout = 20
node.session.initial_login_retry_max = 8
node.session.cmds_max = 128
node.session.queue_depth = 32
node.session.xmit_thread_priority = -20
node.session.iscsi.InitialR2T = No
node.session.iscsi.ImmediateData = Yes
node.session.iscsi.FirstBurstLength = 262144
node.session.iscsi.MaxBurstLength = 16776192
node.conn[0].iscsi.MaxRecvDataSegmentLength = 262144
discovery.sendtargets.iscsi.MaxRecvDataSegmentLength = 32768
node.session.iscsi.FastAbort = Yes


-- no debconf information

----

This mail was virus scanned and spam checked before delivery.
This mail is also DKIM signed. See header dkim-signature.



More information about the Pkg-iscsi-maintainers mailing list