syzbot


INFO: task hung in wg_noise_handshake_consume_initiation

Status: auto-closed as invalid on 2020/11/10 10:04
Subsystems: wireguard
[Documentation on labels]
First crash: 1832d, last: 1773d
Similar bugs (3)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream INFO: task hung in wg_noise_handshake_consume_initiation (4) wireguard 2 133d 153d 0/29 auto-obsoleted due to no activity on 2025/05/08 02:39
upstream INFO: task hung in wg_noise_handshake_consume_initiation (3) wireguard 8 253d 430d 0/29 auto-obsoleted due to no activity on 2025/01/07 21:33
upstream INFO: task hung in wg_noise_handshake_consume_initiation (2) wireguard 1 738d 738d 0/29 auto-obsoleted due to no activity on 2023/08/12 04:36

Sample crash report:
INFO: task kworker/0:2:2607 blocked for more than 143 seconds.
      Not tainted 5.8.0-syzkaller #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
kworker/0:2     D24896  2607      2 0x00004000
Workqueue: wg-kex-wg2 wg_packet_handshake_receive_worker
Call Trace:
 context_switch kernel/sched/core.c:3778 [inline]
 __schedule+0x8e5/0x21e0 kernel/sched/core.c:4527
 schedule+0xd0/0x2a0 kernel/sched/core.c:4602
 rwsem_down_read_slowpath+0x2f7/0xc90 kernel/locking/rwsem.c:1099
 __down_read kernel/locking/rwsem.c:1341 [inline]
 down_read+0x1ec/0x420 kernel/locking/rwsem.c:1494
 wg_noise_handshake_consume_initiation+0x6dd/0x9d0 drivers/net/wireguard/noise.c:602
 wg_receive_handshake_packet drivers/net/wireguard/receive.c:151 [inline]
 wg_packet_handshake_receive_worker+0x593/0x730 drivers/net/wireguard/receive.c:220
 process_one_work+0x94c/0x1670 kernel/workqueue.c:2269
 worker_thread+0x64c/0x1120 kernel/workqueue.c:2415
 kthread+0x3b5/0x4a0 kernel/kthread.c:292
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294
INFO: task kworker/1:3:7388 blocked for more than 145 seconds.
      Not tainted 5.8.0-syzkaller #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
kworker/1:3     D24464  7388      2 0x00004000
Workqueue: wg-kex-wg1 wg_packet_handshake_receive_worker
Call Trace:
 context_switch kernel/sched/core.c:3778 [inline]
 __schedule+0x8e5/0x21e0 kernel/sched/core.c:4527
 schedule+0xd0/0x2a0 kernel/sched/core.c:4602
 rwsem_down_read_slowpath+0x2f7/0xc90 kernel/locking/rwsem.c:1099
 __down_read kernel/locking/rwsem.c:1341 [inline]
 down_read+0x1ec/0x420 kernel/locking/rwsem.c:1494
 wg_noise_handshake_consume_initiation+0x6dd/0x9d0 drivers/net/wireguard/noise.c:602
 wg_receive_handshake_packet drivers/net/wireguard/receive.c:151 [inline]
 wg_packet_handshake_receive_worker+0x593/0x730 drivers/net/wireguard/receive.c:220
 process_one_work+0x94c/0x1670 kernel/workqueue.c:2269
 worker_thread+0x64c/0x1120 kernel/workqueue.c:2415
 kthread+0x3b5/0x4a0 kernel/kthread.c:292
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294
INFO: task kworker/u4:0:13616 blocked for more than 147 seconds.
      Not tainted 5.8.0-syzkaller #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
kworker/u4:0    D25888 13616      2 0x00004000
Workqueue: wg-kex-wg1 wg_packet_handshake_send_worker
Call Trace:
 context_switch kernel/sched/core.c:3778 [inline]
 __schedule+0x8e5/0x21e0 kernel/sched/core.c:4527
 schedule+0xd0/0x2a0 kernel/sched/core.c:4602
 rwsem_down_write_slowpath+0x603/0xc60 kernel/locking/rwsem.c:1235
 __down_write kernel/locking/rwsem.c:1389 [inline]
 down_write+0x137/0x150 kernel/locking/rwsem.c:1532
 wg_noise_handshake_create_initiation+0xc3/0x6a0 drivers/net/wireguard/noise.c:500
 wg_packet_send_handshake_initiation+0x175/0x240 drivers/net/wireguard/send.c:34
 wg_packet_handshake_send_worker+0x18/0x30 drivers/net/wireguard/send.c:51
 process_one_work+0x94c/0x1670 kernel/workqueue.c:2269
 worker_thread+0x64c/0x1120 kernel/workqueue.c:2415
 kthread+0x3b5/0x4a0 kernel/kthread.c:292
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

