* [syzbot] [ocfs2?] kernel BUG in ocfs2_write_cluster_by_desc
@ 2024-09-16 18:35 syzbot
2024-09-17 16:26 ` [syzbot] " syzbot
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: syzbot @ 2024-09-16 18:35 UTC (permalink / raw)
To: jlbec, joseph.qi, linux-kernel, mark, ocfs2-devel, syzkaller-bugs
Hello,
syzbot found the following issue on:
HEAD commit: adfc3ded5c33 Merge tag 'for-6.12/io_uring-discard-20240913..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=1066a8a9980000
kernel config: https://syzkaller.appspot.com/x/.config?x=71033c66cc4b01c4
dashboard link: https://syzkaller.appspot.com/bug?extid=18a87160c7d64ba2e2f6
compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=15e45c07980000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=13ab5500580000
Downloadable assets:
disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/7bc7510fe41f/non_bootable_disk-adfc3ded.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/14d8d89edd95/vmlinux-adfc3ded.xz
kernel image: https://storage.googleapis.com/syzbot-assets/77b35977c15b/bzImage-adfc3ded.xz
mounted in repro: https://storage.googleapis.com/syzbot-assets/e39a4142077d/mount_0.gz
IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+18a87160c7d64ba2e2f6@syzkaller.appspotmail.com
option from the mount to silence this warning.
=======================================================
ocfs2: Mounting device (7,0) on (node local, slot 0) with ordered data mode.
------------[ cut here ]------------
kernel BUG at fs/ocfs2/aops.c:1179!
Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN NOPTI
CPU: 0 UID: 0 PID: 5093 Comm: syz-executor394 Not tainted 6.11.0-syzkaller-02520-gadfc3ded5c33 #0
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
RIP: 0010:ocfs2_write_cluster fs/ocfs2/aops.c:1179 [inline]
RIP: 0010:ocfs2_write_cluster_by_desc+0x1fc7/0x1ff0 fs/ocfs2/aops.c:1240
Code: 03 48 8d bc 24 30 02 00 00 48 c7 c6 77 b1 0b 8e ba 7e 04 00 00 48 c7 c1 00 ef 48 8c e8 92 93 1d 00 90 0f 0b e8 5a f1 12 fe 90 <0f> 0b e8 52 f1 12 fe 90 0f 0b e8 4a f1 12 fe 90 0f 0b e8 42 f1 12
RSP: 0018:ffffc90002c0ee20 EFLAGS: 00010293
RAX: ffffffff8380b546 RBX: ffff888042afc1a0 RCX: ffff88801e3e2440
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffffc90002c0f170 R08: ffffffff83809cae R09: 1ffff1100855f804
R10: dffffc0000000000 R11: ffffed100855f805 R12: 0000000000000000
R13: ffff888041224000 R14: ffff888042afc178 R15: 0000000000000000
FS: 000055555ae8d380(0000) GS:ffff88801fe00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020201000 CR3: 00000000378be000 CR4: 0000000000350ef0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
ocfs2_write_begin_nolock+0x3a2f/0x4ec0 fs/ocfs2/aops.c:1816
ocfs2_write_begin+0x205/0x3a0 fs/ocfs2/aops.c:1903
generic_perform_write+0x37e/0x730 mm/filemap.c:4025
ocfs2_file_write_iter+0x17b1/0x1f50 fs/ocfs2/file.c:2456
new_sync_write fs/read_write.c:590 [inline]
vfs_write+0xa6d/0xc90 fs/read_write.c:683
ksys_write+0x1a0/0x2c0 fs/read_write.c:736
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:0x7f459d01dad9
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 f1 17 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:00007ffd75106768 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f459d01dad9
RDX: 000000000208e24b RSI: 0000000020000240 RDI: 0000000000000004
RBP: 00007f459d0955f0 R08: 000055555ae8e4c0 R09: 000055555ae8e4c0
R10: 0000000000004428 R11: 0000000000000246 R12: 00007ffd75106790
R13: 00007ffd751069b8 R14: 431bde82d7b634db R15: 00007f459d06603b
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:ocfs2_write_cluster fs/ocfs2/aops.c:1179 [inline]
RIP: 0010:ocfs2_write_cluster_by_desc+0x1fc7/0x1ff0 fs/ocfs2/aops.c:1240
Code: 03 48 8d bc 24 30 02 00 00 48 c7 c6 77 b1 0b 8e ba 7e 04 00 00 48 c7 c1 00 ef 48 8c e8 92 93 1d 00 90 0f 0b e8 5a f1 12 fe 90 <0f> 0b e8 52 f1 12 fe 90 0f 0b e8 4a f1 12 fe 90 0f 0b e8 42 f1 12
RSP: 0018:ffffc90002c0ee20 EFLAGS: 00010293
RAX: ffffffff8380b546 RBX: ffff888042afc1a0 RCX: ffff88801e3e2440
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffffc90002c0f170 R08: ffffffff83809cae R09: 1ffff1100855f804
R10: dffffc0000000000 R11: ffffed100855f805 R12: 0000000000000000
R13: ffff888041224000 R14: ffff888042afc178 R15: 0000000000000000
FS: 000055555ae8d380(0000) GS:ffff88801fe00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020201000 CR3: 00000000378be000 CR4: 0000000000350ef0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@googlegroups.com.
syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.
If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)
If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report
If you want to undo deduplication, reply with:
#syz undup
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [syzbot] kernel BUG in ocfs2_write_cluster_by_desc
2024-09-16 18:35 [syzbot] [ocfs2?] kernel BUG in ocfs2_write_cluster_by_desc syzbot
@ 2024-09-17 16:26 ` syzbot
2024-09-18 15:22 ` syzbot
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: syzbot @ 2024-09-17 16:26 UTC (permalink / raw)
To: linux-kernel
For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org.
***
Subject: kernel BUG in ocfs2_write_cluster_by_desc
Author: pvmohammedanees2003@gmail.com
#syz test
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [syzbot] kernel BUG in ocfs2_write_cluster_by_desc
2024-09-16 18:35 [syzbot] [ocfs2?] kernel BUG in ocfs2_write_cluster_by_desc syzbot
2024-09-17 16:26 ` [syzbot] " syzbot
@ 2024-09-18 15:22 ` syzbot
2024-09-18 15:53 ` syzbot
2024-09-23 8:15 ` [syzbot] [ocfs2?] " heming.zhao
3 siblings, 0 replies; 6+ messages in thread
From: syzbot @ 2024-09-18 15:22 UTC (permalink / raw)
To: linux-kernel
For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org.
***
Subject: kernel BUG in ocfs2_write_cluster_by_desc
Author: pvmohammedanees2003@gmail.com
#syz test
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [syzbot] kernel BUG in ocfs2_write_cluster_by_desc
2024-09-16 18:35 [syzbot] [ocfs2?] kernel BUG in ocfs2_write_cluster_by_desc syzbot
2024-09-17 16:26 ` [syzbot] " syzbot
2024-09-18 15:22 ` syzbot
@ 2024-09-18 15:53 ` syzbot
2024-09-23 8:15 ` [syzbot] [ocfs2?] " heming.zhao
3 siblings, 0 replies; 6+ messages in thread
From: syzbot @ 2024-09-18 15:53 UTC (permalink / raw)
To: linux-kernel
For archival purposes, forwarding an incoming command email to
linux-kernel@vger.kernel.org.
***
Subject: kernel BUG in ocfs2_write_cluster_by_desc
Author: pvmohammedanees2003@gmail.com
#syz test
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [syzbot] [ocfs2?] kernel BUG in ocfs2_write_cluster_by_desc
2024-09-16 18:35 [syzbot] [ocfs2?] kernel BUG in ocfs2_write_cluster_by_desc syzbot
` (2 preceding siblings ...)
2024-09-18 15:53 ` syzbot
@ 2024-09-23 8:15 ` heming.zhao
2024-09-23 8:31 ` syzbot
3 siblings, 1 reply; 6+ messages in thread
From: heming.zhao @ 2024-09-23 8:15 UTC (permalink / raw)
To: syzbot; +Cc: Joseph Qi, linux-kernel, ocfs2-devel, Mohammed Anees,
syzkaller-bugs
Regarding the mail thread: [PATCH 2/2] osfs2: Fix kernel BUG in ocfs2_write_cluster
Both ocfs2_search_chain and ocfs2_search_one_group call ocfs2_cluster_group_search to search for an extent cluster block. It seems that the ocfs2_cluster_group_search() sets wrong res->sr_bit_offset.
Just from the code logic, in ocfs2_block_group_find_clear_bits(), the ocfs2_find_next_zero_bit() returns ZERO which can trigger this bug. But in the real world, this function never return 0, because the 0-bit is always set to 1 for the cluster-group itself.
let's verify my thoughts.
#syz test
diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
index f7b483f0de2a..d4e563281c9e 100644
--- a/fs/ocfs2/suballoc.c
+++ b/fs/ocfs2/suballoc.c
@@ -1346,13 +1346,17 @@ static int ocfs2_block_group_find_clear_bits(struct ocfs2_super *osb,
/* best_size will be allocated, we save prev_best_size */
res->sr_max_contig_bits = prev_best_size;
- if (best_size) {
- res->sr_bit_offset = best_offset;
- res->sr_bits = best_size;
- } else {
+ if (!best_size) {
status = -ENOSPC;
- /* No error log here -- see the comment above
- * ocfs2_test_bg_bit_allocatable */
+ } else {
+ if (best_size) {
+ res->sr_bit_offset = best_offset;
+ res->sr_bits = best_size;
+ } else {
+ status = -ENOSPC;
+ /* No error log here -- see the comment above
+ * ocfs2_test_bg_bit_allocatable */
+ }
}
return status;
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [syzbot] [ocfs2?] kernel BUG in ocfs2_write_cluster_by_desc
2024-09-23 8:15 ` [syzbot] [ocfs2?] " heming.zhao
@ 2024-09-23 8:31 ` syzbot
0 siblings, 0 replies; 6+ messages in thread
From: syzbot @ 2024-09-23 8:31 UTC (permalink / raw)
To: heming.zhao, joseph.qi, linux-kernel, ocfs2-devel,
pvmohammedanees2003, syzkaller-bugs
Hello,
syzbot has tested the proposed patch but the reproducer is still triggering an issue:
kernel BUG in ocfs2_write_cluster_by_desc
loop0: detected capacity change from 0 to 32768
ocfs2: Mounting device (7,0) on (node local, slot 0) with ordered data mode.
------------[ cut here ]------------
kernel BUG at fs/ocfs2/aops.c:1179!
Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN NOPTI
CPU: 0 UID: 0 PID: 5600 Comm: syz.0.16 Not tainted 6.11.0-syzkaller-08833-gde5cb0dcb74c-dirty #0
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
RIP: 0010:ocfs2_write_cluster fs/ocfs2/aops.c:1179 [inline]
RIP: 0010:ocfs2_write_cluster_by_desc+0x207b/0x20b0 fs/ocfs2/aops.c:1240
Code: 03 48 8d bc 24 30 02 00 00 48 c7 c6 2e 2b 11 8e ba 7e 04 00 00 48 c7 c1 80 23 49 8c e8 7e 96 1d 00 90 0f 0b e8 c6 b7 0f fe 90 <0f> 0b e8 be b7 0f fe 90 0f 0b e8 b6 b7 0f fe 90 0f 0b e8 ae b7 0f
RSP: 0018:ffffc90002a3ee20 EFLAGS: 00010293
RAX: ffffffff838501ea RBX: ffff8880493116e0 RCX: ffff88801fa3c880
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffffc90002a3f170 R08: ffffffff8384e89e R09: 1ffff110092622ac
R10: dffffc0000000000 R11: ffffed10092622ad R12: 0000000000000000
R13: ffff8880126f0000 R14: ffff8880493116b8 R15: 0000000000000000
FS: 00007f40e6b146c0(0000) GS:ffff88801fc00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020201000 CR3: 000000001317a000 CR4: 0000000000350ef0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
ocfs2_write_begin_nolock+0x3a2f/0x4ec0 fs/ocfs2/aops.c:1816
ocfs2_write_begin+0x205/0x3a0 fs/ocfs2/aops.c:1903
generic_perform_write+0x344/0x6d0 mm/filemap.c:4050
ocfs2_file_write_iter+0x17b1/0x1f50 fs/ocfs2/file.c:2456
new_sync_write fs/read_write.c:590 [inline]
vfs_write+0xa6d/0xc90 fs/read_write.c:683
ksys_write+0x1a0/0x2c0 fs/read_write.c:736
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:0x7f40e5d7def9
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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 a8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f40e6b14038 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 00007f40e5f35f80 RCX: 00007f40e5d7def9
RDX: 000000000208e24b RSI: 0000000020000240 RDI: 0000000000000004
RBP: 00007f40e5df0b76 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 0000000000000000 R14: 00007f40e5f35f80 R15: 00007ffed859a9e8
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:ocfs2_write_cluster fs/ocfs2/aops.c:1179 [inline]
RIP: 0010:ocfs2_write_cluster_by_desc+0x207b/0x20b0 fs/ocfs2/aops.c:1240
Code: 03 48 8d bc 24 30 02 00 00 48 c7 c6 2e 2b 11 8e ba 7e 04 00 00 48 c7 c1 80 23 49 8c e8 7e 96 1d 00 90 0f 0b e8 c6 b7 0f fe 90 <0f> 0b e8 be b7 0f fe 90 0f 0b e8 b6 b7 0f fe 90 0f 0b e8 ae b7 0f
RSP: 0018:ffffc90002a3ee20 EFLAGS: 00010293
RAX: ffffffff838501ea RBX: ffff8880493116e0 RCX: ffff88801fa3c880
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: ffffc90002a3f170 R08: ffffffff8384e89e R09: 1ffff110092622ac
R10: dffffc0000000000 R11: ffffed10092622ad R12: 0000000000000000
R13: ffff8880126f0000 R14: ffff8880493116b8 R15: 0000000000000000
FS: 00007f40e6b146c0(0000) GS:ffff88801fc00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020201000 CR3: 000000001317a000 CR4: 0000000000350ef0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Tested on:
commit: de5cb0dc Merge branch 'address-masking'
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=10b99c27980000
kernel config: https://syzkaller.appspot.com/x/.config?x=5b5c53071a819d59
dashboard link: https://syzkaller.appspot.com/bug?extid=18a87160c7d64ba2e2f6
compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
patch: https://syzkaller.appspot.com/x/patch.diff?x=148fc107980000
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-09-23 8:31 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-16 18:35 [syzbot] [ocfs2?] kernel BUG in ocfs2_write_cluster_by_desc syzbot
2024-09-17 16:26 ` [syzbot] " syzbot
2024-09-18 15:22 ` syzbot
2024-09-18 15:53 ` syzbot
2024-09-23 8:15 ` [syzbot] [ocfs2?] " heming.zhao
2024-09-23 8:31 ` syzbot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox