syzbot


KCSAN: data-race in first_packet_length / udp_poll

Status: fixed on 2019/11/23 02:56
Subsystems: net
[Documentation on labels]
Fix commit: 137a0dbe3426 net-backports: udp: use skb_queue_empty_lockless()
First crash: 1645d, last: 1638d

Sample crash report:
==================================================================
BUG: KCSAN: data-race in first_packet_length / udp_poll

read to 0xffff88812081eec0 of 8 bytes by task 7021 on cpu 1:
 skb_queue_empty include/linux/skbuff.h:1494 [inline]
 udp_poll+0x4f/0x110 net/ipv4/udp.c:2715
 sock_poll+0xed/0x250 net/socket.c:1256
 vfs_poll include/linux/poll.h:90 [inline]
 do_pollfd fs/select.c:859 [inline]
 do_poll fs/select.c:907 [inline]
 do_sys_poll+0x4ac/0x990 fs/select.c:1001
 __do_sys_ppoll fs/select.c:1101 [inline]
 __se_sys_ppoll fs/select.c:1081 [inline]
 __x64_sys_ppoll+0x161/0x1a0 fs/select.c:1081
 do_syscall_64+0xcc/0x370 arch/x86/entry/common.c:290
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

write to 0xffff88812081eec0 of 8 bytes by task 7022 on cpu 0:
 __skb_queue_splice include/linux/skbuff.h:1864 [inline]
 skb_queue_splice_tail_init include/linux/skbuff.h:1927 [inline]
 first_packet_length+0x1aa/0x2a0 net/ipv4/udp.c:1582
 udp_poll+0xea/0x110 net/ipv4/udp.c:2720
 sock_poll+0xed/0x250 net/socket.c:1256
 vfs_poll include/linux/poll.h:90 [inline]
 do_pollfd fs/select.c:859 [inline]
 do_poll fs/select.c:907 [inline]
 do_sys_poll+0x4ac/0x990 fs/select.c:1001
 __do_sys_ppoll fs/select.c:1101 [inline]
 __se_sys_ppoll fs/select.c:1081 [inline]
 __x64_sys_ppoll+0x161/0x1a0 fs/select.c:1081
 do_syscall_64+0xcc/0x370 arch/x86/entry/common.c:290
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 PID: 7022 Comm: syz-executor.5 Not tainted 5.4.0-rc3+ #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
==================================================================
Kernel panic - not syncing: panic_on_warn set ...
CPU: 0 PID: 7022 Comm: syz-executor.5 Not tainted 5.4.0-rc3+ #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0xf5/0x159 lib/dump_stack.c:113
 panic+0x210/0x640 kernel/panic.c:221
 kcsan_report.cold+0xc/0x10 kernel/kcsan/report.c:302
 __kcsan_setup_watchpoint+0x32e/0x4a0 kernel/kcsan/core.c:411
 __tsan_write8 kernel/kcsan/kcsan.c:36 [inline]
 __tsan_write8+0x32/0x40 kernel/kcsan/kcsan.c:36
 __skb_queue_splice include/linux/skbuff.h:1864 [inline]
 skb_queue_splice_tail_init include/linux/skbuff.h:1927 [inline]
 first_packet_length+0x1aa/0x2a0 net/ipv4/udp.c:1582
 udp_poll+0xea/0x110 net/ipv4/udp.c:2720
 sock_poll+0xed/0x250 net/socket.c:1256
 vfs_poll include/linux/poll.h:90 [inline]
 do_pollfd fs/select.c:859 [inline]
 do_poll fs/select.c:907 [inline]
 do_sys_poll+0x4ac/0x990 fs/select.c:1001
 __do_sys_ppoll fs/select.c:1101 [inline]
 __se_sys_ppoll fs/select.c:1081 [inline]
 __x64_sys_ppoll+0x161/0x1a0 fs/select.c:1081
 do_syscall_64+0xcc/0x370 arch/x86/entry/common.c:290
 entry_SYSCALL_64_after_hwframe+0x44/0xa9
RIP: 0033:0x459f49
Code: ad b6 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 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 0f 83 7b b6 fb ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007ff1daa30c78 EFLAGS: 00000246 ORIG_RAX: 000000000000010f
RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 0000000000459f49
RDX: 0000000000000000 RSI: 0000000000000002 RDI: 0000000020000080
RBP: 000000000075c118 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 00007ff1daa316d4
R13: 00000000004c7271 R14: 00000000004dcd90 R15: 00000000ffffffff
Kernel Offset: disabled
Rebooting in 86400 seconds..

Crashes (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2019/11/01 04:30 https://github.com/google/ktsan.git kcsan 05f2236801fe a41ca8fa .config console log report ci2-upstream-kcsan-gce
2019/10/25 04:25 https://github.com/google/ktsan.git kcsan 05f2236801fe d01bb02a .config console log report ci2-upstream-kcsan-gce
* Struck through repros no longer work on HEAD.