syzbot


INFO: task hung in io_wq_put_and_exit

Status: upstream: reported syz repro on 2025/06/25 22:50
Bug presence: origin:lts-only
[Documentation on labels]
Reported-by: syzbot+ea8018030af6aec75b1e@syzkaller.appspotmail.com
First crash: 161d, last: 39d
Fix commit to backport (bisect log) :
tree: upstream
commit bcb0fda3c2da9fe4721d3e73d80e778c038e7d27
Author: Jens Axboe <axboe@kernel.dk>
Date: Wed Mar 5 21:03:34 2025 +0000

  io_uring/rw: ensure reissue path is correctly handled for IOPOLL

  
Bug presence (2)
Date Name Commit Repro Result
2025/06/28 linux-6.6.y (ToT) 3f5b4c104b7d syz [report] INFO: task hung in io_wq_put_and_exit
2025/06/28 upstream (ToT) aaf724ed6926 syz Didn't crash
Similar bugs (7)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream INFO: task hung in io_wq_put_and_exit (6) io-uring 1 C error 45 9h38m 107d 0/29 upstream: reported C repro on 2025/08/18 08:05
linux-5.15 INFO: task hung in io_wq_put_and_exit 1 1 632d 632d 0/3 auto-obsoleted due to no activity on 2024/06/19 08:55
upstream INFO: task hung in io_wq_put_and_exit (3) io-uring 1 C error unreliable 75 956d 1351d 0/29 auto-obsoleted due to no activity on 2023/08/20 08:26
upstream INFO: task hung in io_wq_put_and_exit io-uring fs 1 C unreliable 628 1486d 1547d 20/29 fixed on 2021/11/10 00:50
upstream INFO: task hung in io_wq_put_and_exit (2) fs 1 22 1454d 1483d 0/29 closed as invalid on 2022/02/08 09:40
upstream INFO: task hung in io_wq_put_and_exit (5) io-uring input usb 1 C done 9 114d 133d 0/29 closed as invalid on 2025/08/13 14:32
upstream INFO: task hung in io_wq_put_and_exit (4) io-uring 1 C unreliable 86 180d 410d 28/29 fixed on 2025/06/10 16:19
Last patch testing requests (2)
Created Duration User Patch Repo Result
2025/08/11 15:38 51m sumanth.gavini@yahoo.com patch linux-6.6.y report log
2025/08/10 21:45 23m sumanth.gavini@yahoo.com patch linux-6.6.y report log
Fix bisection attempts (1)
Created Duration User Patch Repo Result
2025/08/07 00:08 9h48m fix candidate upstream OK (1) job log

Sample crash report:
INFO: task syz.3.20:6023 blocked for more than 143 seconds.
      Not tainted syzkaller #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:syz.3.20        state:D stack:25448 pid:6023  ppid:5912   flags:0x00004000
Call Trace:
 <TASK>
 context_switch kernel/sched/core.c:5380 [inline]
 __schedule+0x14d2/0x44d0 kernel/sched/core.c:6699
 schedule+0xbd/0x170 kernel/sched/core.c:6773
 schedule_timeout+0x9b/0x280 kernel/time/timer.c:2143
 do_wait_for_common kernel/sched/completion.c:95 [inline]
 __wait_for_common kernel/sched/completion.c:116 [inline]
 wait_for_common kernel/sched/completion.c:127 [inline]
 wait_for_completion+0x2bd/0x590 kernel/sched/completion.c:148
 io_wq_exit_workers io_uring/io-wq.c:1266 [inline]
 io_wq_put_and_exit+0x2f3/0x660 io_uring/io-wq.c:1294
 io_uring_clean_tctx+0x120/0x190 io_uring/tctx.c:204
 io_uring_cancel_generic+0x5f8/0x6a0 io_uring/io_uring.c:3507
 io_uring_files_cancel include/linux/io_uring.h:69 [inline]
 do_exit+0x5a7/0x23c0 kernel/exit.c:829
 do_group_exit+0x21b/0x2d0 kernel/exit.c:1024
 get_signal+0x12fc/0x1400 kernel/signal.c:2902
 arch_do_signal_or_restart+0x9c/0x7b0 arch/x86/kernel/signal.c:310
 exit_to_user_mode_loop+0x70/0x110 kernel/entry/common.c:174
 exit_to_user_mode_prepare+0xf6/0x180 kernel/entry/common.c:210
 __syscall_exit_to_user_mode_work kernel/entry/common.c:291 [inline]
 syscall_exit_to_user_mode+0x1a/0x50 kernel/entry/common.c:302
 do_syscall_64+0x61/0xb0 arch/x86/entry/common.c:87
 entry_SYSCALL_64_after_hwframe+0x68/0xd2
