syzbot


INFO: task hung in wg_noise_handshake_begin_session

Status: auto-obsoleted due to no activity on 2025/11/02 07:58
Subsystems: wireguard
[Documentation on labels]
First crash: 127d, last: 127d

Sample crash report:
INFO: task kworker/1:3:5895 blocked for more than 152 seconds.
      Not tainted 6.16.0-syzkaller-11364-g3c4a063b1f8a #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:kworker/1:3     state:D stack:22008 pid:5895  tgid:5895  ppid:2      task_flags:0x4208060 flags:0x00004000
Workqueue: wg-kex-wg2 wg_packet_handshake_receive_worker
Call Trace:
 <TASK>
 context_switch kernel/sched/core.c:5357 [inline]
 __schedule+0x1190/0x5de0 kernel/sched/core.c:6961
 __schedule_loop kernel/sched/core.c:7043 [inline]
 schedule+0xe7/0x3a0 kernel/sched/core.c:7058
 schedule_preempt_disabled+0x13/0x30 kernel/sched/core.c:7115
 rwsem_down_write_slowpath+0x524/0x1310 kernel/locking/rwsem.c:1174
 __down_write_common kernel/locking/rwsem.c:1302 [inline]
 __down_write kernel/locking/rwsem.c:1311 [inline]
 down_write+0x1d6/0x200 kernel/locking/rwsem.c:1576
 wg_noise_handshake_begin_session+0x30/0xe80 drivers/net/wireguard/noise.c:822
 wg_packet_send_handshake_response+0x216/0x310 drivers/net/wireguard/send.c:96
 wg_receive_handshake_packet+0x247/0xbf0 drivers/net/wireguard/receive.c:154
 wg_packet_handshake_receive_worker+0x17f/0x3a0 drivers/net/wireguard/receive.c:213
 process_one_work+0x9cc/0x1b70 kernel/workqueue.c:3236
 process_scheduled_works kernel/workqueue.c:3319 [inline]
 worker_thread+0x6c8/0xf10 kernel/workqueue.c:3400
 kthread+0x3c5/0x780 kernel/kthread.c:464
 ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
 </TASK>

Showing all locks held in the system:
1 lock held by kworker/R-rcu_g/4:
 #0: ffff8880b843a318 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock_nested kernel/sched/core.c:644 [inline]
 #0: ffff8880b843a318 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock_nested+0x7e/0x130 kernel/sched/core.c:629
2 locks held by kworker/0:1/10:
3 locks held by kworker/u8:0/12:
4 locks held by kworker/u8:1/13:
 #0: ffff888084fd4948 ((wq_completion)wg-kex-wg2#95){+.+.}-{0:0}, at: process_one_work+0x12a2/0x1b70 kernel/workqueue.c:3211
 #1: ffffc90000127d10 ((work_completion)(&peer->transmit_handshake_work)){+.+.}-{0:0}, at: process_one_work+0x929/0x1b70 kernel/workqueue.c:3212
 #2: ffff888089f09308 (&wg->static_identity.lock){++++}-{4:4}, at: wg_noise_handshake_create_initiation+0xec/0x650 drivers/net/wireguard/noise.c:529
 #3: ffff88805b94b4c0 (&handshake->lock){++++}-{4:4}, at: wg_noise_handshake_create_initiation+0x100/0x650 drivers/net/wireguard/noise.c:530
1 lock held by kworker/R-mm_pe/14:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
4 locks held by kworker/1:0/24:
 #0: ffff888085847d48 ((wq_completion)wg-kex-wg2#88){+.+.}-{0:0}, at: process_one_work+0x12a2/0x1b70 kernel/workqueue.c:3211
 #1: ffffc900001e7d10 ((work_completion)(&({ do { const void *__vpp_verify = (typeof((worker) + 0))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((__typeof__(*((worker))) *)(( unsigned long)((worker))))); (typeof((__typeof__(*((worker))) *)(( unsigned long)((worker))))) (__ptr + (((__per_cpu_offset[(cpu)])))); }); })->work)){+.+.}-{0:0}, at: process_one_work+0x929/0x1b70 kernel/workqueue.c:3212
 #2: ffff888039e5d308 (&wg->static_identity.lock){++++}-{4:4}, at: wg_noise_handshake_consume_initiation+0x1c2/0x880 drivers/net/wireguard/noise.c:598
 #3: ffff88802d498338 (&handshake->lock){++++}-{4:4}, at: wg_noise_handshake_consume_initiation+0x5ac/0x880 drivers/net/wireguard/noise.c:632
1 lock held by khungtaskd/31:
 #0: ffffffff8e5c1120 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:331 [inline]
 #0: ffffffff8e5c1120 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:841 [inline]
 #0: ffffffff8e5c1120 (rcu_read_lock){....}-{1:3}, at: debug_show_all_locks+0x36/0x1c0 kernel/locking/lockdep.c:6775
4 locks held by kworker/u8:4/59:
 #0: ffff888025736948 ((wq_completion)wg-kex-wg1#89){+.+.}-{0:0}, at: process_one_work+0x12a2/0x1b70 kernel/workqueue.c:3211
 #1: ffffc9000210fd10 ((work_completion)(&peer->transmit_handshake_work)){+.+.}-{0:0}, at: process_one_work+0x929/0x1b70 kernel/workqueue.c:3212
 #2: ffff88807a5e9308 (&wg->static_identity.lock){++++}-{4:4}, at: wg_noise_handshake_create_initiation+0xec/0x650 drivers/net/wireguard/noise.c:529
 #3: ffff88802d49b4c0 (&handshake->lock){++++}-{4:4}, at: wg_noise_handshake_create_initiation+0x100/0x650 drivers/net/wireguard/noise.c:530
2 locks held by kworker/0:2/918:
6 locks held by kworker/u8:6/2991:
 #0: ffff88801c6f4148 ((wq_completion)netns){+.+.}-{0:0}, at: process_one_work+0x12a2/0x1b70 kernel/workqueue.c:3211
 #1: ffffc9000cc37d10 (net_cleanup_work){+.+.}-{0:0}, at: process_one_work+0x929/0x1b70 kernel/workqueue.c:3212
 #2: ffffffff90366870 (pernet_ops_rwsem){++++}-{4:4}, at: cleanup_net+0xad/0x890 net/core/net_namespace.c:658
 #3: ffffffff9037cac8 (rtnl_mutex){+.+.}-{4:4}, at: wg_netns_pre_exit+0x1b/0x230 drivers/net/wireguard/device.c:417
 #4: ffff888089f0d4e8 (&wg->device_update_lock){+.+.}-{4:4}, at: wg_netns_pre_exit+0xdd/0x230 drivers/net/wireguard/device.c:422
 #5: ffffffff8e5cc6b8 (rcu_state.exp_mutex){+.+.}-{4:4}, at: exp_funnel_lock+0x284/0x3c0 kernel/rcu/tree_exp.h:311
2 locks held by getty/5609:
 #0: ffff88814db660a0 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref_wait+0x24/0x80 drivers/tty/tty_ldisc.c:243
 #1: ffffc9000332b2f0 (&ldata->atomic_read_lock){+.+.}-{4:4}, at: n_tty_read+0x41b/0x14f0 drivers/tty/n_tty.c:2222
2 locks held by kworker/0:3/5847:
3 locks held by kworker/1:3/5895:
 #0: ffff8880637d1148 ((wq_completion)wg-kex-wg2#96){+.+.}-{0:0}, at: process_one_work+0x12a2/0x1b70 kernel/workqueue.c:3211
 #1: ffffc90003d77d10 ((work_completion)(&({ do { const void *__vpp_verify = (typeof((worker) + 0))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((__typeof__(*((worker))) *)(( unsigned long)((worker))))); (typeof((__typeof__(*((worker))) *)(( unsigned long)((worker))))) (__ptr + (((__per_cpu_offset[(cpu)])))); }); })->work)){+.+.}-{0:0}, at: process_one_work+0x929/0x1b70 kernel/workqueue.c:3212
 #2: ffff88805b94b4c0 (&handshake->lock){++++}-{4:4}, at: wg_noise_handshake_begin_session+0x30/0xe80 drivers/net/wireguard/noise.c:822
2 locks held by kworker/0:7/6014:
4 locks held by kworker/1:7/6026:
 #0: ffff888054643548 ((wq_completion)wg-kex-wg2#111){+.+.}-{0:0}, at: process_one_work+0x12a2/0x1b70 kernel/workqueue.c:3211
 #1: ffffc900043c7d10 ((work_completion)(&({ do { const void *__vpp_verify = (typeof((worker) + 0))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((__typeof__(*((worker))) *)(( unsigned long)((worker))))); (typeof((__typeof__(*((worker))) *)(( unsigned long)((worker))))) (__ptr + (((__per_cpu_offset[(cpu)])))); }); })->work)){+.+.}-{0:0}, at: process_one_work+0x929/0x1b70 kernel/workqueue.c:3212
 #2: ffff88804dabd308 (&wg->static_identity.lock){++++}-{4:4}, at: wg_noise_handshake_consume_initiation+0x1c2/0x880 drivers/net/wireguard/noise.c:598
 #3: ffff8880391f34c0 (&handshake->lock){++++}-{4:4}, at: wg_noise_handshake_consume_initiation+0x5ac/0x880 drivers/net/wireguard/noise.c:632
3 locks held by kworker/u8:9/6262:
 #0: ffff88801b881148 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work+0x12a2/0x1b70 kernel/workqueue.c:3211
 #1: ffffc9000365fd10 ((linkwatch_work).work){+.+.}-{0:0}, at: process_one_work+0x929/0x1b70 kernel/workqueue.c:3212
 #2: ffffffff9037cac8 (rtnl_mutex){+.+.}-{4:4}, at: linkwatch_event+0x51/0xc0 net/core/link_watch.c:303
4 locks held by kworker/u8:12/10455:
 #0: ffff888050f96148 ((wq_completion)wg-kex-wg1#92){+.+.}-{0:0}, at: process_one_work+0x12a2/0x1b70 kernel/workqueue.c:3211
 #1: ffffc90002f27d10 ((work_completion)(&peer->transmit_handshake_work)){+.+.}-{0:0}, at: process_one_work+0x929/0x1b70 kernel/workqueue.c:3212
 #2: ffff88805ebd5308 (&wg->static_identity.lock){++++}-{4:4}, at: wg_noise_handshake_create_initiation+0xec/0x650 drivers/net/wireguard/noise.c:529
 #3: ffff88802d49f030 (&handshake->lock){++++}-{4:4}, at: wg_noise_handshake_create_initiation+0x100/0x650 drivers/net/wireguard/noise.c:530
2 locks held by kworker/0:0/10861:
4 locks held by kworker/1:5/12610:
 #0: ffff8880470ecd48 ((wq_completion)wg-kex-wg1#107){+.+.}-{0:0}, at: process_one_work+0x12a2/0x1b70 kernel/workqueue.c:3211
 #1: ffffc90006247d10 ((work_completion)(&({ do { const void *__vpp_verify = (typeof((worker) + 0))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((__typeof__(*((worker))) *)(( unsigned long)((worker))))); (typeof((__typeof__(*((worker))) *)(( unsigned long)((worker))))) (__ptr + (((__per_cpu_offset[(cpu)])))); }); })->work)){+.+.}-{0:0}, at: process_one_work+0x929/0x1b70 kernel/workqueue.c:3212
 #2: ffff888068b3d308 (&wg->static_identity.lock){++++}-{4:4}, at: wg_noise_handshake_consume_initiation+0x1c2/0x880 drivers/net/wireguard/noise.c:598
 #3: ffff8880698fe648 (&handshake->lock){++++}-{4:4}, at: wg_noise_handshake_consume_initiation+0x5ac/0x880 drivers/net/wireguard/noise.c:632
3 locks held by kworker/0:4/16551:
4 locks held by kworker/u8:14/17030:
 #0: ffff8880877a4948 ((wq_completion)wg-kex-wg1#109){+.+.}-{0:0}, at: process_one_work+0x12a2/0x1b70 kernel/workqueue.c:3211
 #1: ffffc90003cbfd10 ((work_completion)(&peer->transmit_handshake_work)){+.+.}-{0:0}, at: process_one_work+0x929/0x1b70 kernel/workqueue.c:3212
 #2: ffff88804dab9308 (&wg->static_identity.lock){++++}-{4:4}, at: wg_noise_handshake_create_initiation+0xec/0x650 drivers/net/wireguard/noise.c:529
 #3: ffff888085454890 (&handshake->lock){++++}-{4:4}, at: wg_noise_handshake_create_initiation+0x100/0x650 drivers/net/wireguard/noise.c:530
2 locks held by kworker/R-wg-cr/19359:
1 lock held by kworker/R-wg-cr/19360:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
1 lock held by kworker/R-wg-cr/19361:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/19432:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/19433:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
1 lock held by kworker/R-wg-cr/20203:
1 lock held by kworker/R-wg-cr/20204:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
1 lock held by kworker/R-wg-cr/20207:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
4 locks held by kworker/0:5/22703:
2 locks held by kworker/0:6/22718:
2 locks held by kworker/0:8/22758:
2 locks held by kworker/0:9/22767:
2 locks held by kworker/R-wg-cr/22782:
1 lock held by kworker/R-wg-cr/22785:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/22786:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
1 lock held by kworker/R-wg-cr/22914:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
1 lock held by kworker/R-wg-cr/22916:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
2 locks held by kworker/R-wg-cr/22918:
1 lock held by kworker/R-wg-cr/22919:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
1 lock held by kworker/R-wg-cr/22920:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/22922:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/22923:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
1 lock held by kworker/R-wg-cr/22924:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/22925:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
4 locks held by kworker/1:1/22927:
 #0: ffff88806496b148 ((wq_completion)wg-kex-wg1#93){+.+.}-{0:0}, at: process_one_work+0x12a2/0x1b70 kernel/workqueue.c:3211
 #1: ffffc90005fc7d10 ((work_completion)(&({ do { const void *__vpp_verify = (typeof((worker) + 0))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((__typeof__(*((worker))) *)(( unsigned long)((worker))))); (typeof((__typeof__(*((worker))) *)(( unsigned long)((worker))))) (__ptr + (((__per_cpu_offset[(cpu)])))); }); })->work)){+.+.}-{0:0}, at: process_one_work+0x929/0x1b70 kernel/workqueue.c:3212
 #2: ffff88805ebd5308 (&wg->static_identity.lock){++++}-{4:4}, at: wg_noise_handshake_consume_initiation+0x1c2/0x880 drivers/net/wireguard/noise.c:598
 #3: ffff88802d49f030 (&handshake->lock){++++}-{4:4}, at: wg_noise_handshake_consume_initiation+0x5ac/0x880 drivers/net/wireguard/noise.c:632
3 locks held by kworker/u8:19/23033:
 #0: ffff88814cb1f148 ((wq_completion)ipv6_addrconf){+.+.}-{0:0}, at: process_one_work+0x12a2/0x1b70 kernel/workqueue.c:3211
 #1: ffffc900043d7d10 ((work_completion)(&(&net->ipv6.addr_chk_work)->work)){+.+.}-{0:0}, at: process_one_work+0x929/0x1b70 kernel/workqueue.c:3212
 #2: ffffffff9037cac8 (rtnl_mutex){+.+.}-{4:4}, at: rtnl_net_lock include/linux/rtnetlink.h:130 [inline]
 #2: ffffffff9037cac8 (rtnl_mutex){+.+.}-{4:4}, at: addrconf_verify_work+0x12/0x30 net/ipv6/addrconf.c:4734
3 locks held by kworker/1:4/23036:
 #0: ffff88801b878d48 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x12a2/0x1b70 kernel/workqueue.c:3211
 #1: ffffc90003c17d10 (deferred_process_work){+.+.}-{0:0}, at: process_one_work+0x929/0x1b70 kernel/workqueue.c:3212
 #2: ffffffff9037cac8 (rtnl_mutex){+.+.}-{4:4}, at: switchdev_deferred_process_work+0xe/0x20 net/switchdev/switchdev.c:104
