From: David Teigland <teigland@redhat.com>
To: target-devel@vger.kernel.org
Subject: [BUG] LIO iSCSI target deadlock on PR PREEMPT AND ABORT with concurrent I/O
Date: Tue, 23 Jun 2026 13:14:42 -0500 [thread overview]
Message-ID: <ajrNEj-B63SDtZ9W@redhat.com> (raw)
Hi, I've been hitting the deadlocked threads copied below while running
some new lvm tests that are doing preempt-abort between VMs sharing an
iscsi target exported by a third VM. The problem occurs when sg_persist
register triggers udev probing/reads, followed quickly by sg_persist
preempt-abort (preempt without abort doesn't deadlock.) The combination
of probing reads, and preempt-abort often hits the deadlock. (I'm leaving
out the more extensive AI analysis and patch which I can't personally
vouch for, but can provide if it's useful.)
An effective work-around for now is calling udevadm settle after register.
Seen on Fedora kernel 6.19.10-300.fc44.x86_64 and a recent 7.1.0-rc.
Thanks,
Dave
task:iscsi_trx state:D stack:0 pid:1899 tgid:1899 ppid:2 task_flags:0x208140 flags:0x00080006
Call Trace:
<TASK>
__schedule+0x2b2/0x5d0
schedule+0x27/0x80
schedule_timeout+0xdc/0x120
wait_for_completion+0x9e/0x170
target_put_cmd_and_wait+0x6e/0xc0 [target_core_mod]
core_tmr_drain_state_list+0x2eb/0x3f0 [target_core_mod]
core_tmr_lun_reset+0xa0/0x280 [target_core_mod]
core_scsi3_pro_preempt+0x7a8/0x8e0 [target_core_mod]
target_scsi3_emulate_pr_out+0x298/0x3c0 [target_core_mod]
__target_execute_cmd+0x36/0xd0 [target_core_mod]
iscsit_execute_cmd+0x279/0x2b0 [iscsi_target_mod]
iscsit_sequence_cmd+0xf3/0x170 [iscsi_target_mod]
iscsit_get_immediate_data+0x71/0x190 [iscsi_target_mod]
iscsit_get_rx_pdu+0xe1/0x300 [iscsi_target_mod]
iscsi_target_rx_thread+0x8e/0x120 [iscsi_target_mod]
kthread+0xfa/0x240
ret_from_fork+0x130/0x1a0
ret_from_fork_asm+0x1a/0x30
</TASK>
task:iscsi_ttx state:D stack:0 pid:1898 tgid:1898 ppid:2 task_flags:0x208040 flags:0x00080002
Call Trace:
<TASK>
__schedule+0x2b2/0x5d0
schedule+0x27/0x80
schedule_timeout+0xdc/0x120
wait_for_completion+0x9e/0x170
kthread_stop+0x6e/0x190
iscsit_close_connection+0x49c/0x7a0 [iscsi_target_mod]
iscsit_take_action_for_connection_exit+0x80/0x140 [iscsi_target_mod]
iscsi_target_tx_thread+0x162/0x240 [iscsi_target_mod]
kthread+0xfa/0x240
ret_from_fork+0x130/0x1a0
ret_from_fork_asm+0x1a/0x30
</TASK>
task:iscsi_np state:D stack:0 pid:1885 tgid:1885 ppid:2 task_flags:0x208040 flags:0x00080002
Call Trace:
<TASK>
__schedule+0x2b2/0x5d0
schedule+0x27/0x80
schedule_timeout+0xdc/0x120
wait_for_completion+0x9e/0x170
iscsi_check_for_session_reinstatement+0x1f5/0x2d0 [iscsi_target_mod]
iscsi_target_handle_csg_one+0x114/0x130 [iscsi_target_mod]
iscsi_target_do_login+0x2d/0xd0 [iscsi_target_mod]
iscsi_target_start_negotiation+0x67/0x170 [iscsi_target_mod]
__iscsi_target_login_thread+0x37f/0x7d0 [iscsi_target_mod]
iscsi_target_login_thread+0x24/0x60 [iscsi_target_mod]
kthread+0xfa/0x240
ret_from_fork+0x130/0x1a0
ret_from_fork_asm+0x1a/0x30
</TASK>
reply other threads:[~2026-06-23 18:14 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ajrNEj-B63SDtZ9W@redhat.com \
--to=teigland@redhat.com \
--cc=target-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox