syzbot


KCSAN: data-race in pollwake / pollwake (3)

Status: auto-closed as invalid on 2020/12/21 11:54
Subsystems: fs
[Documentation on labels]
Reported-by: syzbot+0dc0743ccfd78e35b8a3@syzkaller.appspotmail.com
First crash: 1279d, last: 1264d
Similar bugs (3)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in pollwake / pollwake (2) fs 2 1556d 1597d 0/26 auto-closed as invalid on 2020/03/29 13:20
upstream KCSAN: data-race in pollwake / pollwake (4) ext4 200 16d 137d 0/26 moderation: reported on 2023/12/08 00:04
upstream KCSAN: data-race in pollwake / pollwake fs 1 1642d 1642d 0/26 closed as invalid on 2019/11/19 13:44

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

write to 0xffffc90000f43a70 of 4 bytes by interrupt on cpu 1:
 __pollwake fs/select.c:197 [inline]
 pollwake+0xa7/0xf0 fs/select.c:217
 __wake_up_common+0xbc/0x130 kernel/sched/wait.c:93
 __wake_up_common_lock kernel/sched/wait.c:123 [inline]
 __wake_up_sync_key+0x83/0xc0 kernel/sched/wait.c:190
 sock_def_readable+0x61/0xe0 net/core/sock.c:2889
 tcp_data_ready net/ipv4/tcp_input.c:4915 [inline]
 tcp_data_queue+0x1a70/0x3190 net/ipv4/tcp_input.c:4980
 tcp_rcv_established+0x653/0x1450 net/ipv4/tcp_input.c:5868
 tcp_v4_do_rcv+0x278/0x4a0 net/ipv4/tcp_ipv4.c:1652
 tcp_v4_rcv+0x2101/0x2370 net/ipv4/tcp_ipv4.c:2034
 ip_protocol_deliver_rcu+0x1f9/0x3e0 net/ipv4/ip_input.c:204
 ip_local_deliver_finish net/ipv4/ip_input.c:231 [inline]
 NF_HOOK include/linux/netfilter.h:301 [inline]
 ip_local_deliver+0x1c0/0x280 net/ipv4/ip_input.c:252
 dst_input include/net/dst.h:449 [inline]
 ip_sublist_rcv_finish net/ipv4/ip_input.c:550 [inline]
 ip_list_rcv_finish net/ipv4/ip_input.c:600 [inline]
 ip_sublist_rcv+0x4c4/0x590 net/ipv4/ip_input.c:608
 ip_list_rcv+0x262/0x290 net/ipv4/ip_input.c:643
 __netif_receive_skb_list_ptype net/core/dev.c:5358 [inline]
 __netif_receive_skb_list_core+0x34b/0x450 net/core/dev.c:5406
 __netif_receive_skb_list+0x262/0x2e0 net/core/dev.c:5458
 netif_receive_skb_list_internal+0xda/0x330 net/core/dev.c:5568
 gro_normal_list net/core/dev.c:5722 [inline]
 napi_complete_done+0x1b2/0x420 net/core/dev.c:6447
 virtqueue_napi_complete+0x28/0x80 drivers/net/virtio_net.c:334
 virtnet_poll+0x607/0x730 drivers/net/virtio_net.c:1460
 napi_poll+0x178/0x4c0 net/core/dev.c:6763
 net_rx_action+0x17a/0x480 net/core/dev.c:6833
 __do_softirq+0x12c/0x2b1 kernel/softirq.c:298
 asm_call_irq_on_stack+0xf/0x20
 __run_on_irqstack arch/x86/include/asm/irq_stack.h:26 [inline]
 run_on_irqstack_cond arch/x86/include/asm/irq_stack.h:77 [inline]
 do_softirq_own_stack+0x32/0x40 arch/x86/kernel/irq_64.c:77
 invoke_softirq kernel/softirq.c:393 [inline]
 __irq_exit_rcu+0xb2/0xc0 kernel/softirq.c:423
 common_interrupt+0xb5/0x130 arch/x86/kernel/irq.c:239
 asm_common_interrupt+0x1e/0x40 arch/x86/include/asm/idtentry.h:622
 should_watch kernel/kcsan/core.c:265 [inline]
 check_access kernel/kcsan/core.c:631 [inline]
 __tsan_read1+0x14f/0x180 kernel/kcsan/core.c:839
 tomoyo_path_matches_pattern+0x43/0x120 security/tomoyo/util.c:940
 tomoyo_compare_name_union security/tomoyo/file.c:87 [inline]
 tomoyo_check_path_acl+0x9b/0xe0 security/tomoyo/file.c:260
 tomoyo_check_acl+0xcc/0x200 security/tomoyo/domain.c:175
 tomoyo_path_permission security/tomoyo/file.c:586 [inline]
 tomoyo_check_open_permission+0x17f/0x370 security/tomoyo/file.c:777
 tomoyo_file_open+0xd3/0xf0 security/tomoyo/tomoyo.c:313
 security_file_open+0x3f/0x90 security/security.c:1575
 do_dentry_open+0x22d/0x870 fs/open.c:804
 vfs_open+0x43/0x50 fs/open.c:931
 do_open fs/namei.c:3252 [inline]
 path_openat+0x1844/0x20a0 fs/namei.c:3369
 do_filp_open+0xbd/0x1d0 fs/namei.c:3396
 do_sys_openat2+0xa3/0x240 fs/open.c:1168
 do_sys_open fs/open.c:1184 [inline]
 __do_sys_open fs/open.c:1192 [inline]
 __se_sys_open fs/open.c:1188 [inline]
 __x64_sys_open+0xe2/0x110 fs/open.c:1188
 do_syscall_64+0x39/0x80 arch/x86/entry/common.c:46
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

write to 0xffffc90000f43a70 of 4 bytes by task 8436 on cpu 0:
 __pollwake fs/select.c:197 [inline]
 pollwake+0xa7/0xf0 fs/select.c:217
 __wake_up_common+0xbc/0x130 kernel/sched/wait.c:93
 __wake_up_common_lock kernel/sched/wait.c:123 [inline]
 __wake_up_sync_key+0x83/0xc0 kernel/sched/wait.c:190
 pipe_write+0x876/0xbc0 fs/pipe.c:580
 call_write_iter include/linux/fs.h:1887 [inline]
 new_sync_write fs/read_write.c:518 [inline]
 vfs_write+0x617/0x690 fs/read_write.c:605
 ksys_write+0xce/0x180 fs/read_write.c:658
 __do_sys_write fs/read_write.c:670 [inline]
 __se_sys_write fs/read_write.c:667 [inline]
 __x64_sys_write+0x3e/0x50 fs/read_write.c:667
 do_syscall_64+0x39/0x80 arch/x86/entry/common.c:46
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 PID: 8436 Comm: syz-fuzzer Not tainted 5.10.0-rc2-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
==================================================================

Crashes (4):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2020/11/06 05:15 upstream 521b619acdc8 cba33199 .config console log report info ci2-upstream-kcsan-gce
2020/10/24 14:37 upstream f11901ed723d a1839e81 .config console log report info ci2-upstream-kcsan-gce
2020/10/22 22:24 upstream 96485e446260 4e740c00 .config console log report info ci2-upstream-kcsan-gce
2020/10/22 10:58 upstream f804b3159482 be6b1582 .config console log report info ci2-upstream-kcsan-gce
* Struck through repros no longer work on HEAD.