2 locks held by kworker/0:10/23039:
2 locks held by kworker/0:11/23051:
3 locks held by kworker/0:12/23052:
2 locks held by kworker/0:13/23053:
3 locks held by kworker/0:14/23055:
1 lock held by kworker/R-wg-cr/23070:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/23071:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/23072:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
3 locks held by kworker/0:15/23073:
1 lock held by kworker/R-wg-cr/23074:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
1 lock held by kworker/R-wg-cr/23075:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
1 lock held by kworker/R-wg-cr/23076:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
1 lock held by kworker/R-wg-cr/23077:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/23079:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/23080:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
2 locks held by kworker/R-wg-cr/23081:
1 lock held by kworker/R-wg-cr/23082:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
2 locks held by kworker/R-wg-cr/23083:
1 lock held by kworker/R-wg-cr/23084:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
1 lock held by kworker/R-wg-cr/23085:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
3 locks held by kworker/0:16/23086:
3 locks held by kworker/0:17/23117:
4 locks held by kworker/1:9/23194:
 #0: ffff888037cc8148 ((wq_completion)wg-kex-wg2#108){+.+.}-{0:0}, at: process_one_work+0x12a2/0x1b70 kernel/workqueue.c:3211
 #1: ffffc90003437d10 ((work_completion)(&({ do { const void *__vpp_verify = (typeof((worker) + 0))((void *)0); (void)__vpp_verify; } while (0); ({ unsigned long __ptr; __asm__ ("" : "=r"(__ptr) : "0"((__typeof__(*((worker))) *)(( unsigned long)((worker))))); (typeof((__typeof__(*((worker))) *)(( unsigned long)((worker))))) (__ptr + (((__per_cpu_offset[(cpu)])))); }); })->work)){+.+.}-{0:0}, at: process_one_work+0x929/0x1b70 kernel/workqueue.c:3212
 #2: ffff888050e11308 (&wg->static_identity.lock){++++}-{4:4}, at: wg_noise_handshake_consume_initiation+0x1c2/0x880 drivers/net/wireguard/noise.c:598
 #3: ffff888085457030 (&handshake->lock){++++}-{4:4}, at: wg_noise_handshake_consume_initiation+0x5ac/0x880 drivers/net/wireguard/noise.c:632
1 lock held by kworker/R-wg-cr/23232:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
5 locks held by kworker/R-wg-cr/23233:
1 lock held by kworker/R-wg-cr/23235:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/23236:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/23237:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
1 lock held by kworker/R-wg-cr/23238:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/23239:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/23240:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/23244:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
3 locks held by kworker/0:18/23333:
1 lock held by kworker/R-wg-cr/23371:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/23373:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
1 lock held by kworker/R-wg-cr/23374:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/23375:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/23376:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
1 lock held by kworker/R-wg-cr/23377:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
2 locks held by kworker/R-wg-cr/23378:
1 lock held by kworker/R-wg-cr/23379:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
1 lock held by kworker/R-wg-cr/23380:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/23381:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
1 lock held by kworker/R-wg-cr/23382:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
1 lock held by kworker/R-wg-cr/23383:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
1 lock held by kworker/R-wg-cr/23384:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_detach_from_pool kernel/workqueue.c:2734 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0x839/0xea0 kernel/workqueue.c:3529
1 lock held by kworker/R-wg-cr/23385:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: worker_attach_to_pool+0x27/0x420 kernel/workqueue.c:2676
3 locks held by kworker/0:19/23386:
2 locks held by kworker/0:20/23467:
1 lock held by syz.1.4142/23470:
 #0: ffffffff8e5cc580 (rcu_state.barrier_mutex){+.+.}-{4:4}, at: rcu_barrier+0x48/0x6e0 kernel/rcu/tree.c:3815
