Following login timeout, deadlock in iSCSI due to incorrect target layer error handling

Solution Unverified - Updated -

Issue

  • Following login timeout, deadlock in iSCSI due to incorrect target layer error handling:
Unable to recover from DataOut timeout while in ERL=0, closing iSCSI connection for I_T Nexus iqn.1991-05.com.<addr>,i,<addr>,iqn.1994-05.com.<addr>,0x01
Unable to recover from DataOut timeout while in ERL=0, closing iSCSI connection for I_T Nexus iqn.1991-05.com.<addr>,i,<addr>,iqn.1994-05.com.<addr>,t,0x01
Unable to recover from DataOut timeout while in ERL=0, closing iSCSI connection for I_T Nexus iqn.1991-05.com.<addr>,i,<addr>,iqn.1994-05.com.<addr>,t,0x01
....
iSCSI Login timeout on Network Portal 0.0.0.0:3260
iSCSI Login negotiation failed.
iSCSI Login timeout on Network Portal 0.0.0.0:3260
iSCSI Login negotiation failed.
iSCSI Login timeout on Network Portal 0.0.0.0:3260
iSCSI Login negotiation failed.
iSCSI Login timeout on Network Portal 0.0.0.0:3260
....
INFO: task kworker/23:0:2690086 blocked for more than 600 seconds.
      Tainted: P           OE    --------- -  - 4.18.0-372.9.1.el8.x86_64 #1
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:kworker/23:0    state:D stack:    0 pid:2690086 ppid:     2 flags:0x80004080
Workqueue: events iscsi_target_do_login_rx [iscsi_target_mod]
Call Trace:
 __schedule+0x2d1/0x830
 schedule+0x35/0xa0
 schedule_timeout+0x274/0x300
 ? __kmalloc_track_caller+0x111/0x250
 ? iscsi_decode_text_input+0x307/0x840 [iscsi_target_mod]
 ? kfree+0x1b0/0x1f0
 wait_for_completion+0x96/0x100
 iscsi_check_for_session_reinstatement+0x1e4/0x280 [iscsi_target_mod]
 iscsi_target_do_login+0x21d/0x570 [iscsi_target_mod]
 iscsi_target_do_login_rx+0x288/0x370 [iscsi_target_mod]
 ? iscsi_target_restore_sock_callbacks+0xb0/0xb0 [iscsi_target_mod]
 process_one_work+0x1a7/0x360
....
INFO: task kworker/0:2:2920313 blocked for more than 600 seconds.
      Tainted: P           OE    --------- -  - 4.18.0-372.9.1.el8.x86_64 #1
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:kworker/0:2     state:D stack:    0 pid:2920313 ppid:     2 flags:0x80004080
Workqueue: events target_tmr_work [target_core_mod]
Call Trace:
 __schedule+0x2d1/0x830
 schedule+0x35/0xa0
 schedule_timeout+0x274/0x300
 ? target_append_str+0x44/0x60 [target_core_mod]
 ? __kmalloc_track_caller+0x111/0x250
 ? target_show_cmd+0x8a/0x2e0 [target_core_mod]
 wait_for_completion+0x96/0x100
 target_put_cmd_and_wait+0x6e/0x90 [target_core_mod]
 core_tmr_lun_reset+0x3b1/0x6b0 [target_core_mod]
 target_tmr_work+0xb4/0x110 [target_core_mod]
 process_one_work+0x1a7/0x360

Environment

  • Red Hat Enterprise Linux 8

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content