Showing all locks held in the system:
2 locks held by kthreadd/2:
5 locks held by kworker/1:1/23:
4 locks held by kworker/u4:6/312:
 #0: ffff88809c6f1138 ((wq_completion)wg-kex-wg2#5){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
 #0: ffff88809c6f1138 ((wq_completion)wg-kex-wg2#5){+.+.}-{0:0}, at: atomic64_set include/asm-generic/atomic-instrumented.h:856 [inline]
 #0: ffff88809c6f1138 ((wq_completion)wg-kex-wg2#5){+.+.}-{0:0}, at: atomic_long_set include/asm-generic/atomic-long.h:41 [inline]
 #0: ffff88809c6f1138 ((wq_completion)wg-kex-wg2#5){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:616 [inline]
 #0: ffff88809c6f1138 ((wq_completion)wg-kex-wg2#5){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:643 [inline]
 #0: ffff88809c6f1138 ((wq_completion)wg-kex-wg2#5){+.+.}-{0:0}, at: process_one_work+0x82b/0x1670 kernel/workqueue.c:2240
 #1: ffffc90001ee7da8 ((work_completion)(&peer->transmit_handshake_work)){+.+.}-{0:0}, at: process_one_work+0x85f/0x1670 kernel/workqueue.c:2244
 #2: ffff888055311088 (&wg->static_identity.lock){++++}-{3:3}, at: wg_noise_handshake_create_initiation+0xaf/0x6a0 drivers/net/wireguard/noise.c:499
 #3: ffff88804e664690 (&handshake->lock){++++}-{3:3}, at: wg_noise_handshake_create_initiation+0xc3/0x6a0 drivers/net/wireguard/noise.c:500
1 lock held by khungtaskd/1169:
 #0: ffffffff89bd62c0 (rcu_read_lock){....}-{1:2}, at: debug_show_all_locks+0x53/0x260 kernel/locking/lockdep.c:5825
1 lock held by kswapd1/1690:
4 locks held by kworker/0:2/2607:
 #0: ffff888055298138 ((wq_completion)wg-kex-wg2#6){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
 #0: ffff888055298138 ((wq_completion)wg-kex-wg2#6){+.+.}-{0:0}, at: atomic64_set include/asm-generic/atomic-instrumented.h:856 [inline]
 #0: ffff888055298138 ((wq_completion)wg-kex-wg2#6){+.+.}-{0:0}, at: atomic_long_set include/asm-generic/atomic-long.h:41 [inline]
 #0: ffff888055298138 ((wq_completion)wg-kex-wg2#6){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:616 [inline]
 #0: ffff888055298138 ((wq_completion)wg-kex-wg2#6){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:643 [inline]
 #0: ffff888055298138 ((wq_completion)wg-kex-wg2#6){+.+.}-{0:0}, at: process_one_work+0x82b/0x1670 kernel/workqueue.c:2240
 #1: ffffc90008aa7da8 ((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))) *)((worker)))); (typeof((typeof(*((worker))) *)((worker)))) (__ptr + (((__per_cpu_offset[(cpu)])))); }); })->work)){+.+.}-{0:0}, at: process_one_work+0x85f/0x1670 kernel/workqueue.c:2244
 #2: ffff888055311088 (&wg->static_identity.lock){++++}-{3:3}, at: wg_noise_handshake_consume_initiation+0xf1/0x9d0 drivers/net/wireguard/noise.c:568
 #3: ffff88804e664690 (&handshake->lock){++++}-{3:3}, at: wg_noise_handshake_consume_initiation+0x6dd/0x9d0 drivers/net/wireguard/noise.c:602