RIP: 0033:0x7f3b1018efc9
RSP: 002b:00007f3b10ff00e8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
RAX: fffffffffffffe00 RBX: 00007f3b103e5fa8 RCX: 00007f3b1018efc9
RDX: 0000000000000000 RSI: 0000000000000080 RDI: 00007f3b103e5fa8
RBP: 00007f3b103e5fa0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f3b103e6038 R14: 00007ffda27b5e50 R15: 00007ffda27b5f38
 </TASK>
INFO: task syz.1.18:6030 blocked for more than 143 seconds.
      Not tainted syzkaller #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:syz.1.18        state:D stack:25448 pid:6030  ppid:5904   flags:0x00004000
Call Trace:
 <TASK>
 context_switch kernel/sched/core.c:5380 [inline]
 __schedule+0x14d2/0x44d0 kernel/sched/core.c:6699
 schedule+0xbd/0x170 kernel/sched/core.c:6773
 schedule_timeout+0x9b/0x280 kernel/time/timer.c:2143
 do_wait_for_common kernel/sched/completion.c:95 [inline]
 __wait_for_common kernel/sched/completion.c:116 [inline]
 wait_for_common kernel/sched/completion.c:127 [inline]
 wait_for_completion+0x2bd/0x590 kernel/sched/completion.c:148
 io_wq_exit_workers io_uring/io-wq.c:1266 [inline]
 io_wq_put_and_exit+0x2f3/0x660 io_uring/io-wq.c:1294
 io_uring_clean_tctx+0x120/0x190 io_uring/tctx.c:204
 io_uring_cancel_generic+0x5f8/0x6a0 io_uring/io_uring.c:3507
 io_uring_files_cancel include/linux/io_uring.h:69 [inline]
 do_exit+0x5a7/0x23c0 kernel/exit.c:829
 do_group_exit+0x21b/0x2d0 kernel/exit.c:1024
 get_signal+0x12fc/0x1400 kernel/signal.c:2902
 arch_do_signal_or_restart+0x9c/0x7b0 arch/x86/kernel/signal.c:310
 exit_to_user_mode_loop+0x70/0x110 kernel/entry/common.c:174
 exit_to_user_mode_prepare+0xf6/0x180 kernel/entry/common.c:210
 __syscall_exit_to_user_mode_work kernel/entry/common.c:291 [inline]
 syscall_exit_to_user_mode+0x1a/0x50 kernel/entry/common.c:302
 do_syscall_64+0x61/0xb0 arch/x86/entry/common.c:87
 entry_SYSCALL_64_after_hwframe+0x68/0xd2
RIP: 0033:0x7f588838efc9
RSP: 002b:00007f58892ed0e8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
RAX: fffffffffffffe00 RBX: 00007f58885e5fa8 RCX: 00007f588838efc9
RDX: 0000000000000000 RSI: 0000000000000080 RDI: 00007f58885e5fa8
RBP: 00007f58885e5fa0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007f58885e6038 R14: 00007fff8af6a760 R15: 00007fff8af6a848
 </TASK>

Showing all locks held in the system:
3 locks held by kworker/u4:0/11:
 #0: ffff888017871538 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2609 [inline]
 #0: ffff888017871538 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_scheduled_works+0x957/0x15b0 kernel/workqueue.c:2711
 #1: ffffc90000107d00 ((linkwatch_work).work){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2609 [inline]
 #1: ffffc90000107d00 ((linkwatch_work).work){+.+.}-{0:0}, at: process_scheduled_works+0x957/0x15b0 kernel/workqueue.c:2711
 #2: ffffffff8dfbbc08 (rtnl_mutex){+.+.}-{3:3}, at: linkwatch_event+0xe/0x60 net/core/link_watch.c:286
1 lock held by khungtaskd/29:
 #0: ffffffff8cd2ff20 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:334 [inline]
 #0: ffffffff8cd2ff20 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:786 [inline]
 #0: ffffffff8cd2ff20 (rcu_read_lock){....}-{1:2}, at: debug_show_all_locks+0x55/0x290 kernel/locking/lockdep.c:6633
