syzbot


KCSAN: data-race in __xa_clear_mark / sync_inodes_sb (2)

Status: auto-closed as invalid on 2020/12/21 11:51
Subsystems: fs mm
[Documentation on labels]
Reported-by: syzbot+c950e2fbdcf3c731e474@syzkaller.appspotmail.com
First crash: 1298d, last: 1277d
Similar bugs (2)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in __xa_clear_mark / sync_inodes_sb (3) mm fs 1 1220d 1220d 0/26 auto-closed as invalid on 2021/02/02 10:35
upstream KCSAN: data-race in __xa_clear_mark / sync_inodes_sb fs mm 1 1401d 1401d 0/26 auto-closed as invalid on 2020/08/04 19:16

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

write to 0xffff88810d8ea824 of 4 bytes by interrupt on cpu 1:
 xa_mark_clear lib/xarray.c:75 [inline]
 xas_clear_mark lib/xarray.c:921 [inline]
 __xa_clear_mark+0x1b2/0x1d0 lib/xarray.c:1916
 test_clear_page_writeback+0x29d/0x450 mm/page-writeback.c:2739
 end_page_writeback+0xa7/0x110 mm/filemap.c:1487
 ext4_finish_bio+0x429/0x490 fs/ext4/page-io.c:146
 ext4_end_bio+0x1ba/0x310 fs/ext4/page-io.c:367
 bio_endio+0x28b/0x350 block/bio.c:1450
 req_bio_endio block/blk-core.c:263 [inline]
 blk_update_request+0x4d5/0xb00 block/blk-core.c:1467
 scsi_end_request+0x51/0x470 drivers/scsi/scsi_lib.c:569
 scsi_io_completion+0x105/0xfb0 drivers/scsi/scsi_lib.c:965
 scsi_finish_command+0x26c/0x2b0 drivers/scsi/scsi.c:214
 scsi_softirq_done+0xdf/0x440 drivers/scsi/scsi_lib.c:1443
 blk_done_softirq+0x145/0x190 block/blk-mq.c:586
 __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
 native_restore_fl arch/x86/include/asm/irqflags.h:41 [inline]
 arch_local_irq_restore arch/x86/include/asm/irqflags.h:84 [inline]
 kcsan_setup_watchpoint+0x1ec/0x4d0 kernel/kcsan/core.c:591
 vsnprintf+0xa7e/0xe80 lib/vsprintf.c:2618
 tomoyo_supervisor+0xa4/0xb20 security/tomoyo/common.c:2069
 tomoyo_audit_path_log security/tomoyo/file.c:168 [inline]
 tomoyo_path_permission security/tomoyo/file.c:587 [inline]
 tomoyo_path_perm+0x261/0x330 security/tomoyo/file.c:838
 tomoyo_inode_getattr+0x18/0x20 security/tomoyo/tomoyo.c:123
 security_inode_getattr+0x7f/0xd0 security/security.c:1279
 vfs_getattr fs/stat.c:121 [inline]
 vfs_statx+0xf8/0x270 fs/stat.c:189
 vfs_fstatat fs/stat.c:207 [inline]
 vfs_lstat include/linux/fs.h:3109 [inline]
 __do_sys_newlstat fs/stat.c:362 [inline]
 __se_sys_newlstat+0x46/0x250 fs/stat.c:356
 __x64_sys_newlstat+0x2d/0x40 fs/stat.c:356
 do_syscall_64+0x39/0x80 arch/x86/entry/common.c:46
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

read to 0xffff88810d8ea824 of 4 bytes by task 8477 on cpu 0:
 xa_marked include/linux/xarray.h:416 [inline]
 mapping_tagged include/linux/fs.h:488 [inline]
 wait_sb_inodes fs/fs-writeback.c:2419 [inline]
 sync_inodes_sb+0x30e/0x450 fs/fs-writeback.c:2562
 __sync_filesystem fs/sync.c:34 [inline]
 sync_filesystem+0xe4/0x160 fs/sync.c:67
 ovl_sync_fs+0x94/0xc0 fs/overlayfs/super.c:283
 __sync_filesystem fs/sync.c:39 [inline]
 sync_filesystem+0x112/0x160 fs/sync.c:67
 generic_shutdown_super+0x3c/0x1f0 fs/super.c:448
 kill_anon_super+0x23/0x40 fs/super.c:1108
 deactivate_locked_super+0x6a/0xb0 fs/super.c:335
 deactivate_super+0x85/0x90 fs/super.c:366
 cleanup_mnt+0x277/0x2e0 fs/namespace.c:1118
 __cleanup_mnt+0x15/0x20 fs/namespace.c:1125
 task_work_run+0x8e/0x110 kernel/task_work.c:151
 tracehook_notify_resume include/linux/tracehook.h:188 [inline]
 exit_to_user_mode_loop kernel/entry/common.c:164 [inline]
 exit_to_user_mode_prepare+0x13c/0x170 kernel/entry/common.c:191
 syscall_exit_to_user_mode+0x16/0x30 kernel/entry/common.c:266
 do_syscall_64+0x45/0x80 arch/x86/entry/common.c:56
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

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

Crashes (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2020/11/02 08:24 upstream 3cea11cd5e3b 8bc4594f .config console log report info ci2-upstream-kcsan-gce
2020/10/12 08:12 upstream bbf5c979011a 4a77ae0b .config console log report info ci2-upstream-kcsan-gce
* Struck through repros no longer work on HEAD.