WARNING in io_req_complete_post
From: Hao Sun
Date: Wed Sep 08 2021 - 02:29:29 EST
Hello,
When using Healer to fuzz the latest Linux kernel, the following crash
was triggered.
HEAD commit: 4b93c544e90e-thunderbolt: test: split up test cases
git tree: upstream
console output:
https://drive.google.com/file/d/1Hvkzo710Vli_7jWgdBV8ClUcC4U7agZF/view?usp=sharing
kernel config: https://drive.google.com/file/d/1c0u2EeRDhRO-ZCxr9MP2VvAtJd6kfg-p/view?usp=sharing
C reproducer: https://drive.google.com/file/d/11lWS0MzNVzXpGOC58UD-YGro__PbzdhB/view?usp=sharing
Syzlang reproducer:
https://drive.google.com/file/d/1U1W85GSVcOOaTNmoyDmpSwADAGNB0QsJ/view?usp=sharing
If you fix this issue, please add the following tag to the commit:
Reported-by: Hao Sun <sunhao.th@xxxxxxxxx>
FAULT_INJECTION: forcing a failure.
name failslab, interval 1, probability 0, space 0, times 0
CPU: 0 PID: 10392 Comm: syz-executor Not tainted 5.14.0+ #1
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
1.13.0-1ubuntu1.1 04/01/2014
Call Trace:
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:105
fail_dump lib/fault-inject.c:52 [inline]
should_fail.cold+0x5/0xa lib/fault-inject.c:146
should_failslab+0x5/0x10 mm/slab_common.c:1326
slab_pre_alloc_hook mm/slab.h:494 [inline]
slab_alloc_node mm/slub.c:2880 [inline]
kmem_cache_alloc_node+0x67/0x380 mm/slub.c:2995
alloc_task_struct_node kernel/fork.c:171 [inline]
dup_task_struct kernel/fork.c:883 [inline]
copy_process+0x5df/0x73d0 kernel/fork.c:2027
create_io_thread+0xb6/0xf0 kernel/fork.c:2533
create_io_worker+0x25a/0x540 fs/io-wq.c:758
io_wqe_create_worker fs/io-wq.c:267 [inline]
io_wqe_enqueue+0x68c/0xba0 fs/io-wq.c:866
io_queue_async_work+0x28b/0x5d0 fs/io_uring.c:1473
__io_queue_sqe+0x6c3/0xc70 fs/io_uring.c:6933
io_queue_sqe fs/io_uring.c:6951 [inline]
io_submit_sqe fs/io_uring.c:7127 [inline]
io_submit_sqes+0x2082/0x9c00 fs/io_uring.c:7233
__do_sys_io_uring_enter fs/io_uring.c:9875 [inline]
__se_sys_io_uring_enter fs/io_uring.c:9817 [inline]
__x64_sys_io_uring_enter+0x7a9/0xe80 fs/io_uring.c:9817
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x4739cd
Code: 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa 48 89 f8 48
89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d
01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f8a08c68c58 EFLAGS: 00000246 ORIG_RAX: 00000000000001aa
RAX: ffffffffffffffda RBX: 000000000059c0a0 RCX: 00000000004739cd
RDX: 0000000000000000 RSI: 000000000000450c RDI: 0000000000000003
RBP: 00007f8a08c68c90 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000004
R13: 00007ffc718b80af R14: 00007ffc718b8250 R15: 00007f8a08c68dc0
------------[ cut here ]------------
WARNING: CPU: 0 PID: 10392 at fs/io_uring.c:1151 req_ref_put_and_test
fs/io_uring.c:1151 [inline]
WARNING: CPU: 0 PID: 10392 at fs/io_uring.c:1151 req_ref_put_and_test
fs/io_uring.c:1146 [inline]
WARNING: CPU: 0 PID: 10392 at fs/io_uring.c:1151
io_req_complete_post+0xf5b/0x1190 fs/io_uring.c:1794
Modules linked in:
CPU: 0 PID: 10392 Comm: syz-executor Not tainted 5.14.0+ #1
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
1.13.0-1ubuntu1.1 04/01/2014
RIP: 0010:req_ref_put_and_test fs/io_uring.c:1151 [inline]
RIP: 0010:req_ref_put_and_test fs/io_uring.c:1146 [inline]
RIP: 0010:io_req_complete_post+0xf5b/0x1190 fs/io_uring.c:1794
Code: ff 48 c7 c2 80 d3 9a 89 be b0 02 00 00 48 c7 c7 e0 d3 9a 89 c6
05 f4 60 75 0b 01 e8 6f dc 0c 07 e9 7c fe ff ff e8 a5 4c 92 ff <0f> 0b
e9 b6 fb ff ff e8 99 4c 92 ff 49 8d 7d 58 31 c9 ba 01 00 00
RSP: 0018:ffffc9000e727d78 EFLAGS: 00010216
RAX: 0000000000036964 RBX: ffff88801797da40 RCX: 0000000000040000
RDX: ffffc900011d1000 RSI: ffff88810e0bd580 RDI: 0000000000000002
RBP: ffff88810d7ba000 R08: ffffffff81e3d39b R09: 000000000000007f
R10: 0000000000000005 R11: ffffed1002f2fb53 R12: ffff88810d7ba540
R13: ffff88801797da9c R14: 0000000000100000 R15: ffff88810d7ba640
FS: 00007f8a08c69700(0000) GS:ffff888063e00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000593ad4 CR3: 000000001f854000 CR4: 0000000000350ef0
Call Trace:
tctx_task_work+0x1e5/0x570 fs/io_uring.c:2158
task_work_run+0xe0/0x1a0 kernel/task_work.c:164
tracehook_notify_signal include/linux/tracehook.h:212 [inline]
handle_signal_work kernel/entry/common.c:146 [inline]
exit_to_user_mode_loop kernel/entry/common.c:172 [inline]
exit_to_user_mode_prepare+0x232/0x2a0 kernel/entry/common.c:209
__syscall_exit_to_user_mode_work kernel/entry/common.c:291 [inline]
syscall_exit_to_user_mode+0x19/0x60 kernel/entry/common.c:302
do_syscall_64+0x42/0xb0 arch/x86/entry/common.c:86
entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x4739cd
Code: 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa 48 89 f8 48
89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d
01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f8a08c68c58 EFLAGS: 00000246 ORIG_RAX: 00000000000001aa
RAX: 0000000000000100 RBX: 000000000059c0a0 RCX: 00000000004739cd
RDX: 0000000000000000 RSI: 000000000000450c RDI: 0000000000000003
RBP: 00007f8a08c68c90 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000004
R13: 00007ffc718b80af R14: 00007ffc718b8250 R15: 00007f8a08c68dc0%