Re: [syzbot] [net] INFO: task hung in tun_chr_close (5)

syzbot
2024-11-19T01:31:21Z

syzbot has found a reproducer for the following issue on:

HEAD commit: 9fb2cfa4635a Merge tag 'pull-ufs' of git://git.kernel.org/..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=11a57378580000
kernel config: https://syzkaller.appspot.com/x/.config?x=e31661728c1a4027
dashboard link: https://syzkaller.appspot.com/bug?extid=b0ae8f1abf7d891e0426
compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1026f2e8580000

Downloadable assets:
disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/7feb34a89c2a/non_bootable_disk-9fb2cfa4.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/e676eb2a9e5f/vmlinux-9fb2cfa4.xz
kernel image: https://storage.googleapis.com/syzbot-assets/abff576e0e8f/bzImage-9fb2cfa4.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+b0ae8f1abf7d891e0426@syzkaller.appspotmail.com

INFO: task syz-executor:5443 blocked for more than 143 seconds.
Not tainted 6.12.0-syzkaller-00233-g9fb2cfa4635a #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:syz-executor state:D stack:20280 pid:5443 tgid:5443 ppid:1 flags:0x00004006
Call Trace:
<TASK>
context_switch kernel/sched/core.c:5328 [inline]
__schedule+0x184f/0x4c30 kernel/sched/core.c:6693
__schedule_loop kernel/sched/core.c:6770 [inline]
schedule+0x14b/0x320 kernel/sched/core.c:6785
schedule_preempt_disabled+0x13/0x30 kernel/sched/core.c:6842
__mutex_lock_common kernel/locking/mutex.c:684 [inline]
__mutex_lock+0x6a7/0xd70 kernel/locking/mutex.c:752
tun_detach drivers/net/tun.c:698 [inline]
tun_chr_close+0x3b/0x1b0 drivers/net/tun.c:3517
__fput+0x23c/0xa50 fs/file_table.c:450
task_work_run+0x24f/0x310 kernel/task_work.c:239
exit_task_work include/linux/task_work.h:43 [inline]
do_exit+0xa2f/0x28e0 kernel/exit.c:938
do_group_exit+0x207/0x2c0 kernel/exit.c:1087
get_signal+0x16a3/0x1740 kernel/signal.c:2918
arch_do_signal_or_restart+0x96/0x860 arch/x86/kernel/signal.c:337
exit_to_user_mode_loop kernel/entry/common.c:111 [inline]
exit_to_user_mode_prepare include/linux/entry-common.h:328 [inline]
__syscall_exit_to_user_mode_work kernel/entry/common.c:207 [inline]
syscall_exit_to_user_mode+0xc9/0x370 kernel/entry/common.c:218
do_syscall_64+0x100/0x230 arch/x86/entry/common.c:89
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f250b78049a
RSP: 002b:00007ffd42ecadc8 EFLAGS: 00000246 ORIG_RAX: 0000000000000037
RAX: 0000000000000000 RBX: 00007ffd42ecadf0 RCX: 00007f250b78049a
RDX: 0000000000000040 RSI: 0000000000000000 RDI: 0000000000000003
RBP: 0000000000000003 R08: 00007ffd42ecadec R09: 00007ffd42ecb207
R10: 00007ffd42ecadf0 R11: 0000000000000246 R12: 00007f250b90a500
R13: 00007ffd42ecadec R14: 0000000000000000 R15: 00007f250b90c000
</TASK>
INFO: task syz-executor:5449 blocked for more than 148 seconds.
Not tainted 6.12.0-syzkaller-00233-g9fb2cfa4635a #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:syz-executor state:D stack:20752 pid:5449 tgid:5449 ppid:1 flags:0x00004006
Call Trace:
<TASK>
context_switch kernel/sched/core.c:5328 [inline]
__schedule+0x184f/0x4c30 kernel/sched/core.c:6693
__schedule_loop kernel/sched/core.c:6770 [inline]
schedule+0x14b/0x320 kernel/sched/core.c:6785
schedule_preempt_disabled+0x13/0x30 kernel/sched/core.c:6842
__mutex_lock_common kernel/locking/mutex.c:684 [inline]
__mutex_lock+0x6a7/0xd70 kernel/locking/mutex.c:752
tun_detach drivers/net/tun.c:698 [inline]
tun_chr_close+0x3b/0x1b0 drivers/net/tun.c:3517
__fput+0x23c/0xa50 fs/file_table.c:450
task_work_run+0x24f/0x310 kernel/task_work.c:239
exit_task_work include/linux/task_work.h:43 [inline]
do_exit+0xa2f/0x28e0 kernel/exit.c:938
do_group_exit+0x207/0x2c0 kernel/exit.c:1087
get_signal+0x16a3/0x1740 kernel/signal.c:2918
arch_do_signal_or_restart+0x96/0x860 arch/x86/kernel/signal.c:337
exit_to_user_mode_loop kernel/entry/common.c:111 [inline]
exit_to_user_mode_prepare include/linux/entry-common.h:328 [inline]
__syscall_exit_to_user_mode_work kernel/entry/common.c:207 [inline]
syscall_exit_to_user_mode+0xc9/0x370 kernel/entry/common.c:218
do_syscall_64+0x100/0x230 arch/x86/entry/common.c:89
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f853b18049a
RSP: 002b:00007fff077d36d8 EFLAGS: 00000202 ORIG_RAX: 0000000000000037
RAX: 0000000000000000 RBX: 00007fff077d3760 RCX: 00007f853b18049a
RDX: 0000000000000041 RSI: 0000000000000000 RDI: 0000000000000003
RBP: 0000000000000003 R08: 00007fff077d36fc R09: 00007fff077d3b17
R10: 00007fff077d3760 R11: 0000000000000202 R12: 00007f853b30b280
R13: 00007fff077d36fc R14: 0000000000000000 R15: 00007f853b30c000
</TASK>
INFO: task kworker/0:8:5617 blocked for more than 152 seconds.
Not tainted 6.12.0-syzkaller-00233-g9fb2cfa4635a #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:kworker/0:8 state:D stack:25104 pid:5617 tgid:5617 ppid:2 flags:0x00004000
Workqueue: events switchdev_deferred_process_work
Call Trace:
<TASK>
context_switch kernel/sched/core.c:5328 [inline]
__schedule+0x184f/0x4c30 kernel/sched/core.c:6693

---
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.