syzbot


WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol

Status: upstream: reported C repro on 2024/09/17 16:42
Subsystems: bcachefs
[Documentation on labels]
Reported-by: syzbot+f7c41a878676b72c16a6@syzkaller.appspotmail.com
Fix commit: 39c3aad43f6f bcachefs: Hold read lock in bch2_snapshot_tree_oldest_subvol()
Patched on: [ci-qemu-gce-upstream-auto ci-qemu-upstream ci-qemu-upstream-386 ci-qemu2-arm32 ci-qemu2-arm64 ci-qemu2-arm64-compat ci-qemu2-arm64-mte ci-qemu2-riscv64 ci-snapshot-upstream-root ci-upstream-bpf-next-kasan-gce ci-upstream-gce-arm64 ci-upstream-gce-leak ci-upstream-kasan-badwrites-root ci-upstream-kasan-gce ci-upstream-kasan-gce-386 ci-upstream-kasan-gce-root ci-upstream-kasan-gce-selinux-root ci-upstream-kasan-gce-smack-root ci-upstream-kmsan-gce-386-root ci-upstream-kmsan-gce-root ci-upstream-linux-next-kasan-gce-root ci-upstream-net-kasan-gce ci-upstream-net-this-kasan-gce ci2-upstream-fs ci2-upstream-kcsan-gce ci2-upstream-usb], missing on: [ci-qemu-native-arm64-kvm ci-upstream-bpf-kasan-gce]
First crash: 25d, last: 9d14h
Discussions (3)
Title Replies (including bot) Last reply
[PATCH] Hold read lock in bch2_snapshot_tree_oldest_subvol() 2 (2) 2024/09/21 21:00
[PATCH] bcachefs: Relocate rcu_read_lock()/rcu_read_unlock() to snapshot_t() 2 (2) 2024/09/21 16:32
[syzbot] [bcachefs?] WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol 0 (2) 2024/09/19 03:38
Last patch testing requests (1)
Created Duration User Patch Repo Result
2024/09/19 03:38 19m bottaawesome633@gmail.com patch upstream OK log

Sample crash report:
snapshot points to missing/incorrect tree:
  u64s 8 type snapshot 0:4294967295:0 len 0 ver 0: is_subvol 1 deleted 0 parent          0 children          0          0 subvol 1 tree 0, fixing
=============================
WARNING: suspicious RCU usage
6.11.0-syzkaller-02574-ga430d95c5efa #0 Not tainted
-----------------------------
fs/bcachefs/snapshot.h:45 suspicious rcu_dereference_check() usage!

other info that might help us debug this:


rcu_scheduler_active = 2, debug_locks = 1
3 locks held by syz-executor345/5099:
 #0: ffff888041400278 (&c->state_lock){+.+.}-{3:3}, at: bch2_fs_start+0x45/0x5b0 fs/bcachefs/super.c:1006
 #1: ffff8880414042c0 (&c->btree_trans_barrier){.+.+}-{0:0}, at: srcu_lock_acquire include/linux/srcu.h:151 [inline]
 #1: ffff8880414042c0 (&c->btree_trans_barrier){.+.+}-{0:0}, at: srcu_read_lock include/linux/srcu.h:250 [inline]
 #1: ffff8880414042c0 (&c->btree_trans_barrier){.+.+}-{0:0}, at: __bch2_trans_get+0x7de/0xd20 fs/bcachefs/btree_iter.c:3200
 #2: ffff88801a898128 (bcachefs_btree){+.+.}-{0:0}, at: srcu_lock_acquire include/linux/srcu.h:151 [inline]
 #2: ffff88801a898128 (bcachefs_btree){+.+.}-{0:0}, at: srcu_read_lock include/linux/srcu.h:250 [inline]
 #2: ffff88801a898128 (bcachefs_btree){+.+.}-{0:0}, at: __bch2_trans_get+0x7de/0xd20 fs/bcachefs/btree_iter.c:3200

stack backtrace:
CPU: 0 UID: 0 PID: 5099 Comm: syz-executor345 Not tainted 6.11.0-syzkaller-02574-ga430d95c5efa #0
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:93 [inline]
 dump_stack_lvl+0x241/0x360 lib/dump_stack.c:119
 lockdep_rcu_suspicious+0x221/0x340 kernel/locking/lockdep.c:6724
 snapshot_t fs/bcachefs/snapshot.h:45 [inline]
 bch2_snapshot_tree_oldest_subvol+0x485/0x550 fs/bcachefs/snapshot.c:473
 snapshot_tree_ptr_repair fs/bcachefs/snapshot.c:714 [inline]
 check_snapshot fs/bcachefs/snapshot.c:836 [inline]
 bch2_check_snapshots+0x3f59/0x5320 fs/bcachefs/snapshot.c:889
 bch2_run_recovery_pass+0xf0/0x1e0 fs/bcachefs/recovery_passes.c:183
 bch2_run_recovery_passes+0x19e/0x820 fs/bcachefs/recovery_passes.c:230
 bch2_fs_recovery+0x24f9/0x38b0 fs/bcachefs/recovery.c:859
 bch2_fs_start+0x356/0x5b0 fs/bcachefs/super.c:1036
 bch2_fs_get_tree+0xd61/0x1700 fs/bcachefs/fs.c:1956
 vfs_get_tree+0x90/0x2b0 fs/super.c:1800
 do_new_mount+0x2be/0xb40 fs/namespace.c:3507
 do_mount fs/namespace.c:3847 [inline]
 __do_sys_mount fs/namespace.c:4055 [inline]
 __se_sys_mount+0x2d6/0x3c0 fs/namespace.c:4032
 do_syscall_x64 arch/x86/entry/common.c:52 [inline]
 do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7faacfc929ea