4 locks held by kworker/1:2/2625:
2 locks held by systemd-journal/3898:
1 lock held by rsyslogd/6514:
1 lock held by in:imklog/6518:
1 lock held by cron/6520:
2 locks held by syz-fuzzer/6836:
4 locks held by kworker/1:3/7388:
 #0: ffff8880953aed38 ((wq_completion)wg-kex-wg1#6){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
 #0: ffff8880953aed38 ((wq_completion)wg-kex-wg1#6){+.+.}-{0:0}, at: atomic64_set include/asm-generic/atomic-instrumented.h:856 [inline]
 #0: ffff8880953aed38 ((wq_completion)wg-kex-wg1#6){+.+.}-{0:0}, at: atomic_long_set include/asm-generic/atomic-long.h:41 [inline]
 #0: ffff8880953aed38 ((wq_completion)wg-kex-wg1#6){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:616 [inline]
 #0: ffff8880953aed38 ((wq_completion)wg-kex-wg1#6){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:643 [inline]
 #0: ffff8880953aed38 ((wq_completion)wg-kex-wg1#6){+.+.}-{0:0}, at: process_one_work+0x82b/0x1670 kernel/workqueue.c:2240
 #1: ffffc900091d7da8 ((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))) *)((worker)))); (typeof((typeof(*((worker))) *)((worker)))) (__ptr + (((__per_cpu_offset[(cpu)])))); }); })->work)){+.+.}-{0:0}, at: process_one_work+0x85f/0x1670 kernel/workqueue.c:2244
 #2: ffff888055649088 (&wg->static_identity.lock){++++}-{3:3}, at: wg_noise_handshake_consume_initiation+0xf1/0x9d0 drivers/net/wireguard/noise.c:568
 #3: ffff88804e5f8690 (&handshake->lock){++++}-{3:3}, at: wg_noise_handshake_consume_initiation+0x6dd/0x9d0 drivers/net/wireguard/noise.c:602
4 locks held by kworker/u4:3/6530:
 #0: ffff88809d7e5138 ((wq_completion)wg-kex-wg1#5){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
 #0: ffff88809d7e5138 ((wq_completion)wg-kex-wg1#5){+.+.}-{0:0}, at: atomic64_set include/asm-generic/atomic-instrumented.h:856 [inline]
 #0: ffff88809d7e5138 ((wq_completion)wg-kex-wg1#5){+.+.}-{0:0}, at: atomic_long_set include/asm-generic/atomic-long.h:41 [inline]
 #0: ffff88809d7e5138 ((wq_completion)wg-kex-wg1#5){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:616 [inline]
 #0: ffff88809d7e5138 ((wq_completion)wg-kex-wg1#5){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:643 [inline]
 #0: ffff88809d7e5138 ((wq_completion)wg-kex-wg1#5){+.+.}-{0:0}, at: process_one_work+0x82b/0x1670 kernel/workqueue.c:2240
 #1: ffffc900056b7da8 ((work_completion)(&peer->transmit_handshake_work)){+.+.}-{0:0}, at: process_one_work+0x85f/0x1670 kernel/workqueue.c:2244
 #2: ffff888055649088 (&wg->static_identity.lock){++++}-{3:3}, at: wg_noise_handshake_create_initiation+0xaf/0x6a0 drivers/net/wireguard/noise.c:499
 #3: ffff88804e5f8690 (&handshake->lock){++++}-{3:3}, at: wg_noise_handshake_create_initiation+0xc3/0x6a0 drivers/net/wireguard/noise.c:500
5 locks held by kworker/0:4/12808:
4 locks held by kworker/u4:0/13616:
 #0: ffff888099784138 ((wq_completion)wg-kex-wg1#11){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
 #0: ffff888099784138 ((wq_completion)wg-kex-wg1#11){+.+.}-{0:0}, at: atomic64_set include/asm-generic/atomic-instrumented.h:856 [inline]
 #0: ffff888099784138 ((wq_completion)wg-kex-wg1#11){+.+.}-{0:0}, at: atomic_long_set include/asm-generic/atomic-long.h:41 [inline]
 #0: ffff888099784138 ((wq_completion)wg-kex-wg1#11){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:616 [inline]
 #0: ffff888099784138 ((wq_completion)wg-kex-wg1#11){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:643 [inline]
 #0: ffff888099784138 ((wq_completion)wg-kex-wg1#11){+.+.}-{0:0}, at: process_one_work+0x82b/0x1670 kernel/workqueue.c:2240
 #1: ffffc900065cfda8 ((work_completion)(&peer->transmit_handshake_work)){+.+.}-{0:0}, at: process_one_work+0x85f/0x1670 kernel/workqueue.c:2244
 #2: ffff88804ec6d088 (&wg->static_identity.lock){++++}-{3:3}, at: wg_noise_handshake_create_initiation+0xaf/0x6a0 drivers/net/wireguard/noise.c:499
 #3: ffff88804c2ce690 (&handshake->lock){++++}-{3:3}, at: wg_noise_handshake_create_initiation+0xc3/0x6a0 drivers/net/wireguard/noise.c:500