4 locks held by kworker/u8:23/23482:
 #0: ffff88807a61a148 ((wq_completion)wg-kex-wg1#105){+.+.}-{0:0}, at: process_one_work+0x12a2/0x1b70 kernel/workqueue.c:3211
 #1: ffffc90006027d10 ((work_completion)(&peer->transmit_handshake_work)){+.+.}-{0:0}, at: process_one_work+0x929/0x1b70 kernel/workqueue.c:3212
 #2: ffff888068b3d308 (&wg->static_identity.lock){++++}-{4:4}, at: wg_noise_handshake_create_initiation+0xec/0x650 drivers/net/wireguard/noise.c:529
 #3: ffff8880698fe648 (&handshake->lock){++++}-{4:4}, at: wg_noise_handshake_create_initiation+0x100/0x650 drivers/net/wireguard/noise.c:530
1 lock held by kworker/R-nfc2_/23505:
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: set_pf_worker kernel/workqueue.c:3325 [inline]
 #0: ffffffff8e4782c8 (wq_pool_attach_mutex){+.+.}-{4:4}, at: rescuer_thread+0xa6f/0xea0 kernel/workqueue.c:3544
4 locks held by kworker/0:21/23508:
2 locks held by kworker/0:22/23509:
1 lock held by syz-executor/23527:
 #0: ffffffff9037cac8 (rtnl_mutex){+.+.}-{4:4}, at: rtnl_lock net/core/rtnetlink.c:80 [inline]
 #0: ffffffff9037cac8 (rtnl_mutex){+.+.}-{4:4}, at: rtnl_nets_lock net/core/rtnetlink.c:341 [inline]
 #0: ffffffff9037cac8 (rtnl_mutex){+.+.}-{4:4}, at: rtnl_newlink+0x600/0x2000 net/core/rtnetlink.c:4056
2 locks held by syz-executor/23545:
 #0: ffffffff90acfca0 (&ops->srcu#2){.+.+}-{0:0}, at: srcu_lock_acquire include/linux/srcu.h:161 [inline]
 #0: ffffffff90acfca0 (&ops->srcu#2){.+.+}-{0:0}, at: srcu_read_lock include/linux/srcu.h:253 [inline]
 #0: ffffffff90acfca0 (&ops->srcu#2){.+.+}-{0:0}, at: rtnl_link_ops_get+0x113/0x2c0 net/core/rtnetlink.c:574
 #1: ffffffff9037cac8 (rtnl_mutex){+.+.}-{4:4}, at: rtnl_lock net/core/rtnetlink.c:80 [inline]
 #1: ffffffff9037cac8 (rtnl_mutex){+.+.}-{4:4}, at: rtnl_nets_lock net/core/rtnetlink.c:341 [inline]
 #1: ffffffff9037cac8 (rtnl_mutex){+.+.}-{4:4}, at: rtnl_newlink+0x600/0x2000 net/core/rtnetlink.c:4056
3 locks held by kworker/0:23/23552:
1 lock held by kworker/0:24/23553:
1 lock held by syz-executor/23564:
 #0: ffffffff8e5cc6b8 (rcu_state.exp_mutex){+.+.}-{4:4}, at: exp_funnel_lock+0x1a3/0x3c0 kernel/rcu/tree_exp.h:343
2 locks held by syz-executor/23567:
 #0: ffffffff90ace440 (&ops->srcu#2){.+.+}-{0:0}, at: srcu_lock_acquire include/linux/srcu.h:161 [inline]
 #0: ffffffff90ace440 (&ops->srcu#2){.+.+}-{0:0}, at: srcu_read_lock include/linux/srcu.h:253 [inline]
 #0: ffffffff90ace440 (&ops->srcu#2){.+.+}-{0:0}, at: rtnl_link_ops_get+0x113/0x2c0 net/core/rtnetlink.c:574
 #1: ffffffff9037cac8 (rtnl_mutex){+.+.}-{4:4}, at: rtnl_lock net/core/rtnetlink.c:80 [inline]
 #1: ffffffff9037cac8 (rtnl_mutex){+.+.}-{4:4}, at: rtnl_nets_lock net/core/rtnetlink.c:341 [inline]
 #1: ffffffff9037cac8 (rtnl_mutex){+.+.}-{4:4}, at: rtnl_newlink+0x600/0x2000 net/core/rtnetlink.c:4056

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

