Bug 1667965

Summary: A manual restart of iscsi.service modifies records node.startup value
Product: Red Hat Enterprise Linux 7 Reporter: Jon Magrini <jmagrini>
Component: iscsi-initiator-utilsAssignee: Chris Leech <cleech>
Status: CLOSED ERRATA QA Contact: Filip Suba <fsuba>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.6CC: aghadge, angystardust, carwyn, fsuba, jhouston, lkoranda, loberman, mzink, revers, rhandlin
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: iscsi-initiator-utils-6.2.0.874-17.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-03-31 20:03:52 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jon Magrini 2019-01-21 15:18:18 UTC
Description of problem:
A restart of iscsi.service modifies records node.startup value from: 
node.startup = automatic
to: 
node.startup = onboot

This change hangs shutdown process since the session is never logged out.  

Version-Release number of selected component (if applicable):
Both:
iscsi-initiator-utils-6.2.0.874-7.el7.x86_64
iscsi-initiator-utils-6.2.0.874-10.el7.x86_64

How reproducible:
very

Steps to Reproduce:
1. Setup iSCSI initiator
2. log in to target for non-root device
3. systemctl restart iscsi.service

Actual results:

# grep -R "node.startup" /var/lib/iscsi/nodes/*
/var/lib/iscsi/nodes/<target>/<ip>/em1_iface0:node.startup = automatic
/var/lib/iscsi/nodes/<target>/<ip>/em1_iface1:node.startup = automatic

# systemctl restart iscsi.service

# grep -R "node.startup" /var/lib/iscsi/nodes/*
/var/lib/iscsi/nodes/<target>/<ip>/em1_iface0:node.startup = onboot
/var/lib/iscsi/nodes/<target>/<ip>/em1_iface1:node.startup = onboot

# reboot
Stuck at "Rebooting"

Expected results:

Manual restart of iscsi.service does not prevent shutdown/reboot

Additional info:

The iscsi.service calls script `iscsi-mark-root-nodes`: 
---
ExecStart=/usr/libexec/iscsi-mark-root-nodes (code=exited, status=0/SUCCESS)

This script does not perform any root dev verification and alters all node record: 

<snip>
while read t num p target flash; do
  # strip tag number from portal, keep "ip:port"
  portal=${p%,*}
  transport=${t%:}

  $ISCSIADM -m node -p $portal -T $target -o update -n node.startup -v onboot
</snip>

While is not ideal to restart iscsi.service, customer is performing this to reload altered iscsid.conf vs using `iscsiadm ... -o update` cli.

Comment 3 Carwyn Edwards 2019-10-17 17:46:24 UTC
I just got caught out by this. Had to reset all the node.startup values so that the sessions would login again after reboot.

Comment 4 Chris Leech 2019-10-28 18:41:22 UTC
I'm moving the special handling of boot sessions (set node.startup to onboot and force starting of iscsid for session recovery) out of iscsi.service and into it's own iscsi-onboot.service (which will have RefuseManualStart set as well)

Comment 6 Filip Suba 2019-10-31 13:53:03 UTC
Verified with iscsi-initiator-utils 6.2.0.874-17. Host reboot successful.

Comment 8 errata-xmlrpc 2020-03-31 20:03:52 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2020:1124