4 locks held by kworker/0:0/13884:
4 locks held by kworker/1:0/13943:
 #0: ffff888091fba938 ((wq_completion)wg-kex-wg0#10){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
 #0: ffff888091fba938 ((wq_completion)wg-kex-wg0#10){+.+.}-{0:0}, at: atomic64_set include/asm-generic/atomic-instrumented.h:856 [inline]
 #0: ffff888091fba938 ((wq_completion)wg-kex-wg0#10){+.+.}-{0:0}, at: atomic_long_set include/asm-generic/atomic-long.h:41 [inline]
 #0: ffff888091fba938 ((wq_completion)wg-kex-wg0#10){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:616 [inline]
 #0: ffff888091fba938 ((wq_completion)wg-kex-wg0#10){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:643 [inline]
 #0: ffff888091fba938 ((wq_completion)wg-kex-wg0#10){+.+.}-{0:0}, at: process_one_work+0x82b/0x1670 kernel/workqueue.c:2240
 #1: ffffc900090f7da8 ((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))) *)((worker)))); (typeof((typeof(*((worker))) *)((worker)))) (__ptr + (((__per_cpu_offset[(cpu)])))); }); })->work)){+.+.}-{0:0}, at: process_one_work+0x85f/0x1670 kernel/workqueue.c:2244
 #2: ffff88804f6e5088 (&wg->static_identity.lock){++++}-{3:3}, at: wg_noise_handshake_consume_initiation+0xf1/0x9d0 drivers/net/wireguard/noise.c:568
 #3: ffff888095a9c690 (&handshake->lock){++++}-{3:3}, at: wg_noise_handshake_consume_initiation+0x6dd/0x9d0 drivers/net/wireguard/noise.c:602
4 locks held by kworker/u4:1/14277:
 #0: ffff8880a620f138 ((wq_completion)wg-kex-wg0#9){+.+.}-{0:0}, at: arch_atomic64_set arch/x86/include/asm/atomic64_64.h:34 [inline]
 #0: ffff8880a620f138 ((wq_completion)wg-kex-wg0#9){+.+.}-{0:0}, at: atomic64_set include/asm-generic/atomic-instrumented.h:856 [inline]
 #0: ffff8880a620f138 ((wq_completion)wg-kex-wg0#9){+.+.}-{0:0}, at: atomic_long_set include/asm-generic/atomic-long.h:41 [inline]
 #0: ffff8880a620f138 ((wq_completion)wg-kex-wg0#9){+.+.}-{0:0}, at: set_work_data kernel/workqueue.c:616 [inline]
 #0: ffff8880a620f138 ((wq_completion)wg-kex-wg0#9){+.+.}-{0:0}, at: set_work_pool_and_clear_pending kernel/workqueue.c:643 [inline]
 #0: ffff8880a620f138 ((wq_completion)wg-kex-wg0#9){+.+.}-{0:0}, at: process_one_work+0x82b/0x1670 kernel/workqueue.c:2240
 #1: ffffc90015fefda8 ((work_completion)(&peer->transmit_handshake_work)){+.+.}-{0:0}, at: process_one_work+0x85f/0x1670 kernel/workqueue.c:2244
 #2: ffff88804f6e5088 (&wg->static_identity.lock){++++}-{3:3}, at: wg_noise_handshake_create_initiation+0xaf/0x6a0 drivers/net/wireguard/noise.c:499
 #3: ffff888095a9c690 (&handshake->lock){++++}-{3:3}, at: wg_noise_handshake_create_initiation+0xc3/0x6a0 drivers/net/wireguard/noise.c:500

Crashes (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2020/08/12 09:57 upstream c636eef2ee36 bb3e5fe6 .config console log report ci-upstream-kasan-gce-selinux-root
2020/06/14 01:04 upstream 7ae77150d94d dbce178a .config console log report ci-upstream-kasan-gce-selinux-root
* Struck through repros no longer work on HEAD.