syzbot


general protection fault in xas_create

Status: upstream: reported syz repro on 2025/03/16 18:05
Subsystems: mm bcachefs
[Documentation on labels]
Reported-by: syzbot+85a56f124ac1ea0ac0cb@syzkaller.appspotmail.com
First crash: 65d, last: 12d
Discussions (1)
Title Replies (including bot) Last reply
[syzbot] [mm?] [bcachefs?] general protection fault in xas_create 0 (1) 2025/03/16 18:05
Last patch testing requests (1)
Created Duration User Patch Repo Result
2025/03/26 18:30 21m retest repro upstream OK log

Sample crash report:
    bi_background_compression=0
    bi_data_replicas=0
    bi_promote_target=0
    bi_foreground_target=0
    bi_background_target=0
    bi_erasure_code=0
    bi_fields_set=0
    bi_dir=4096
    bi_dir_offset=1859603997870691834
    bi_subvol=0
    bi_parent_subvol=0
    bi_nocow=0
    bi_depth=0
    bi_inodes_32bit=0
    bi_casefold=0, fixing
 done
bcachefs (loop0): check_dirents...
bcachefs (loop0): key in missing snapshot dirents u64s 8 type dirent 4096:1859603997870691834:4290052095 len 0 ver 0: lost+found -> 4097 type dir, deleting
bcachefs (loop0): dirent points to missing inode:
  u64s 7 type dirent 4096:3784119180373593407:U32_MAX len 0 ver 0: file3 -> 1073741825 type reg, fixing
bcachefs (loop0): dirent points to missing inode:
  u64s 7 type dirent 4096:5682031293254759865:U32_MAX len 0 ver 0: file0 -> 4098 type dir, fixing
bcachefs (loop0): dirent points to missing inode:
  u64s 7 type dirent 4096:6229884513039707068:U32_MAX len 0 ver 0: file2 -> 1073741825 type reg, fixing
bcachefs (loop0): dirent points to missing inode:
  u64s 7 type dirent 4096:7012347908543992434:U32_MAX len 0 ver 0: file1 -> 1073741824 type reg, fixing
bcachefs (loop0): hash table key at wrong offset: btree dirents inode 4096 offset 8117119959317756843, hashed to 1822187942610797343
  u64s 8 type dirent 4096:8117119959317756843:U32_MAX len 0 ver 0: fil?.cold -> 1073741826 type reg, fixing
bcachefs (loop0): key in missing inode:
  u64s 7 type dirent 4098:2566587684781802428:U32_MAX len 0 ver 0: file0 -> 4099 type reg, fixing
bcachefs (loop0): key in missing inode:
  u64s 7 type dirent 4098:4600437421902197670:U32_MAX len 0 ver 0: file1 -> 4100 type lnk, fixing
 done
bcachefs (loop0): Fixed errors, running fsck a second time to verify fs is clean
bcachefs (loop0): check_extents_to_backpointers... done
bcachefs (loop0): check_snapshots... done
bcachefs (loop0): check_subvols... done
bcachefs (loop0): check_inodes... done
bcachefs (loop0): check_dirents...
bcachefs (loop0): dirent points to missing inode:
  u64s 8 type dirent 4096:1822187942610797343:U32_MAX len 0 ver 0: fil?.cold -> 1073741826 type reg, fixing
bcachefs (loop0): key in missing snapshot dirents u64s 8 type dirent 4096:1859603997870691834:4290052095 len 0 ver 0: lost+found -> 4097 type dir, deleting
bcachefs (loop0): directory 4096:4294967295 with wrong i_nlink: got 1, should be 0, fixing
bcachefs (loop0): key in missing inode:
  u64s 7 type dirent 4098:2566587684781802428:U32_MAX len 0 ver 0: file0 -> 4099 type reg, fixing
bcachefs (loop0): key in missing inode:
  u64s 7 type dirent 4098:4600437421902197670:U32_MAX len 0 ver 0: file1 -> 4100 type lnk, fixing
 done
