Firstly, bcachefs introduces a new era of in-tree filesystems with some monumental features (sorry, ZFS); hats off to Kent for landing this! My testing finds it is in great shape; far better than BTRFS was when it landed. Testing on linux next-20231005 with additional debug checks atop the Ubuntu 23.04 kernel generic config [1], I was able to provoke a btree trans path overflow cornercase [2]. The minimal reproducer is: # modprobe brd rd_nr=2 rd_size=1048576 # bcachefs format --metadata_replicas=2 --label=tier1.1 /dev/ram0 --label=tier1.2 /dev/ram1 # mount -t bcachefs /dev/ram0:/dev/ram1 /mnt # dd if=/dev/zero of=/mnt/test bs=128M The issue doesn't reproduce with metadata_replicas=1 or a single block device. At debug entry, I couldn't determine why BTREE_ITER_MAX must be 64 rather than 32 when CONFIG_LOCKDEP is set, however the panic doesn't occur without CONFIG_LOCKDEP, so it appears related; keeping it at value 32 with CONFIG_LOCKDEP doesn't prevent the panic also. @Kent/anyone? Thanks, Daniel -- [1] https://quora.org/linux-next-20231005.config -- [2] [ 493.761988] path: idx 4 ref 1:1 P S btree=alloc l=0 pos 0:98:0 locks 2 flush_new_cached_update+0x9f/0x390 [ 493.762036] path: idx 7 ref 1:1 P S btree=alloc l=0 pos 0:300:0 locks 2 flush_new_cached_update+0x9f/0x390 [ 493.762049] path: idx 11 ref 1:1 P S btree=alloc l=0 pos 0:581:0 locks 2 flush_new_cached_update+0x9f/0x390 [ 493.762062] path: idx 5 ref 1:1 P S btree=alloc l=0 pos 1:98:0 locks 2 flush_new_cached_update+0x9f/0x390 [ 493.762075] path: idx 9 ref 1:1 P S btree=alloc l=0 pos 1:300:0 locks 2 flush_new_cached_update+0x9f/0x390 [ 493.762087] path: idx 13 ref 1:1 P S bt] path: idx 3 ref 1:1 P S btree=alloc l=0 pos 0:98:0 locks 2 bch2_trans_start_alloc_update+0xf2/0x320 [ 493.762125] path: idx 6 ref 1:1 P S btree=alloc l=0 pos 0:300:0 locks 2 bch2_trans_start_alloc_update+0xf2/0x320 [ 493.762138] path: idx 10 ref 1:1 P S btree=alloc l=0 pos 0:581:0 locks 2 bch2_trans_start_alloc_update+0xf2/0x320 [ 493.762151] path: idx 2 ref 1:1 P S btree=alloc l=0 pos 1:96:0 locks 2 bch2_trans_start_alloc_update+0xf2/0x320 [ 493.762163] path: idx 1 ref 1:1 P S btree=alloc l=0 pos 1:98:0 locks 2 bch2_trans_start_alloc_update+0xf2/0x320 [ 493.762176] path: idx 8 ref 1:1 P S btree=alloc l=0 pos 1:300:0 locks 2 bch2_trans_start_alloc_update+0xf2/0x320 [ 493.762189] path: idx 12 ref 1:1 P S btree=alloc l=0 pos 1:581:0 locks 2 bch2_trans_start_alloc_update+0xf2/0x320 [ 493.762201] path: idx 18 ref 0:0 P S btree=freespace l=0 pos 0:98:0 locks 2 bch2_bucket_do_index+0x429/0x770 [ 493.762214] path: idx 31 ref 1:1 S btree=freespace l=0 pos 0:99:0 locks 2 bch2_bucket_do_index+0x429/0x770 [ 493.762227] path: idx 19 ref 0:0 btree=freespace l=0 pos 0:99:0 locks 2 bch2_bucket_do_index+0x429/0x770 [ 493.762239] path: idx 20 ref 0:0 btree=freespace l=0 pos 0:300:0 locks 2 bch2_bucket_do_index+0x429/0x770 [ 493.762252] path: idx 21 ref 0:0 btree=freespace l=0 pos 0:301:0 locks 2 bch2_bucket_do_index+0x429/0x770 [ 493.762264] path: idx 22 ref 0:0 btree=freespace l=0 pos 0:581:0 locks 2 bch2_bucket_do_index+0x429/0x770 [ 493.762277] path: idx 24 ref 0:0 btree=freespace l=0 pos 0:582:0 locks 2 bch2_bucket_do_index+0x429/0x770 [ 493.762290] path: idx 29 ref 0:0 btree=freespace l=0 pos 0:589:0 locks 2 bch2_bucket_do_index+0x429/0x770 [ 493.762302] path: idx 23 ref 0:0 btree=freespace l=0 pos 1:98:0 locks 2 bch2_bucket_do_index+0x429/0x770 [ 493.762315] path: idx 25 ref 0:0 btree=freespace l=0 pos 1:99:0 locks 2 bch2_bucket_do_index+0x429/0x770 [ 493.762328] path: idx 26 ref 0:0 btree=freespace l=0 pos 1:300:0 locks 2 bch2_bucket_do_index+0x429/0x770 [ 493.762340] path: idx 27 ref 0:0 btree=freespace l=0 pos 1:301:0 locks 2 bch2_bucket_do_index+0x429/0x770 [ 493.762353] path: idx 28 ref 0:0 btree=freespace l=0 pos 1:581:0 locks 2 bch2_bucket_do_index+0x429/0x770 [ 493.762365] path: idx 30 ref 0:0 btree=freespace l=0 pos 1:582:0 locks 2 bch2_bucket_do_index+0x429/0x770 [ 493.762378] path: idx 14 ref 1:1 P S btree=need_discard l=0 pos 0:96:0 locks 2 bch2_bucket_do_index+0x429/0x770 [ 493.762391] path: idx 16 ref 1:1 P S btree=need_discard l=0 pos 1:96:0 locks 2 bch2_bucket_do_index+0x429/0x770 [ 493.762403] path: idx 15 ref 1:1 P S btree=bucket_gens l=0 pos POS_MIN locks 2 bch2_bucket_gen_update+0x19e/0x540 [ 493.762416] path: idx 17 ref 1:1 P S btree=bucket_gens l=0 pos 1:0:0 locks 2 bch2_bucket_gen_update+0x19e/0x540 [ 493.762429] transaction updates for btree_update_nodes_written journal seq 0 [ 493.762441] update: btree=alloc cached=0 bch2_trans_mark_pointer.constprop.0+0x532/0xbf0 [ 493.762453] old u64s 5 type deleted 0:98:0 len 0 ver 0 [ 493.762464] new u64s 12 type alloc_v4 0:98:0 len 0 ver 0: [ 493.762476] gen 0 oldest_gen 0 data_type btree [ 493.762487] journal_seq 0 [ 493.762498] need_discard 1 [ 493.762509] need_inc_gen 1 [ 493.762521] dirty_sectors 256 [ 493.762532] cached_sectors 0 [ 493.762543] stripe 0 [ 493.762554] stripe_redundancy 0 [ 493.762565] io_time[READ] 1 [ 493.762576] io_time[WRITE] 259160 [ 493.762587] fragmentation 0 [ 493.762598] bp_start 7 [ 493.762609] [ 493.762619] update: btree=alloc cached=0 bch2_trans_mark_pointer.constprop.0+0x532/0xbf0 [ 493.762632] old u64s 5 type deleted 0:300:0 len 0 ver 0 [ 493.762643] new u64s 12 type alloc_v4 0:300:0 len 0 ver 0: [ 493.762655] gen 0 oldest_gen 0 data_type btree [ 493.762666] journal_seq 0 [ 493.762677] need_discard 0 [ 493.762688] need_inc_gen 0 [ 493.762699] dirty_sectors 256 [ 493.762710] cached_sectors 0 [ 493.762721] stripe 0 [ 493.762733] stripe_redundancy 0 [ 493.762744] io_time[READ] 0 [ 493.762755] io_time[WRITE] 0 [ 493.762766] fragmentation 0 [ 493.762777] bp_start 7 [ 493.762788] [ 493.762798] update: btree=alloc cached=0 bch2_trans_mark_pointer.constprop.0+0x532/0xbf0 [ 493.762810] old u64s 5 type deleted 0:581:0 len 0 ver 0 [ 493.762822] new u64s 12 type alloc_v4 0:581:0 len 0 ver 0: [ 493.762834] gen 0 oldest_gen 0 data_type btree [ 493.762845] journal_seq 0 [ 493.762856] need_discard 0 [ 493.762867] need_inc_gen 0 [ 493.762878] dirty_sectors 256 [ 493.762889] cached_sectors 0 [ 493.762900] stripe 0 [ 493.762911] stripe_redundancy 0 [ 493.762922] io_time[READ] 0 [ 493.762933] io_time[WRITE] 0 [ 493.762944] fragmentation 0 [ 493.762955] bp_start 7 [ 493.762966] [ 493.762977] update: btree=alloc cached=0 bch2_trans_mark_pointer.constprop.0+0x532/0xbf0 [ 493.762989] old u64s 5 type deleted 1:98:0 len 0 ver 0 [ 493.763001] new u64s 12 type alloc_v4 1:98:0 len 0 ver 0: [ 493.763012] gen 0 oldest_gen 0 data_type btree [ 493.763024] journal_seq 0 [ 493.763035] need_discard 0 [ 493.763046] need_inc_gen 0 [ 493.763057] dirty_sectors 256 [ 493.763068] cached_sectors 0 [ 493.763079] stripe 0 [ 493.763090] stripe_redundancy 0 [ 493.763101] io_time[READ] 0 [ 493.763112] io_time[WRITE] 0 [ 493.763123] fragmentation 0 [ 493.763134] bp_start 7 [ 493.763145] [ 493.763156] update: btree=alloc cached=0 bch2_trans_mark_pointer.constprop.0+0x532/0xbf0 [ 493.763168] old u64s 5 type deleted 1:300:0 len 0 ver 0 [ 493.763179] new u64s 12 type alloc_v4 1:300:0 len 0 ver 0: [ 493.763191] gen 0 oldest_gen 0 data_type btree [ 493.763202] journal_seq 0 [ 493.763214] need_discard 0 [ 493.763225] need_inc_gen 0 [ 493.763236] dirty_sectors 256 [ 493.763247] cached_sectors 0 [ 493.763258] stripe 0 [ 493.763269] stripe_redundancy 0 [ 493.763280] io_time[READ] 0 [ 493.763291] io_time[WRITE] 0 [ 493.763302] fragmentation 0 [ 493.763313] bp_start 7 [ 493.763324] [ 493.763334] update: btree=alloc cached=0 bch2_trans_mark_pointer.constprop.0+0x532/0xbf0 [ 493.763347] old u64s 5 type deleted 1:581:0 len 0 ver 0 [ 493.763358] new u64s 12 type alloc_v4 1:581:0 len 0 ver 0: [ 493.763370] gen 0 oldest_gen 0 data_type btree [ 493.763381] journal_seq 0 [ 493.763392] need_discard 0 [ 493.763403] need_inc_gen 0 [ 493.763414] dirty_sectors 256 [ 493.763425] cached_sectors 0 [ 493.763436] stripe 0 [ 493.763447] stripe_redundancy 0 [ 493.763458] io_time[READ] 0 [ 493.763469] io_time[WRITE] 0 [ 493.763480] fragmentation 0 [ 493.763492] bp_start 7 [ 493.763503] [ 493.763513] update: btree=alloc cached=1 bch2_trans_mark_pointer.constprop.0+0x532/0xbf0 [ 493.763525] old u64s 12 type alloc_v4 0:96:0 len 0 ver 0: [ 493.763537] gen 0 oldest_gen 0 data_type btree [ 493.763548] journal_seq 5 [ 493.763559] need_discard 1 [ 493.763570] need_inc_gen 1 [ 493.763581] dirty_sectors 256 [ 493.763593] cached_sectors 0 [ 493.763604] stripe 0 [ 493.763615] stripe_redundancy 0 [ 493.763626] io_time[READ] 1 [ 493.763637] io_time[WRITE] 8424 [ 493.763648] fragmentation 0 [ 493.763659] bp_start 7 [ 493.763670] [ 493.763680] new u64s 12 type alloc_v4 0:96:0 len 0 ver 0: [ 493.763692] gen 1 oldest_gen 0 data_type need_discard [ 493.763703] journal_seq 5 [ 493.763714] need_discard 1 [ 493.763726] need_inc_gen 0 [ 493.763737] dirty_sectors 0 [ 493.763748] cached_sectors 0 [ 493.763759] stripe 0 [ 493.763770] stripe_redundancy 0 [ 493.763781] io_time[READ] 1 [ 493.763792] io_time[WRITE] 8424 [ 493.763803] fragmentation 0 [ 493.763814] bp_start 7 [ 493.763825] [ 493.763835] update: btree=alloc cached=1 bch2_trans_mark_pointer.constprop.0+0x532/0xbf0 [ 493.763848] old u64s 5 type deleted 0:98:0 len 0 ver 0 [ 493.763859] new u64s 12 type alloc_v4 0:98:0 len 0 ver 0: [ 493.763871] gen 0 oldest_gen 0 data_type btree [ 493.763882] journal_seq 0 [ 493.763893] need_discard 1 [ 493.763904] need_inc_gen 1 [ 493.763915] dirty_sectors 256 [ 493.763926] cached_sectors 0 [ 493.763937] stripe 0 [ 493.763948] stripe_redundancy 0 [ 493.763959] io_time[READ] 1 [ 493.763970] io_time[WRITE] 259160 [ 493.763982] fragmentation 0 [ 493.763993] bp_start 7 [ 493.764004] [ 493.764014] update: btree=alloc cached=1 bch2_trans_mark_pointer.constprop.0+0x532/0xbf0 [ 493.764026] old u64s 5 type deleted 0:300:0 len 0 ver 0 [ 493.764038] new u64s 12 type alloc_v4 0:300:0 len 0 ver 0: [ 493.764050] gen 0 oldest_gen 0 data_type btree [ 493.764061] journal_seq 0 [ 493.764072] need_discard 0 [ 493.764083] need_inc_gen 0 [ 493.764094] dirty_sectors 256 [ 493.764105] cached_sectors 0 [ 493.764116] stripe 0 [ 493.764127] stripe_redundancy 0 [ 493.764138] io_time[READ] 0 [ 493.764149] io_time[WRITE] 0 [ 493.764160] fragmentation 0 [ 493.764171] bp_start 7 [ 493.764182] [ 493.764193] update: btree=alloc cached=1 bch2_trans_mark_pointer.constprop.0+0x532/0xbf0 [ 493.764205] old u64s 5 type deleted 0:581:0 len 0 ver 0 [ 493.764217] new u64s 12 type alloc_v4 0:581:0 len 0 ver 0: [ 493.764228] gen 0 oldest_gen 0 data_type btree [ 493.764240] journal_seq 0 [ 493.764251] need_discard 0 [ 493.764262] need_inc_gen 0 [ 493.764273] dirty_sectors 256 [ 493.764284] cached_sectors 0 [ 493.764295] stripe 0 [ 493.764306] stripe_redundancy 0 [ 493.764317] io_time[READ] 0 [ 493.764328] io_time[WRITE] 0 [ 493.764339] fragmentation 0 [ 493.764350] bp_start 7 [ 493.764361] [ 493.764371] update: btree=alloc cached=1 bch2_trans_mark_pointer.constprop.0+0x532/0xbf0 [ 493.764384] old u64s 12 type alloc_v4 1:96:0 len 0 ver 0: [ 493.764395] gen 0 oldest_gen 0 data_type btree [ 493.764407] journal_seq 5 [ 493.764418] need_discard 1 [ 493.764429] need_inc_gen 1 [ 493.764440] dirty_sectors 256 [ 493.764451] cached_sectors 0 [ 493.764462] stripe 0 [ 493.764473] stripe_redundancy 0 [ 493.764484] io_time[READ] 1 [ 493.764495] io_time[WRITE] 8424 [ 493.764506] fragmentation 0 [ 493.764517] bp_start 7 [ 493.764528] [ 493.764539] new u64s 12 type alloc_v4 1:96:0 len 0 ver 0: [ 493.764550] gen 1 oldest_gen 0 data_type need_discard [ 493.764562] journal_seq 5 [ 493.764573] need_discard 1 [ 493.764584] need_inc_gen 0 [ 493.764595] dirty_sectors 0 [ 493.764606] cached_sectors 0 [ 493.764617] stripe 0 [ 493.764628] stripe_redundancy 0 [ 493.764639] io_time[READ] 1 [ 493.764650] io_time[WRITE] 8424 [ 493.764661] fragmentation 0 [ 493.764672] bp_start 7 [ 493.764683] [ 493.764694] update: btree=alloc cached=1 bch2_trans_mark_pointer.constprop.0+0x532/0xbf0 [ 493.764706] old u64s 5 type deleted 1:98:0 len 0 ver 0 [ 493.764717] new u64s 12 type alloc_v4 1:98:0 len 0 ver 0: [ 493.764729] gen 0 oldest_gen 0 data_type btree [ 493.764740] journal_seq 0 [ 493.764804] need_discard 0 [ 493.764815] need_inc_gen 0 [ 493.764827] dirty_sectors 256 [ 493.764838] cached_sectors 0 [ 493.764849] stripe 0 [ 493.764860] stripe_redundancy 0 [ 493.764871] io_time[READ] 0 [ 493.764882] io_time[WRITE] 0 [ 493.764893] fragmentation 0 [ 493.764904] bp_start 7 [ 493.764915] [ 493.764925] update: btree=alloc cached=1 bch2_trans_mark_pointer.constprop.0+0x532/0xbf0 [ 493.764938] old u64s 5 type deleted 1:300:0 len 0 ver 0 [ 493.764949] new u64s 12 type alloc_v4 1:300:0 len 0 ver 0: [ 493.764961] gen 0 oldest_gen 0 data_type btree [ 493.764972] journal_seq 0 [ 493.764983] need_discard 0 [ 493.764994] need_inc_gen 0 [ 493.765005] dirty_sectors 256 [ 493.765016] cached_sectors 0 [ 493.765027] stripe 0 [ 493.765038] stripe_redundancy 0 [ 493.765049] io_time[READ] 0 [ 493.765060] io_time[WRITE] 0 [ 493.765071] fragmentation 0 [ 493.765082] bp_start 7 [ 493.765093] [ 493.765104] update: btree=alloc cached=1 bch2_trans_mark_pointer.constprop.0+0x532/0xbf0 [ 493.765116] old u64s 5 type deleted 1:581:0 len 0 ver 0 [ 493.765128] new u64s 12 type alloc_v4 1:581:0 len 0 ver 0: [ 493.765139] gen 0 oldest_gen 0 data_type btree [ 493.765151] journal_seq 0 [ 493.765162] need_discard 0 [ 493.765173] need_inc_gen 0 [ 493.765184] dirty_sectors 256 [ 493.765195] cached_sectors 0 [ 493.765206] stripe 0 [ 493.765217] stripe_redundancy 0 [ 493.765228] io_time[READ] 0 [ 493.765239] io_time[WRITE] 0 [ 493.765250] fragmentation 0 [ 493.765261] bp_start 7 [ 493.765272] [ 493.765283] update: btree=need_discard cached=0 bch2_bucket_do_index+0x4ba/0x770 [ 493.765295] old u64s 5 type deleted 0:96:0 len 0 ver 0 [ 493.765307] new u64s 5 type set 0:96:0 len 0 ver 0 [ 493.765318] update: btree=need_discard cached=0 bch2_bucket_do_index+0x4ba/0x770 [ 493.765330] old u64s 5 type deleted 1:96:0 len 0 ver 0 [ 493.765342] new u64s 5 type set 1:96:0 len 0 ver 0 [ 493.765353] update: btree=bucket_gens cached=0 bch2_bucket_gen_update+0x3ce/0x540 [ 493.765365] old u64s 5 type deleted POS_MIN len 0 ver 0 [ 493.765377] new u64s 37 type bucket_gens POS_MIN len 0 ver 0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [ 493.765399] update: btree=bucket_gens cached=0 bch2_bucket_gen_update+0x3ce/0x540 [ 493.765412] old u64s 5 type deleted 1:0:0 len 0 ver 0 [ 493.765423] new u64s 37 type bucket_gens 1:0:0 len 0 ver 0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [ 493.765446] update: btree=backpointers wb=1 bch2_btree_insert_nonextent+0x164/0x170 [ 493.765458] new u64s 5 type deleted 0:25165824:0 len 0 ver 0 [ 493.765470] update: btree=backpointers wb=1 bch2_btree_insert_nonextent+0x164/0x170 [ 493.765482] new u64s 5 type deleted 1:25165824:0 len 0 ver 0 [ 493.765494] update: btree=backpointers wb=1 bch2_btree_insert_nonextent+0x164/0x170 [ 493.765506] new u64s 9 type backpointer 0:25690112:0 len 0 ver 0: bucket=0:98:0 btree=extents l=1 offset=0:0 len=256 pos=671088640:149504:U32_MAX [ 493.765519] update: btree=backpointers wb=1 bch2_btree_insert_nonextent+0x164/0x170 [ 493.765531] new u64s 9 type backpointer 1:25690112:0 len 0 ver 0: bucket=1:98:0 btree=extents l=1 offset=0:0 len=256 pos=671088640:149504:U32_MAX [ 493.765545] update: btree=backpointers wb=1 bch2_btree_insert_nonextent+0x164/0x170 [ 493.765557] new u64s 9 type backpointer 0:78643200:0 len 0 ver 0: bucket=0:300:0 btree=extents l=1 offset=0:0 len=256 pos=SPOS_MAX [ 493.765570] update: btree=backpointers wb=1 bch2_btree_insert_nonextent+0x164/0x170 [ 493.765582] new u64s 9 type backpointer 1:78643200:0 len 0 ver 0: bucket=1:300:0 btree=extents l=1 offset=0:0 len=256 pos=SPOS_MAX [ 493.765595] update: btree=backpointers wb=1 bch2_btree_insert_nonextent+0x164/0x170 [ 493.765608] new u64s 9 type backpointer 0:152305664:0 len 0 ver 0: bucket=0:581:0 btree=extents l=2 offset=0:0 len=256 pos=SPOS_MAX [ 493.765622] update: btree=backpointers wb=1 bch2_btree_insert_nonextent+0x164/0x170 [ 493.765634] new u64s 9 type backpointer 1:152305664:0 len 0 ver 0: bucket=1:581:0 btree=extents l=2 offset=0:0 len=256 pos=SPOS_MAX [ 493.765648] [ 496.612047] Kernel panic - not syncing: trans path overflow [ 496.626162] CPU: 18 PID: 11 Comm: kworker/u96:0 Not tainted 6.6.0-rc4-next-20231005 #3 [ 496.642928] Hardware name: Supermicro AS -3014TS-i/H12SSL-i, BIOS 2.5 09/08/2022 [ 496.659120] Workqueue: btree_update btree_interior_update_work [ 496.673783] Call Trace: [ 496.684799] <TASK> [ 496.695345] dump_stack_lvl+0x5f/0xc0 [ 496.707528] dump_stack+0x10/0x20 [ 496.719236] panic+0x444/0x4b0 [ 496.730566] ? kfree+0x12a/0x150 [ 496.742073] ? __pfx_panic+0x10/0x10 [ 496.753841] ? srso_alias_return_thunk+0x5/0xfbef5 [ 496.766816] ? __bch2_dump_trans_paths_updates+0xda/0x120 [ 496.780289] ? __pfx_bch2_btree_path_verify_level+0x10/0x10 [ 496.793999] btree_path_overflow+0x1f/0x20 [ 496.806119] __bch2_btree_path_make_mut+0x6e8/0x840 [ 496.819146] ? srso_alias_return_thunk+0x5/0xfbef5 [ 496.832005] ? btree_trans_verify_sorted_refs+0x263/0x340 [ 496.845475] ? __asan_storeN+0x12/0x30 [ 496.857128] ? bch2_trans_update_extent.isra.0+0x17a/0x740 [ 496.870432] __bch2_btree_path_set_pos+0x1dc/0x7e0 [ 496.882969] ? srso_alias_return_thunk+0x5/0xfbef5 [ 496.895575] ? bch2_btree_path_verify+0xbd/0x1a0 [ 496.908175] bch2_btree_iter_peek_upto+0xb14/0x1d00 [ 496.921066] ? bch2_trans_update_extent.isra.0+0x17a/0x740 [ 496.934381] ? __pfx_bch2_btree_iter_peek_upto+0x10/0x10 [ 496.947402] ? bch2_trans_update_extent.isra.0+0x17a/0x740 [ 496.960594] ? bch2_trans_update_extent.isra.0+0x17a/0x740 [ 496.973626] ? __pfx_bch2_trans_iter_init_outlined+0x10/0x10 [ 496.986793] ? bch2_btree_path_verify_locks+0xe7/0x220 [ 496.999311] bch2_trans_update_extent.isra.0+0x1d3/0x740 [ 497.011773] ? bch2_trans_update_extent.isra.0+0x1d3/0x740 [ 497.024430] ? srso_alias_return_thunk+0x5/0xfbef5 [ 497.036194] ? __pfx_bch2_trans_update_extent.isra.0+0x10/0x10 [ 497.048854] ? __pfx_bch2_btree_iter_peek_slot+0x10/0x10 [ 497.061036] ? bch2_trans_update_extent.isra.0+0x17a/0x740 [ 497.073114] ? bch2_bucket_do_index+0x429/0x770 [ 497.084016] bch2_trans_update+0x1bd/0x210 [ 497.094299] ? srso_alias_return_thunk+0x5/0xfbef5 [ 497.105155] ? bch2_trans_update+0x1bd/0x210 [ 497.115346] bch2_bucket_do_index+0x4ba/0x770 [ 497.125552] ? __pfx_bch2_bucket_do_index+0x10/0x10 [ 497.136144] ? __pfx_bch2_bucket_gen_update+0x10/0x10 [ 497.146625] ? srso_alias_return_thunk+0x5/0xfbef5 [ 497.156815] ? srso_alias_return_thunk+0x5/0xfbef5 [ 497.166824] ? bch2_bucket_do_index+0x429/0x770 [ 497.176301] ? __asan_loadN+0xf/0x20 [ 497.184765] ? srso_alias_return_thunk+0x5/0xfbef5 [ 497.194463] ? bch2_btree_path_peek_slot+0x315/0x4a0 [ 497.204342] bch2_trans_mark_alloc+0x2e2/0x8d0 [ 497.213532] ? srso_alias_return_thunk+0x5/0xfbef5 [ 497.223020] ? bch2_trans_mark_alloc+0x2e2/0x8d0 [ 497.232374] ? __pfx_bch2_trans_mark_alloc+0x10/0x10 [ 497.242097] ? __pfx_verify_update_old_key+0x10/0x10 [ 497.251873] ? srso_alias_return_thunk+0x5/0xfbef5 [ 497.261420] ? bch2_btree_path_verify_locks+0xe7/0x220 [ 497.271445] run_btree_triggers+0x40b/0x7c0 [ 497.280557] ? __pfx_run_btree_triggers+0x10/0x10 [ 497.290141] ? srso_alias_return_thunk+0x5/0xfbef5 [ 497.299876] ? srso_alias_return_thunk+0x5/0xfbef5 [ 497.309460] ? bch2_replicas_entry_sort+0x66/0xd0 [ 497.318999] ? srso_alias_return_thunk+0x5/0xfbef5 [ 497.328560] ? update_replicas_list+0xc5/0xf0 [ 497.337739] __bch2_trans_commit+0x993/0x4200 [ 497.346872] ? __pfx_bch2_trans_mark_extent+0x10/0x10 [ 497.356698] ? __asan_storeN+0x12/0x30 [ 497.365116] ? srso_alias_return_thunk+0x5/0xfbef5 [ 497.374735] ? __pfx___bch2_trans_commit+0x10/0x10 [ 497.384234] ? srso_alias_return_thunk+0x5/0xfbef5 [ 497.393722] ? kasan_save_alloc_info+0x1e/0x40 [ 497.402885] ? srso_alias_return_thunk+0x5/0xfbef5 [ 497.412373] ? __kmalloc_node_track_caller+0x117/0x140 [ 497.422218] ? srso_alias_return_thunk+0x5/0xfbef5 [ 497.431691] ? rcu_is_watching+0x23/0x60 [ 497.440253] ? srso_alias_return_thunk+0x5/0xfbef5 [ 497.449863] btree_interior_update_work+0x1012/0x1460 [ 497.459802] ? __pfx_btree_interior_update_work+0x10/0x10 [ 497.469986] ? __pfx_lock_acquire+0x10/0x10 [ 497.478878] ? __pfx_lock_release+0x10/0x10 [ 497.487667] ? srso_alias_return_thunk+0x5/0xfbef5 [ 497.497110] ? process_one_work+0x3d6/0x950 [ 497.505859] ? process_one_work+0x3d1/0x950 [ 497.514540] ? srso_alias_return_thunk+0x5/0xfbef5 [ 497.523856] ? _raw_spin_unlock_irq+0x27/0x70 [ 497.532767] process_one_work+0x470/0x950 [ 497.541347] ? __pfx_process_one_work+0x10/0x10 [ 497.550360] ? do_raw_spin_lock+0x115/0x1d0 [ 497.559088] ? srso_alias_return_thunk+0x5/0xfbef5 [ 497.568360] ? assign_work+0xec/0x130 [ 497.576490] worker_thread+0x370/0x680 [ 497.584774] ? __pfx_worker_thread+0x10/0x10 [ 497.593493] kthread+0x1b3/0x200 [ 497.601172] ? kthread+0x103/0x200 [ 497.609008] ? __pfx_kthread+0x10/0x10 [ 497.617208] ret_from_fork+0x47/0x80 [ 497.625178] ? __pfx_kthread+0x10/0x10 [ 497.633322] ret_from_fork_asm+0x1b/0x30 [ 497.641759] </TASK> [ 497.649175] Kernel Offset: disabled [ 497.855603] ---[ end Kernel panic - not syncing: trans path overflow ]--- -- Daniel J Blueman