syzbot


BUG: sleeping function called from invalid context in sk_psock_stop

Status: upstream: reported C repro on 2022/06/10 14:23
Reported-by: syzbot+140186ceba0c496183bc@syzkaller.appspotmail.com
First crash: 17d, last: 9h02m

Cause bisection: introduced by (bisect log) :
commit d8616ee2affcff37c5d315310da557a694a3303d
Author: Wang Yufen <wangyufen@huawei.com>
Date: Tue May 24 07:53:11 2022 +0000

  bpf, sockmap: Fix sk->sk_forward_alloc warn_on in sk_stream_kill_queues

Crash: BUG: sleeping function called from invalid context in sock_map_destroy (log)
Repro: C syz .config
Patch testing requests:
Created Duration User Patch Repo Result
2022/06/11 02:00 18m hdanton@sina.com patch https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git ff539ac73ea5 OK log

Sample crash report:
BUG: sleeping function called from invalid context at kernel/workqueue.c:3010
in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 3742, name: syz-executor335
preempt_count: 201, expected: 0
RCU nest depth: 0, expected: 0
3 locks held by syz-executor335/3742:
 #0: ffff88806f9bca10 (&sb->s_type->i_mutex_key#10){+.+.}-{3:3}, at: inode_lock include/linux/fs.h:741 [inline]
 #0: ffff88806f9bca10 (&sb->s_type->i_mutex_key#10){+.+.}-{3:3}, at: __sock_release+0x86/0x280 net/socket.c:649
 #1: ffff888020fa9930 (sk_lock-AF_INET){+.+.}-{0:0}, at: lock_sock include/net/sock.h:1664 [inline]
 #1: ffff888020fa9930 (sk_lock-AF_INET){+.+.}-{0:0}, at: tcp_close+0x1e/0xc0 net/ipv4/tcp.c:2930
 #2: ffff888020fa98b0 (slock-AF_INET){+.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:349 [inline]
 #2: ffff888020fa98b0 (slock-AF_INET){+.-.}-{2:2}, at: __tcp_close+0x4d3/0xf50 net/ipv4/tcp.c:2853
Preemption disabled at:
[<ffffffff87da602b>] local_bh_disable include/linux/bottom_half.h:20 [inline]
[<ffffffff87da602b>] __tcp_close+0x4cb/0xf50 net/ipv4/tcp.c:2852
CPU: 0 PID: 3742 Comm: syz-executor335 Not tainted 5.19.0-rc2-syzkaller-00477-g85763435d5b5 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106
 __might_resched.cold+0x222/0x26b kernel/sched/core.c:9791
 start_flush_work kernel/workqueue.c:3010 [inline]
 __flush_work+0x109/0xb10 kernel/workqueue.c:3074
 __cancel_work_timer+0x3f9/0x570 kernel/workqueue.c:3162
 sk_psock_stop+0x4cb/0x630 net/core/skmsg.c:802
 sock_map_destroy+0x333/0x760 net/core/sock_map.c:1581
 inet_csk_destroy_sock+0x196/0x440 net/ipv4/inet_connection_sock.c:1011
 __tcp_close+0xb92/0xf50 net/ipv4/tcp.c:2919
 tcp_close+0x29/0xc0 net/ipv4/tcp.c:2931
 sock_map_close+0x3b9/0x780 net/core/sock_map.c:1607
 inet_release+0x12e/0x280 net/ipv4/af_inet.c:428
 __sock_release+0xcd/0x280 net/socket.c:650
 sock_close+0x18/0x20 net/socket.c:1365
 __fput+0x277/0x9d0 fs/file_table.c:317
 task_work_run+0xdd/0x1a0 kernel/task_work.c:177
 get_signal+0x1c5/0x2600 kernel/signal.c:2634
 arch_do_signal_or_restart+0x82/0x2300 arch/x86/kernel/signal.c:869
 exit_to_user_mode_loop kernel/entry/common.c:166 [inline]
 exit_to_user_mode_prepare+0x15f/0x250 kernel/entry/common.c:201
 __syscall_exit_to_user_mode_work kernel/entry/common.c:283 [inline]
 syscall_exit_to_user_mode+0x19/0x50 kernel/entry/common.c:294
 do_syscall_64+0x42/0xb0 arch/x86/entry/common.c:86
 entry_SYSCALL_64_after_hwframe+0x46/0xb0