Code: d8 64 89 02 48 c7 c0 ff ff ff ff eb a6 e8 5e 04 00 00 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007faacfc47088 EFLAGS: 00000282 ORIG_RAX: 00000000000000a5
RAX: ffffffffffffffda RBX: 00007faacfc470a0 RCX: 00007faacfc929ea
RDX: 0000000020005d80 RSI: 0000000020005dc0 RDI: 00007faacfc470a0
RBP: 0000000000000004 R08: 00007faacfc470e0 R09: 0000000000005d77
R10: 0000000000000000 R11: 0000000000000282 R12: 00007faacfc470e0
R13: 0000000000000000 R14: 0000000000000003 R15: 0000000001000000
 </TASK>
 done
bcachefs (loop0): check_subvols... done
bcachefs (loop0): check_subvol_children... done
bcachefs (loop0): delete_dead_snapshots... done
bcachefs (loop0): check_inodes... done
bcachefs (loop0): check_extents... done
bcachefs (loop0): check_indirect_extents... done
bcachefs (loop0): check_dirents... done
bcachefs (loop0): check_xattrs... done
bcachefs (loop0): check_root... done
bcachefs (loop0): check_subvolume_structure... done
bcachefs (loop0): check_directory_structure... done
bcachefs (loop0): check_nlinks... done
bcachefs (loop0): resume_logged_ops... done
bcachefs (loop0): delete_dead_inodes... done
bcachefs (loop0): Fixed errors, running fsck a second time to verify fs is clean
bcachefs (loop0): check_alloc_info... done
bcachefs (loop0): check_lrus... done
bcachefs (loop0): check_btree_backpointers... done
bcachefs (loop0): check_backpointers_to_extents... done
bcachefs (loop0): check_extents_to_backpointers... done
bcachefs (loop0): check_alloc_to_lru_refs... done
bcachefs (loop0): check_snapshot_trees... done
bcachefs (loop0): check_snapshots... done
bcachefs (loop0): check_subvols... done
bcachefs (loop0): check_subvol_children... done
bcachefs (loop0): delete_dead_snapshots... done
bcachefs (loop0): check_inodes... done
bcachefs (loop0): check_extents... done
bcachefs (loop0): check_indirect_extents... done
bcachefs (loop0): check_dirents... done
bcachefs (loop0): check_xattrs... done
bcachefs (loop0): check_root... done
bcachefs (loop0): check_subvolume_structure... done
bcachefs (loop0): check_directory_structure... done
bcachefs (loop0): check_nlinks... done
bcachefs (loop0): resume_logged_ops... done
bcachefs (loop0): delete_dead_inodes... done
bcachefs (loop0): done starting filesystem
loop0: detected capacity change from 32768 to 32767
syz-executor345 (5099) used greatest stack depth: 12192 bytes left

Crashes (21):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/09/17 08:36 upstream a430d95c5efa c673ca06 .config console log report syz / log C [disk image (non-bootable)] [vmlinux] [kernel image] [mounted in repro] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/29 05:42 upstream 3efc57369a0c ba29ff75 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/29 04:30 upstream 3efc57369a0c ba29ff75 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/29 04:30 upstream 3efc57369a0c ba29ff75 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/28 18:14 upstream ad46e8f95e93 ba29ff75 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/28 18:14 upstream ad46e8f95e93 ba29ff75 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/26 20:57 upstream 11a299a7933e 9314348a .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/26 20:57 upstream 11a299a7933e 9314348a .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/25 14:42 upstream 684a64bf32b6 0b45cac3 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/25 14:34 upstream 684a64bf32b6 0b45cac3 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/25 14:34 upstream 684a64bf32b6 0b45cac3 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/24 01:15 upstream 18ba6034468e 89298aad .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/23 11:44 upstream de5cb0dcb74c 49f9c2d2 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/23 11:44 upstream de5cb0dcb74c 49f9c2d2 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/22 08:58 upstream 88264981f208 6f888b75 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/22 08:58 upstream 88264981f208 6f888b75 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/20 04:04 upstream 2004cef11ea0 6f888b75 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/20 04:04 upstream 2004cef11ea0 6f888b75 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/17 07:08 upstream a430d95c5efa c673ca06 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/13 16:54 upstream 196145c606d0 73e8a465 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
2024/09/13 16:40 upstream 196145c606d0 73e8a465 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root WARNING: suspicious RCU usage in bch2_snapshot_tree_oldest_subvol
* Struck through repros no longer work on HEAD.