syzbot


general protection fault in create_empty_buffers

Status: upstream: reported syz repro on 2023/06/17 23:50
Bug presence: origin:lts-only
[Documentation on labels]
Reported-by: syzbot+17a39f66823b6e7f5ee0@syzkaller.appspotmail.com
First crash: 524d, last: 524d
Fix commit to backport (bisect log) :
tree: upstream
commit f83913f8c5b882a312e72b7669762f8a5c9385e4
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date: Sat Aug 5 13:20:38 2023 +0000

  nilfs2: fix general protection fault in nilfs_lookup_dirty_data_buffers()

[report pending]
  
Fix bisection: failed (error log, bisect log)
  
Bug presence (2)
Date Name Commit Repro Result
2023/06/18 linux-5.15.y (ToT) 471e639e59d1 C [report] general protection fault in create_empty_buffers
2023/06/18 upstream (ToT) 1b29d271614a C Didn't crash
Similar bugs (8)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream general protection fault in create_empty_buffers (3) fs 1 1607d 1607d 0/28 auto-closed as invalid on 2020/10/27 18:42
upstream general protection fault in create_empty_buffers (4) nilfs 2 576d 609d 0/28 auto-obsoleted due to no activity on 2023/07/26 06:29
linux-6.1 general protection fault in create_empty_buffers origin:upstream missing-backport C unreliable 1 473d 519d 0/3 upstream: reported C repro on 2023/06/23 12:51
android-54 general protection fault in create_empty_buffers (3) 1 717d 717d 0/2 auto-obsoleted due to no activity on 2023/04/06 14:08
upstream general protection fault in create_empty_buffers 3820 2644d 2580d 0/28 closed as invalid on 2017/10/31 10:04
upstream general protection fault in create_empty_buffers (2) fs 1 2266d 2266d 0/28 auto-closed as invalid on 2019/03/08 22:46
android-54 general protection fault in create_empty_buffers 1 1500d 1500d 0/2 auto-closed as invalid on 2021/02/12 03:39
android-54 general protection fault in create_empty_buffers (2) 1 1293d 1293d 0/2 auto-closed as invalid on 2021/09/06 17:43
Last patch testing requests (1)
Created Duration User Patch Repo Result
2024/10/15 00:31 0m retest repro linux-5.15.y error
Fix bisection attempts (3)
Created Duration User Patch Repo Result
2023/12/28 00:59 5h41m fix candidate upstream OK (1) job log
2023/11/17 04:17 14m fix candidate upstream error job log
2023/10/19 18:48 2h33m bisect fix linux-5.15.y error job log

Sample crash report:
general protection fault, probably for non-canonical address 0xdffffc000000003d: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x00000000000001e8-0x00000000000001ef]
CPU: 0 PID: 7011 Comm: segctord Not tainted 5.15.117-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/27/2023
RIP: 0010:__lock_acquire+0x69/0x1ff0 kernel/locking/lockdep.c:4881
Code: 84 c0 48 89 7c 24 08 0f 85 3f 16 00 00 83 3d 11 84 81 0c 00 0f 84 ec 14 00 00 83 3d 80 42 1c 0b 00 74 2d 48 89 f8 48 c1 e8 03 <80> 3c 10 00 74 14 e8 3c e1 66 00 48 8b 7c 24 08 48 ba 00 00 00 00
RSP: 0018:ffffc9000345f100 EFLAGS: 00010002
RAX: 000000000000003d RBX: 0000000000000000 RCX: 0000000000000000
RDX: dffffc0000000000 RSI: 0000000000000000 RDI: 00000000000001e8
RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000000 R11: dffffc0000000001 R12: 0000000000000000
R13: ffff88807de55940 R14: 0000000000000000 R15: 0000000000000001
FS:  0000000000000000(0000) GS:ffff8880b9a00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020002002 CR3: 000000007b159000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 lock_acquire+0x1db/0x4f0 kernel/locking/lockdep.c:5622
 __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
 _raw_spin_lock+0x2a/0x40 kernel/locking/spinlock.c:154
 spin_lock include/linux/spinlock.h:363 [inline]
 create_empty_buffers+0xd4/0x6d0 fs/buffer.c:1571
 nilfs_lookup_dirty_data_buffers+0x3b3/0x9b0 fs/nilfs2/segment.c:729
 nilfs_segctor_scan_file+0x245/0xad0 fs/nilfs2/segment.c:1073
 nilfs_segctor_collect_blocks fs/nilfs2/segment.c:1195 [inline]
 nilfs_segctor_collect fs/nilfs2/segment.c:1522 [inline]
 nilfs_segctor_do_construct+0x1d48/0x7190 fs/nilfs2/segment.c:2068
 nilfs_segctor_construct+0x145/0x8c0 fs/nilfs2/segment.c:2404
 nilfs_segctor_thread_construct fs/nilfs2/segment.c:2512 [inline]
 nilfs_segctor_thread+0x512/0x1130 fs/nilfs2/segment.c:2595
 kthread+0x3f6/0x4f0 kernel/kthread.c:319
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:298
 </TASK>
Modules linked in:
---[ end trace f260b94612ece010 ]---
RIP: 0010:__lock_acquire+0x69/0x1ff0 kernel/locking/lockdep.c:4881
Code: 84 c0 48 89 7c 24 08 0f 85 3f 16 00 00 83 3d 11 84 81 0c 00 0f 84 ec 14 00 00 83 3d 80 42 1c 0b 00 74 2d 48 89 f8 48 c1 e8 03 <80> 3c 10 00 74 14 e8 3c e1 66 00 48 8b 7c 24 08 48 ba 00 00 00 00
RSP: 0018:ffffc9000345f100 EFLAGS: 00010002
RAX: 000000000000003d RBX: 0000000000000000 RCX: 0000000000000000
RDX: dffffc0000000000 RSI: 0000000000000000 RDI: 00000000000001e8
RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000000 R11: dffffc0000000001 R12: 0000000000000000
R13: ffff88807de55940 R14: 0000000000000000 R15: 0000000000000001
FS:  0000000000000000(0000) GS:ffff8880b9a00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020002002 CR3: 000000007b159000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
   0:	84 c0                	test   %al,%al
   2:	48 89 7c 24 08       	mov    %rdi,0x8(%rsp)
   7:	0f 85 3f 16 00 00    	jne    0x164c
   d:	83 3d 11 84 81 0c 00 	cmpl   $0x0,0xc818411(%rip)        # 0xc818425
  14:	0f 84 ec 14 00 00    	je     0x1506
  1a:	83 3d 80 42 1c 0b 00 	cmpl   $0x0,0xb1c4280(%rip)        # 0xb1c42a1
  21:	74 2d                	je     0x50
  23:	48 89 f8             	mov    %rdi,%rax
  26:	48 c1 e8 03          	shr    $0x3,%rax
* 2a:	80 3c 10 00          	cmpb   $0x0,(%rax,%rdx,1) <-- trapping instruction
  2e:	74 14                	je     0x44
  30:	e8 3c e1 66 00       	callq  0x66e171
  35:	48 8b 7c 24 08       	mov    0x8(%rsp),%rdi
  3a:	48                   	rex.W
  3b:	ba 00 00 00 00       	mov    $0x0,%edx

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2023/06/17 23:49 linux-5.15.y 471e639e59d1 f3921d4d .config console log report syz [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan general protection fault in create_empty_buffers
* Struck through repros no longer work on HEAD.