RIP: 0033:0x7f5d051591c9
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 a1 15 00 00 90 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 b8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f5d05107308 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
RAX: 0000000000278000 RBX: 00007f5d051e14c8 RCX: 00007f5d051591c9
RDX: ffffffffffffff60 RSI: 00000000200000c0 RDI: 0000000000000003
RBP: 00007f5d051e14c0 R08: 0000000000000000 R09: 0000000000001500
R10: 000000000000f401 R11: 0000000000000246 R12: 00007f5d051ae4d4
R13: 00007fff76690a4f R14: 00007f5d05107400 R15: 0000000000022000
 </TASK>

Crashes (111):
Manager Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Title
ci-upstream-net-kasan-gce 2022/06/23 17:43 net-next 85763435d5b5 912f5df7 .config log report syz C BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-linux-next-kasan-gce-root 2022/06/09 20:02 linux-next ff539ac73ea5 0d5abf15 .config log report syz C BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/25 00:43 net-next 5d04b0b634bb a5dbd430 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/24 19:53 net-next 93817be8b62c a5dbd430 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/24 16:10 net-next 93817be8b62c a5dbd430 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/24 06:47 net-next 85763435d5b5 912f5df7 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/24 00:46 net-next 85763435d5b5 912f5df7 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/23 21:55 net-next 85763435d5b5 912f5df7 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/23 16:47 net-next 85763435d5b5 912f5df7 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/23 15:42 net-next 85763435d5b5 912f5df7 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/23 14:39 net-next 85763435d5b5 912f5df7 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/23 12:55 net-next 6dd4142fb5a9 912f5df7 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/23 06:08 net-next 6dd4142fb5a9 912f5df7 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/23 01:55 net-next 6dd4142fb5a9 912f5df7 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/22 22:38 net-next 6dd4142fb5a9 912f5df7 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/22 19:11 net-next a80d8fb70cc7 0fc5c330 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/22 10:18 net-next 8720bd951b8e 0fc5c330 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/21 16:46 net-next 4336487e30c3 0fc5c330 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/21 10:07 net-next 4336487e30c3 0fc5c330 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/21 04:15 net-next 4336487e30c3 0fc5c330 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/21 03:09 net-next 4336487e30c3 0fc5c330 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/20 22:26 net-next a56b158a5078 8d15e28d .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/20 20:50 net-next a56b158a5078 8d15e28d .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/19 22:31 net-next 9776fe0f424b 8f633d84 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/19 10:19 net-next dbca1596bbb0 8f633d84 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/19 07:47 net-next dbca1596bbb0 8f633d84 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/19 05:05 net-next dbca1596bbb0 8f633d84 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/18 20:54 net-next dbca1596bbb0 8f633d84 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/18 13:28 net-next 382f99c442b3 8f633d84 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-net-kasan-gce 2022/06/18 05:07 net-next 382f99c442b3 8f633d84 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-linux-next-kasan-gce-root 2022/06/25 02:21 linux-next 2f9cb3d3bd73 a371c43c .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-linux-next-kasan-gce-root 2022/06/24 12:54 linux-next 2f9cb3d3bd73 a5dbd430 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-linux-next-kasan-gce-root 2022/06/24 08:46 linux-next 2f9cb3d3bd73 a5dbd430 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-linux-next-kasan-gce-root 2022/06/24 02:56 linux-next 08897940f458 912f5df7 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-linux-next-kasan-gce-root 2022/06/23 10:01 linux-next 08897940f458 912f5df7 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-linux-next-kasan-gce-root 2022/06/23 00:49 linux-next ac0ba5454ca8 912f5df7 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-linux-next-kasan-gce-root 2022/06/22 21:20 linux-next ac0ba5454ca8 912f5df7 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-linux-next-kasan-gce-root 2022/06/22 17:11 linux-next ac0ba5454ca8 0fc5c330 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-linux-next-kasan-gce-root 2022/06/22 13:26 linux-next ac0ba5454ca8 0fc5c330 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-linux-next-kasan-gce-root 2022/06/22 08:44 linux-next 34d1d36073ea 0fc5c330 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-linux-next-kasan-gce-root 2022/06/21 12:37 linux-next 34d1d36073ea 0fc5c330 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-linux-next-kasan-gce-root 2022/06/18 09:20 linux-next 07dc787be231 8f633d84 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-linux-next-kasan-gce-root 2022/06/18 01:34 linux-next 07dc787be231 cb58b3b2 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-linux-next-kasan-gce-root 2022/06/17 00:11 linux-next c6d7e3b385f1 1719ee24 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-linux-next-kasan-gce-root 2022/06/16 16:05 linux-next c6d7e3b385f1 1719ee24 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop
ci-upstream-linux-next-kasan-gce-root 2022/06/08 08:21 linux-next 03c312cc5f47 b2706118 .config log report info BUG: sleeping function called from invalid context in sk_psock_stop