syzbot


general protection fault in f2fs_drop_extent_tree

Status: upstream: reported C repro on 2023/06/23 01:12
Bug presence: origin:upstream
Labels: missing-backport
[Documentation on labels]
Reported-by: syzbot+0dec0d21787ade9225f0@syzkaller.appspotmail.com
First crash: 547d, last: 380d
Fix bisection: the issue occurs on the latest tested release (bisect log)
Crash: INFO: rcu detected stall in corrupted (log)
Repro: C syz .config
  
Bug presence (3)
Date Name Commit Repro Result
2023/08/08 linux-6.1.y (ToT) 52a953d0934b C [report] general protection fault in f2fs_drop_extent_tree
2023/06/24 upstream (ToT) a92b7d26c743 C [report] general protection fault in __drop_extent_tree
2023/08/08 upstream (ToT) 14f9643dc90a C Didn't crash
Similar bugs (1)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream general protection fault in f2fs_drop_extent_tree f2fs C error done 1 545d 541d 23/28 fixed on 2023/10/12 12:48
Fix bisection attempts (4)
Created Duration User Patch Repo Result
2023/12/21 00:01 7h17m fix candidate upstream OK (1) job log
2023/12/07 10:49 2h00m bisect fix linux-6.1.y OK (0) job log log
2023/11/07 04:58 2h39m bisect fix linux-6.1.y OK (0) job log log
2023/10/05 06:59 2h00m bisect fix linux-6.1.y OK (0) job log log

Sample crash report:
general protection fault, probably for non-canonical address 0xdffffc0000000009: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x0000000000000048-0x000000000000004f]
CPU: 0 PID: 3550 Comm: syz-executor148 Not tainted 6.1.35-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/27/2023
RIP: 0010:__lock_acquire+0x69/0x1f80 kernel/locking/lockdep.c:4926
Code: df 0f b6 04 10 84 c0 0f 85 fb 15 00 00 83 3d f1 85 e9 0c 00 0f 84 a8 14 00 00 83 3d c0 79 75 0b 00 74 2b 4c 89 f0 48 c1 e8 03 <80> 3c 10 00 74 12 4c 89 f7 e8 39 46 76 00 48 ba 00 00 00 00 00 fc
RSP: 0018:ffffc90003aefb00 EFLAGS: 00010006
RAX: 0000000000000009 RBX: 0000000000000000 RCX: 0000000000000000
RDX: dffffc0000000000 RSI: 0000000000000000 RDI: 0000000000000048
RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000000 R11: dffffc0000000001 R12: 0000000000000000
R13: ffff8880297a8000 R14: 0000000000000048 R15: 0000000000000001
FS:  00007fdc0782c700(0000) GS:ffff8880b9800000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ffe5c1def88 CR3: 000000007bb80000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 lock_acquire+0x1f8/0x5a0 kernel/locking/lockdep.c:5669
 __raw_write_lock include/linux/rwlock_api_smp.h:209 [inline]
 _raw_write_lock+0x2a/0x40 kernel/locking/spinlock.c:300
 __drop_extent_tree fs/f2fs/extent_cache.c:966 [inline]
 f2fs_drop_extent_tree+0x274/0x4d0 fs/f2fs/extent_cache.c:982
 f2fs_insert_range+0x2d5/0x3c0 fs/f2fs/file.c:1666
 f2fs_fallocate+0x4e0/0x6d0 fs/f2fs/file.c:1840
 vfs_fallocate+0x547/0x6b0 fs/open.c:323
 ksys_fallocate fs/open.c:346 [inline]
 __do_sys_fallocate fs/open.c:354 [inline]
 __se_sys_fallocate fs/open.c:352 [inline]
 __x64_sys_fallocate+0xb9/0x100 fs/open.c:352
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x63/0xcd
RIP: 0033:0x7fdc07880479
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 41 15 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fdc0782c2f8 EFLAGS: 00000246 ORIG_RAX: 000000000000011d
RAX: ffffffffffffffda RBX: 00007fdc0790a7a0 RCX: 00007fdc07880479
RDX: 0000000000000000 RSI: 0000000000000020 RDI: 0000000000000005
RBP: 00007fdc078d7818 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000010000 R11: 0000000000000246 R12: 00007fdc078d76e0
R13: 0030656c69662f2e R14: 4b55cd3db08b6c4e R15: 00007fdc0790a7a8
 </TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:__lock_acquire+0x69/0x1f80 kernel/locking/lockdep.c:4926
Code: df 0f b6 04 10 84 c0 0f 85 fb 15 00 00 83 3d f1 85 e9 0c 00 0f 84 a8 14 00 00 83 3d c0 79 75 0b 00 74 2b 4c 89 f0 48 c1 e8 03 <80> 3c 10 00 74 12 4c 89 f7 e8 39 46 76 00 48 ba 00 00 00 00 00 fc
RSP: 0018:ffffc90003aefb00 EFLAGS: 00010006
RAX: 0000000000000009 RBX: 0000000000000000 RCX: 0000000000000000
RDX: dffffc0000000000 RSI: 0000000000000000 RDI: 0000000000000048
RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000000 R11: dffffc0000000001 R12: 0000000000000000
R13: ffff8880297a8000 R14: 0000000000000048 R15: 0000000000000001
FS:  00007fdc0782c700(0000) GS:ffff8880b9800000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ffe5c1def88 CR3: 000000007bb80000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
   0:	df 0f                	fisttps (%rdi)
   2:	b6 04                	mov    $0x4,%dh
   4:	10 84 c0 0f 85 fb 15 	adc    %al,0x15fb850f(%rax,%rax,8)
   b:	00 00                	add    %al,(%rax)
   d:	83 3d f1 85 e9 0c 00 	cmpl   $0x0,0xce985f1(%rip)        # 0xce98605
  14:	0f 84 a8 14 00 00    	je     0x14c2
  1a:	83 3d c0 79 75 0b 00 	cmpl   $0x0,0xb7579c0(%rip)        # 0xb7579e1
  21:	74 2b                	je     0x4e
  23:	4c 89 f0             	mov    %r14,%rax
  26:	48 c1 e8 03          	shr    $0x3,%rax
* 2a:	80 3c 10 00          	cmpb   $0x0,(%rax,%rdx,1) <-- trapping instruction
  2e:	74 12                	je     0x42
  30:	4c 89 f7             	mov    %r14,%rdi
  33:	e8 39 46 76 00       	callq  0x764671
  38:	48                   	rex.W
  39:	ba 00 00 00 00       	mov    $0x0,%edx
  3e:	00 fc                	add    %bh,%ah

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2023/06/23 01:12 linux-6.1.y e84a4e368abe 79782afc .config console log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-6-1-kasan general protection fault in f2fs_drop_extent_tree
* Struck through repros no longer work on HEAD.