3 locks held by kworker/u4:3/49:
 #0: ffff88802c2be138 ((wq_completion)ipv6_addrconf){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2609 [inline]
 #0: ffff88802c2be138 ((wq_completion)ipv6_addrconf){+.+.}-{0:0}, at: process_scheduled_works+0x957/0x15b0 kernel/workqueue.c:2711
 #1: ffffc90000ba7d00 ((work_completion)(&(&ifa->dad_work)->work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2609 [inline]
 #1: ffffc90000ba7d00 ((work_completion)(&(&ifa->dad_work)->work)){+.+.}-{0:0}, at: process_scheduled_works+0x957/0x15b0 kernel/workqueue.c:2711
 #2: ffffffff8dfbbc08 (rtnl_mutex){+.+.}-{3:3}, at: addrconf_dad_work+0xd0/0x14e0 net/ipv6/addrconf.c:4158
2 locks held by kworker/u4:5/2909:
4 locks held by kworker/u4:7/2954:
 #0: ffff8880b8e3c218 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock_nested+0xad/0x140 kernel/sched/core.c:566
 #1: ffff8880b8f289c0 (psi_seq){-.-.}-{0:0}, at: psi_sched_switch kernel/sched/stats.h:189 [inline]
 #1: ffff8880b8f289c0 (psi_seq){-.-.}-{0:0}, at: __schedule+0x20ee/0x44d0 kernel/sched/core.c:6694
 #2: ffff8880b8e3c218 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock_nested+0xad/0x140 kernel/sched/core.c:566
 #3: ffffffff970f6f18 (&obj_hash[i].lock){-.-.}-{2:2}, at: debug_object_activate+0x6c/0x4b0 lib/debugobjects.c:709
2 locks held by getty/5550:
 #0: ffff88802ce440a0 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref_wait+0x25/0x70 drivers/tty/tty_ldisc.c:243
 #1: ffffc9000327b2f0 (&ldata->atomic_read_lock){+.+.}-{3:3}, at: n_tty_read+0x425/0x1380 drivers/tty/n_tty.c:2217
2 locks held by kworker/1:3/5798:
 #0: ffff888017872538 ((wq_completion)rcu_gp){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2609 [inline]
 #0: ffff888017872538 ((wq_completion)rcu_gp){+.+.}-{0:0}, at: process_scheduled_works+0x957/0x15b0 kernel/workqueue.c:2711
 #1: ffffc90004507d00 ((work_completion)(&rew->rew_work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2609 [inline]
 #1: ffffc90004507d00 ((work_completion)(&rew->rew_work)){+.+.}-{0:0}, at: process_scheduled_works+0x957/0x15b0 kernel/workqueue.c:2711
3 locks held by kworker/0:4/5853:
 #0: ffff888017870938 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2609 [inline]
 #0: ffff888017870938 ((wq_completion)events){+.+.}-{0:0}, at: process_scheduled_works+0x957/0x15b0 kernel/workqueue.c:2711
 #1: ffffc90003147d00 ((work_completion)(&data->fib_event_work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2609 [inline]
 #1: ffffc90003147d00 ((work_completion)(&data->fib_event_work)){+.+.}-{0:0}, at: process_scheduled_works+0x957/0x15b0 kernel/workqueue.c:2711
 #2: ffff8880377c0240 (&data->fib_lock){+.+.}-{3:3}, at: nsim_fib_event_work+0x26c/0x3170 drivers/net/netdevsim/fib.c:1491
3 locks held by kworker/0:6/6483:
 #0: ffff888017870938 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2609 [inline]
 #0: ffff888017870938 ((wq_completion)events){+.+.}-{0:0}, at: process_scheduled_works+0x957/0x15b0 kernel/workqueue.c:2711
 #1: ffffc90005607d00 ((work_completion)(&data->fib_event_work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2609 [inline]
 #1: ffffc90005607d00 ((work_completion)(&data->fib_event_work)){+.+.}-{0:0}, at: process_scheduled_works+0x957/0x15b0 kernel/workqueue.c:2711
 #2: ffff888060fdf240 (&data->fib_lock){+.+.}-{3:3}, at: nsim_fib_event_work+0x26c/0x3170 drivers/net/netdevsim/fib.c:1491
3 locks held by syz-executor/6895:
 #0: ffffffff8dfbbc08 (rtnl_mutex){+.+.}-{3:3}, at: rtnl_lock net/core/rtnetlink.c:78 [inline]
 #0: ffffffff8dfbbc08 (rtnl_mutex){+.+.}-{3:3}, at: rtnetlink_rcv_msg+0x76f/0xf10 net/core/rtnetlink.c:6472
 #1: ffff888041fc93e8 (&wg->device_update_lock){+.+.}-{3:3}, at: wg_open+0x227/0x420 drivers/net/wireguard/device.c:50
 #2: ffffffff8cd358f8 (rcu_state.exp_mutex){+.+.}-{3:3}, at: exp_funnel_lock kernel/rcu/tree_exp.h:292 [inline]
 #2: ffffffff8cd358f8 (rcu_state.exp_mutex){+.+.}-{3:3}, at: synchronize_rcu_expedited+0x448/0x830 kernel/rcu/tree_exp.h:1004

=============================================

NMI backtrace for cpu 0
CPU: 0 PID: 29 Comm: khungtaskd Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025
Call Trace:
 <TASK>
 dump_stack_lvl+0x16c/0x230 lib/dump_stack.c:106
 nmi_cpu_backtrace+0x39b/0x3d0 lib/nmi_backtrace.c:113
 nmi_trigger_cpumask_backtrace+0x17a/0x2f0 lib/nmi_backtrace.c:62
 trigger_all_cpu_backtrace include/linux/nmi.h:160 [inline]
 check_hung_uninterruptible_tasks kernel/hung_task.c:222 [inline]
 watchdog+0xf41/0xf80 kernel/hung_task.c:379
 kthread+0x2fa/0x390 kernel/kthread.c:388
 ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:152
 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:293
 </TASK>
Sending NMI from CPU 0 to CPUs 1:
NMI backtrace for cpu 1
CPU: 1 PID: 2909 Comm: kworker/u4:5 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025
Workqueue: bat_events batadv_nc_worker
RIP: 0010:arch_irqs_disabled_flags arch/x86/include/asm/irqflags.h:126 [inline]
RIP: 0010:arch_local_irq_restore arch/x86/include/asm/irqflags.h:138 [inline]
RIP: 0010:lock_release+0x568/0x8b0 kernel/locking/lockdep.c:5777
Code: 0f c1 05 53 0a 9b 7e 83 f8 01 75 75 48 c7 84 24 80 00 00 00 00 00 00 00 9c 8f 84 24 80 00 00 00 f6 84 24 81 00 00 00 02 75 75 <f7> 44 24 50 00 02 00 00 74 01 fb 48 c7 44 24 60 0e 36 e0 45 4b c7
RSP: 0018:ffffc9000c1b7a40 EFLAGS: 00000046
RAX: 0000000000000001 RBX: d9f48db66023708a RCX: c35ef1e5cbd09800
RDX: 0000000000000002 RSI: ffffffff8aaacee0 RDI: ffffffff8afc6a80
RBP: ffffc9000c1b7b50 R08: ffffffff8e4a8b2f R09: 1ffffffff1c95165
R10: dffffc0000000000 R11: fffffbfff1c95166 R12: ffff88802b8c4730
R13: dffffc0000000000 R14: ffff88802b8c46d0 R15: 1ffff92001836f54
FS:  0000000000000000(0000) GS:ffff8880b8f00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00005555602215c8 CR3: 000000000cb30000 CR4: 00000000003506e0
Call Trace:
 <TASK>
 rcu_lock_release include/linux/rcupdate.h:344 [inline]
 rcu_read_unlock include/linux/rcupdate.h:819 [inline]
 batadv_nc_purge_orig_hash net/batman-adv/network-coding.c:412 [inline]
 batadv_nc_worker+0x291/0x610 net/batman-adv/network-coding.c:719
 process_one_work kernel/workqueue.c:2634 [inline]
 process_scheduled_works+0xa45/0x15b0 kernel/workqueue.c:2711
 worker_thread+0xa55/0xfc0 kernel/workqueue.c:2792
 kthread+0x2fa/0x390 kernel/kthread.c:388
 ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:152
 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:293
 </TASK>

Crashes (3):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/10/25 07:05 linux-6.6.y 4a243110dc88 c0460fcd .config console log report syz / log [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan INFO: task hung in io_wq_put_and_exit
2025/08/10 16:04 linux-6.6.y 3a8ababb8b6a 32a0e5ed .config console log report syz / log [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan INFO: task hung in io_wq_put_and_exit
2025/06/25 22:50 linux-6.6.y 6282921b6825 26d77996 .config console log report syz / log [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan INFO: task hung in io_wq_put_and_exit
* Struck through repros no longer work on HEAD.