Package: open-iscsi
Version: 2.1.8-1
Severity: normal


When trying to connect to an additional iSCSI target/server with the widely
reported command
  iscsiadm -m node --target iqn.foo --login
iscsiadm on at least some networks will fail with incorrect error messages:
  Logging in to [iface: ifBar_0, target: iqn.foo, portal: 10.x.x.x,3260]
iscsiadm: Could not login to [iface: ifBar_0, target: iqn.foo, portal: 10.x.x.x,3260]. iscsiadm: initiator reported error (19 - encountered non-retryable iSCSI login failure)
  iscsiadm: Could not log into all portals

However running a simultaneous tcpdump and analyzing it with WireShark reveals
that iscsiadm does a succesful login, then generates a TCP RST ending the
attempt for no apparent reason.

Because whatever failed was something local on the client, the error message
must say so and be much more actionable instead of sending the sysadmin on
a wild goose chase through the authentication settings and target configuration.

P.S.
This was run against another bookworm machine running targetcli-fb, no exotic
hardware needed.  All firewalls that I could find on the path are off.

P.P.S.
As stated in the first line of the report, this happens for an additional
iSCSI connection while the client already has iSCSI connections to other
disc boxes (in this case on other network interfaces).





-- System Information:
Debian Release: 12.5
  APT prefers stable
APT policy: (990, 'stable'), (500, 'stable-updates'), (500, 'stable-security'), (100, 'bookworm-fasttrack')
Architecture: amd64 (x86_64)

Kernel: Linux 6.5.0-0.deb12.4-amd64 (SMP w/4 CPU threads; PREEMPT)
Locale: LANG=en_DK.UTF-8, LC_CTYPE=en_DK.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages open-iscsi depends on:
ii  debconf [debconf-2.0]  1.5.82
ii  init-system-helpers    1.65.2
ii  libc6                  2.36-9+deb12u4
ii  libisns0               0.101-0.2+b1
ii  libkmod2               30+20221128-1
ii  libmount1              2.38.1-5+b1
ii  libopeniscsiusr        2.1.8-1
ii  libssl3                3.0.11-1~deb12u2
ii  libsystemd0            252.22-1~deb12u1
ii  udev                   254.5-1~bpo12+3

Versions of packages open-iscsi recommends:
ii  busybox-static [busybox]  1:1.35.0-4+b3
pn  finalrd                   <none>

open-iscsi suggests no packages.

-- Configuration Files:
/etc/default/open-iscsi changed:
LVMGROUPS=""
HANDLE_NETDEV=1

/etc/init.d/open-iscsi changed:
PATH=/sbin:/bin
DAEMON=/sbin/iscsid
ADM=/sbin/iscsiadm
PIDFILE=/run/iscsid.pid
NAMEFILE=/etc/iscsi/initiatorname.iscsi
CONFIGFILE=/etc/iscsi/iscsid.conf
OMITDIR=/run/sendsigs.omit.d
[ -x "$DAEMON" ] || exit 0
. /lib/lsb/init-functions
if [ -f /etc/default/open-iscsi ]; then
        . /etc/default/open-iscsi
fi
pause() {
        # echo
        # echo "$0 $*: Press enter to continue"
        # read dummy
        # unset dummy
        echo
        echo -n "$0 $*: Sleeping 5 seconds..."
        sleep 5
        echo "Slept"
}
pause "$@"
if [ ! -d /sys/class/ ]; then
  log_failure_msg "iSCSI requires a mounted sysfs, not started."
  pause nosysfs
  exit 0
fi
RETVAL=0
start() {
        if ! [ -s $PIDFILE ] || ! kill -0 `sed -n 1p $PIDFILE` >/dev/null ; then
log_failure_msg "iSCSI initiator daemon not started: not logging in to default targets"
                exit 1
        fi
        starttargets
        # activate LVM, mount filesystems, etc.
        /lib/open-iscsi/activate-storage.sh
}
starttargets() {
        pause starttargets
        log_daemon_msg "Setting up iSCSI targets"
        echo
        $ADM -m node --loginall=automatic
        pause startcomplete
        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 `sed -n 1p $PIDFILE` >/dev/null ; then
                /lib/open-iscsi/logout-all.sh
        fi
        log_end_msg 0
}
stop() {
        # Call umountiscsi.sh to unmount iSCSI devices first (always do
        # that, regardless of whether root is on iSCSI, umountiscsi.sh
        # will exclude it - and even if that shouldn't work, the mount
        # point will be busy)
        log_daemon_msg "Umounting iSCSI filesystems"
        /lib/open-iscsi/umountiscsi.sh
        umount_exit_status=$?
        log_end_msg $umount_exit_status
        if [ $umount_exit_status -ne 0 ]; then
log_failure_msg "Couldn't unmount all iSCSI devices. not logging out from any target."
                exit 1
        fi
        stoptargets
}
restart() {
        stop
        start
}
restarttargets() {
        stoptargets
        starttargets
}
status() {
        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/iscsid.conf [Errno 13] Permission denied: '/etc/iscsi/iscsid.conf'

-- debconf information excluded

Reply via email to