INFO: task hung in n_tty_poll (2)

5 views
Skip to first unread message

syzbot

unread,
Jun 5, 2022, 9:17:23 PM6/5/22
to syzkaller...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 501eec4f9e13 Linux 4.14.281
git tree: linux-4.14.y
console output: https://syzkaller.appspot.com/x/log.txt?x=15bfaff5f00000
kernel config: https://syzkaller.appspot.com/x/.config?x=f1fa63ddcfc7168c
dashboard link: https://syzkaller.appspot.com/bug?extid=fbbcb83fabc313112d43
compiler: gcc version 10.2.1 20210110 (Debian 10.2.1-6)
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=14f079aff00000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1582259ff00000

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

INFO: task syz-executor391:7978 blocked for more than 140 seconds.
Not tainted 4.14.281-syzkaller #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
syz-executor391 D27040 7978 7977 0x00000004
Call Trace:
context_switch kernel/sched/core.c:2811 [inline]
__schedule+0x88b/0x1de0 kernel/sched/core.c:3387
schedule+0x8d/0x1b0 kernel/sched/core.c:3431
schedule_timeout+0x80a/0xe90 kernel/time/timer.c:1724
do_wait_for_common kernel/sched/completion.c:91 [inline]
__wait_for_common kernel/sched/completion.c:112 [inline]
wait_for_common+0x272/0x430 kernel/sched/completion.c:123
flush_work+0x3fe/0x770 kernel/workqueue.c:2894
n_tty_poll+0x4de/0x7d0 drivers/tty/n_tty.c:2412
tty_poll+0x129/0x1a0 drivers/tty/tty_io.c:2102
do_select+0xa83/0x1290 fs/select.c:513
core_sys_select+0x32f/0x6a0 fs/select.c:656
do_pselect fs/select.c:733 [inline]
SYSC_pselect6 fs/select.c:774 [inline]
SyS_pselect6+0x358/0x3c0 fs/select.c:759
do_syscall_64+0x1d5/0x640 arch/x86/entry/common.c:292
entry_SYSCALL_64_after_hwframe+0x46/0xbb
RIP: 0033:0x7f4f60f1e3c9
RSP: 002b:00007fffb4b174f8 EFLAGS: 00000246 ORIG_RAX: 000000000000010e
RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f4f60f1e3c9
RDX: 0000000000000000 RSI: 00000000200000c0 RDI: 0000000000000040
RBP: 00007fffb4b17530 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000020000140 R11: 0000000000000246 R12: 00007f4f60ee1990
R13: 431bde82d7b634db R14: 0000000000000000 R15: 0000000000000000

Showing all locks held in the system:
1 lock held by khungtaskd/1532:
#0: (tasklist_lock){.+.+}, at: [<ffffffff87026b7c>] debug_show_all_locks+0x7c/0x21a kernel/locking/lockdep.c:4548
1 lock held by syz-executor391/7978:
#0: (&tty->ldisc_sem){++++}, at: [<ffffffff83552522>] tty_ldisc_ref_wait+0x22/0x80 drivers/tty/tty_ldisc.c:284

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