bcachefs (loop0): Second fsck run was not clean
bcachefs (loop0): done starting filesystem
Oops: general protection fault, probably for non-canonical address 0x4d915e8ea1c019e5: 0000 [#1] SMP KASAN NOPTI
CPU: 0 UID: 0 PID: 5316 Comm: syz.0.0 Not tainted 6.15.0-rc4-syzkaller-00296-ge8ab83e34bdc #0 PREEMPT(full) 
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
RIP: 0010:get_freepointer mm/slub.c:505 [inline]
RIP: 0010:get_freepointer_safe mm/slub.c:533 [inline]
RIP: 0010:__slab_alloc_node mm/slub.c:4025 [inline]
RIP: 0010:slab_alloc_node mm/slub.c:4184 [inline]
RIP: 0010:kmem_cache_alloc_lru_noprof+0xf0/0x3d0 mm/slub.c:4215
Code: 0f 84 7d 01 00 00 41 83 fd ff 74 1a 48 8b 03 48 83 f8 ff 0f 84 d5 02 00 00 48 c1 e8 3a 41 39 c5 0f 85 5d 01 00 00 41 8b 46 28 <4a> 8b 1c 20 49 8d 4f 08 49 8b 36 4c 89 e0 4c 89 fa 65 48 0f c7 0e
RSP: 0018:ffffc9000d4cf5a0 EFLAGS: 00010046
RAX: 0000000000000240 RBX: ffffea0001501a00 RCX: ffffffff92773fa0
RDX: 0000000000000001 RSI: 0000000000000240 RDI: ffffffff8e05c5e0
RBP: 0000000000002800 R08: 0000000000000003 R09: 0000000000000004
R10: dffffc0000000000 R11: fffff52001a99ed0 R12: 4d915e8ea1c017a5
R13: 00000000ffffffff R14: ffff88801a04bdc0 R15: 000000000000f380
FS:  00007fcb4d56e6c0(0000) GS:ffff88808d6cb000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000055d8071ea0d8 CR3: 00000000414fb000 CR4: 0000000000352ef0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 xas_alloc lib/xarray.c:378 [inline]
 xas_create+0x116b/0x1b90 lib/xarray.c:685
 xas_store+0x95/0x1880 lib/xarray.c:795
 memcg_list_lru_alloc+0x58d/0x7e0 mm/list_lru.c:547
 __memcg_slab_post_alloc_hook+0x135/0x820 mm/memcontrol.c:3060
 memcg_slab_post_alloc_hook mm/slub.c:2179 [inline]
 slab_post_alloc_hook mm/slub.c:4157 [inline]
 slab_alloc_node mm/slub.c:4196 [inline]
 kmem_cache_alloc_lru_noprof+0x2c7/0x3d0 mm/slub.c:4215
 __d_alloc+0x31/0x6f0 fs/dcache.c:1681
 d_alloc_anon fs/dcache.c:1778 [inline]
 d_make_root+0x4a/0xe0 fs/dcache.c:1976
 bch2_fs_get_tree+0xfa0/0x13a0 fs/bcachefs/fs.c:2585
 vfs_get_tree+0x8f/0x2b0 fs/super.c:1759
 do_new_mount+0x24a/0xa40 fs/namespace.c:3884
 do_mount fs/namespace.c:4224 [inline]
 __do_sys_mount fs/namespace.c:4435 [inline]
 __se_sys_mount+0x317/0x410 fs/namespace.c:4412
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xf6/0x210 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fcb4c79010a
Code: d8 64 89 02 48 c7 c0 ff ff ff ff eb a6 e8 de 1a 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 a8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fcb4d56de68 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5
RAX: ffffffffffffffda RBX: 00007fcb4d56def0 RCX: 00007fcb4c79010a
RDX: 000020000000f640 RSI: 0000200000000080 RDI: 00007fcb4d56deb0
RBP: 000020000000f640 R08: 00007fcb4d56def0 R09: 0000000000010000
R10: 0000000000010000 R11: 0000000000000246 R12: 0000200000000080
R13: 00007fcb4d56deb0 R14: 000000000000f647 R15: 00002000000000c0
 </TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:get_freepointer mm/slub.c:505 [inline]
RIP: 0010:get_freepointer_safe mm/slub.c:533 [inline]
RIP: 0010:__slab_alloc_node mm/slub.c:4025 [inline]
RIP: 0010:slab_alloc_node mm/slub.c:4184 [inline]
RIP: 0010:kmem_cache_alloc_lru_noprof+0xf0/0x3d0 mm/slub.c:4215
Code: 0f 84 7d 01 00 00 41 83 fd ff 74 1a 48 8b 03 48 83 f8 ff 0f 84 d5 02 00 00 48 c1 e8 3a 41 39 c5 0f 85 5d 01 00 00 41 8b 46 28 <4a> 8b 1c 20 49 8d 4f 08 49 8b 36 4c 89 e0 4c 89 fa 65 48 0f c7 0e
RSP: 0018:ffffc9000d4cf5a0 EFLAGS: 00010046
RAX: 0000000000000240 RBX: ffffea0001501a00 RCX: ffffffff92773fa0
RDX: 0000000000000001 RSI: 0000000000000240 RDI: ffffffff8e05c5e0
RBP: 0000000000002800 R08: 0000000000000003 R09: 0000000000000004
R10: dffffc0000000000 R11: fffff52001a99ed0 R12: 4d915e8ea1c017a5
R13: 00000000ffffffff R14: ffff88801a04bdc0 R15: 000000000000f380
FS:  00007fcb4d56e6c0(0000) GS:ffff88808d6cb000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000055d8071ea0d8 CR3: 00000000414fb000 CR4: 0000000000352ef0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
   0:	0f 84 7d 01 00 00    	je     0x183
   6:	41 83 fd ff          	cmp    $0xffffffff,%r13d
   a:	74 1a                	je     0x26
   c:	48 8b 03             	mov    (%rbx),%rax
   f:	48 83 f8 ff          	cmp    $0xffffffffffffffff,%rax
  13:	0f 84 d5 02 00 00    	je     0x2ee
  19:	48 c1 e8 3a          	shr    $0x3a,%rax
  1d:	41 39 c5             	cmp    %eax,%r13d
  20:	0f 85 5d 01 00 00    	jne    0x183
  26:	41 8b 46 28          	mov    0x28(%r14),%eax
* 2a:	4a 8b 1c 20          	mov    (%rax,%r12,1),%rbx <-- trapping instruction
  2e:	49 8d 4f 08          	lea    0x8(%r15),%rcx
  32:	49 8b 36             	mov    (%r14),%rsi
  35:	4c 89 e0             	mov    %r12,%rax
  38:	4c 89 fa             	mov    %r15,%rdx
  3b:	65 48 0f c7 0e       	cmpxchg16b %gs:(%rsi)

Crashes (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/05/04 17:53 upstream e8ab83e34bdc b0714e37 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root general protection fault in xas_create
2025/03/12 18:01 upstream 0fed89a961ea ee70e6db .config console log report syz / log [disk image (non-bootable)] [vmlinux] [kernel image] [mounted in repro] ci-snapshot-upstream-root general protection fault in xas_create
* Struck through repros no longer work on HEAD.