NMI backtrace for cpu 1
CPU: 1 UID: 0 PID: 31 Comm: khungtaskd Not tainted 6.16.0-syzkaller-11364-g3c4a063b1f8a #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120
 nmi_cpu_backtrace+0x27b/0x390 lib/nmi_backtrace.c:113
 nmi_trigger_cpumask_backtrace+0x29c/0x300 lib/nmi_backtrace.c:62
 trigger_all_cpu_backtrace include/linux/nmi.h:160 [inline]
 check_hung_uninterruptible_tasks kernel/hung_task.c:307 [inline]
 watchdog+0xf0e/0x1260 kernel/hung_task.c:470
 kthread+0x3c5/0x780 kernel/kthread.c:464
 ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
 </TASK>
Sending NMI from CPU 1 to CPUs 0:
NMI backtrace for cpu 0
CPU: 0 UID: 0 PID: 23380 Comm: kworker/R-wg-cr Not tainted 6.16.0-syzkaller-11364-g3c4a063b1f8a #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025
Workqueue: wg-crypt-wg0 wg_packet_decrypt_worker
RIP: 0010:arch_stack_walk+0x88/0x100 arch/x86/kernel/stacktrace.c:27
Code: 49 8b 8e 98 00 00 00 4c 89 f2 4c 89 fe 48 89 df e8 7d 15 09 00 8b 95 70 ff ff ff 85 d2 75 21 eb 2f 4c 89 ef 2e e8 0c 24 9e 1e <84> c0 74 22 48 89 df e8 ac f4 08 00 8b 85 70 ff ff ff 85 c0 74 10
RSP: 0018:ffffc90000007ba0 EFLAGS: 00000286
RAX: 0000000000000001 RBX: ffffc90000007ba0 RCX: ffffc90000007c38
RDX: 0000000000000000 RSI: ffffffff81a6dd5e RDI: ffffc90000007c6c
RBP: ffffc90000007c30 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000003 R11: 00000000000061ee R12: ffffffff81a6d9d0
R13: ffffc90000007c60 R14: 0000000000000000 R15: ffff88805e07a440
FS:  0000000000000000(0000) GS:ffff8881246c8000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000020000001c000 CR3: 000000000e380000 CR4: 00000000003526f0
Call Trace:
 <IRQ>
 stack_trace_save+0x8e/0xc0 kernel/stacktrace.c:122
 ref_tracker_free+0x10e/0x830 lib/ref_tracker.c:307
 netdev_tracker_free include/linux/netdevice.h:4366 [inline]
 netdev_put include/linux/netdevice.h:4383 [inline]
 dst_destroy+0x108/0x3f0 net/core/dst.c:114
 rcu_do_batch kernel/rcu/tree.c:2605 [inline]
 rcu_core+0x79c/0x1530 kernel/rcu/tree.c:2861
 handle_softirqs+0x216/0x8e0 kernel/softirq.c:579
 do_softirq kernel/softirq.c:480 [inline]
 do_softirq+0xb2/0xf0 kernel/softirq.c:467
 </IRQ>
 <TASK>
 __local_bh_enable_ip+0x100/0x120 kernel/softirq.c:407
 spin_unlock_bh include/linux/spinlock.h:396 [inline]
 ptr_ring_consume_bh include/linux/ptr_ring.h:367 [inline]
 wg_packet_decrypt_worker+0x35d/0x540 drivers/net/wireguard/receive.c:499
 process_one_work+0x9cc/0x1b70 kernel/workqueue.c:3236
 process_scheduled_works kernel/workqueue.c:3319 [inline]
 rescuer_thread+0x620/0xea0 kernel/workqueue.c:3496
 kthread+0x3c5/0x780 kernel/kthread.c:464
 ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
 </TASK>

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/08/04 07:58 upstream 3c4a063b1f8a 7368264b .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-selinux-root INFO: task hung in wg_noise_handshake_begin_session
* Struck through repros no longer work on HEAD.