NMI backtrace for cpu 1
CPU: 1 PID: 1532 Comm: khungtaskd Not tainted 4.14.281-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:17 [inline]
dump_stack+0x1b2/0x281 lib/dump_stack.c:58
nmi_cpu_backtrace.cold+0x57/0x93 lib/nmi_backtrace.c:101
nmi_trigger_cpumask_backtrace+0x13a/0x180 lib/nmi_backtrace.c:62
trigger_all_cpu_backtrace include/linux/nmi.h:140 [inline]
check_hung_uninterruptible_tasks kernel/hung_task.c:195 [inline]
watchdog+0x5b9/0xb40 kernel/hung_task.c:274
kthread+0x30d/0x420 kernel/kthread.c:232
ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:404
Sending NMI from CPU 1 to CPUs 0:
NMI backtrace for cpu 0
CPU: 0 PID: 2874 Comm: kworker/u4:4 Not tainted 4.14.281-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Workqueue: events_unbound flush_to_ldisc
task: ffff8880ac2ce500 task.stack: ffff8880ac0d8000
RIP: 0010:mark_lock+0xa2/0x1050 kernel/locking/lockdep.c:3168
RSP: 0018:ffff8880ac0df770 EFLAGS: 00000806
RAX: dffffc0000000000 RBX: ffffffff8ba48d30 RCX: 1ffff11015859dce
RDX: 1ffffffff17491ac RSI: ffff8880ac2cee50 RDI: ffffffff8ba48d60
RBP: ffff8880ac2cee50 R08: 0000000000000001 R09: 0000000000040458
R10: ffff8880ac2cee50 R11: ffff8880ac2ce500 R12: 0000000000000100
R13: ffff8880ac2ce500 R14: ffff8880ac2cee70 R15: 0000000000000008
FS: 0000000000000000(0000) GS:ffff8880ba400000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f81c3892000 CR3: 00000000a1231000 CR4: 00000000003406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
__lock_acquire+0x5fc/0x3f20 kernel/locking/lockdep.c:3452
lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3998
__mutex_lock_common kernel/locking/mutex.c:756 [inline]
__mutex_lock+0xc4/0x1310 kernel/locking/mutex.c:893
commit_echoes+0x4c/0x1e0 drivers/tty/n_tty.c:778
n_tty_receive_char_fast drivers/tty/n_tty.c:1449 [inline]
n_tty_receive_buf_fast drivers/tty/n_tty.c:1609 [inline]
__receive_buf drivers/tty/n_tty.c:1644 [inline]
n_tty_receive_buf_common+0x1795/0x25a0 drivers/tty/n_tty.c:1742
tty_ldisc_receive_buf+0x9e/0x170 drivers/tty/tty_buffer.c:455
tty_port_default_receive_buf+0x6e/0xa0 drivers/tty/tty_port.c:37
receive_buf drivers/tty/tty_buffer.c:475 [inline]
flush_to_ldisc+0x1e9/0x440 drivers/tty/tty_buffer.c:527
process_one_work+0x793/0x14a0 kernel/workqueue.c:2117
worker_thread+0x5cc/0xff0 kernel/workqueue.c:2251
kthread+0x30d/0x420 kernel/kthread.c:232
ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:404
Code: 00 48 69 d8 50 01 00 00 48 81 eb 50 01 00 00 48 81 c3 00 db 9e 8b 48 8d 7b 30 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 07 0c 00 00 4c 89 e0 48 23 43 30 0f 84 9c 00
----------------
Code disassembly (best guess):
0: 00 48 69 add %cl,0x69(%rax)
3: d8 50 01 fcoms 0x1(%rax)
6: 00 00 add %al,(%rax)
8: 48 81 eb 50 01 00 00 sub $0x150,%rbx
f: 48 81 c3 00 db 9e 8b add $0xffffffff8b9edb00,%rbx
16: 48 8d 7b 30 lea 0x30(%rbx),%rdi
1a: 48 b8 00 00 00 00 00 movabs $0xdffffc0000000000,%rax
21: fc ff df
24: 48 89 fa mov %rdi,%rdx
27: 48 c1 ea 03 shr $0x3,%rdx
* 2b: 80 3c 02 00 cmpb $0x0,(%rdx,%rax,1) <-- trapping instruction
2f: 0f 85 07 0c 00 00 jne 0xc3c
35: 4c 89 e0 mov %r12,%rax
38: 48 23 43 30 and 0x30(%rbx),%rax
3c: 0f .byte 0xf
3d: 84 .byte 0x84
3e: 9c pushfq


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
syzbot can test patches for this issue, for details see:
https://goo.gl/tpsmEJ#testing-patches
Reply all
Reply to author
Forward
0 new messages