* [syzbot] [bcachefs?] KMSAN: uninit-value in bch2_extent_update_i_size_sectors @ 2024-05-11 20:52 syzbot 2024-05-22 23:49 ` Kent Overstreet 2024-08-22 17:05 ` [syzbot] " syzbot 0 siblings, 2 replies; 5+ messages in thread From: syzbot @ 2024-05-11 20:52 UTC (permalink / raw) To: bfoster, kent.overstreet, linux-bcachefs, linux-kernel, syzkaller-bugs Hello, syzbot found the following issue on: HEAD commit: dccb07f2914c Merge tag 'for-6.9-rc7-tag' of git://git.kern.. git tree: upstream console output: https://syzkaller.appspot.com/x/log.txt?x=14c66e24980000 kernel config: https://syzkaller.appspot.com/x/.config?x=617171361dd3cd47 dashboard link: https://syzkaller.appspot.com/bug?extid=eceea46e8838baeeba67 compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 Unfortunately, I don't have any reproducer for this issue yet. Downloadable assets: disk image: https://storage.googleapis.com/syzbot-assets/fdbc7be30633/disk-dccb07f2.raw.xz vmlinux: https://storage.googleapis.com/syzbot-assets/a9e4c11aa835/vmlinux-dccb07f2.xz kernel image: https://storage.googleapis.com/syzbot-assets/43c3a343ea93/bzImage-dccb07f2.xz IMPORTANT: if you fix the issue, please add the following tag to the commit: Reported-by: syzbot+eceea46e8838baeeba67@syzkaller.appspotmail.com bcachefs (loop0): snapshots_read... done bcachefs (loop0): journal_replay... done bcachefs (loop0): resume_logged_ops... done bcachefs (loop0): going read-write bcachefs (loop0): done starting filesystem ===================================================== BUG: KMSAN: uninit-value in bch2_extent_update_i_size_sectors+0x140f/0x17d0 fs/bcachefs/io_write.c:237 bch2_extent_update_i_size_sectors+0x140f/0x17d0 fs/bcachefs/io_write.c:237 bch2_extent_update+0x4f5/0xac0 fs/bcachefs/io_write.c:314 bch2_write_index_default fs/bcachefs/io_write.c:366 [inline] __bch2_write_index+0x1653/0x2bd0 fs/bcachefs/io_write.c:520 bch2_write_data_inline fs/bcachefs/io_write.c:1538 [inline] bch2_write+0x1a13/0x1b40 fs/bcachefs/io_write.c:1606 closure_queue include/linux/closure.h:257 [inline] closure_call include/linux/closure.h:390 [inline] bch2_writepage_do_io fs/bcachefs/fs-io-buffered.c:468 [inline] bch2_writepages+0x24a/0x3c0 fs/bcachefs/fs-io-buffered.c:660 do_writepages+0x427/0xc30 mm/page-writeback.c:2612 filemap_fdatawrite_wbc+0x1d8/0x270 mm/filemap.c:397 __filemap_fdatawrite_range+0xe3/0x120 mm/filemap.c:430 sync_file_range+0x316/0x450 fs/sync.c:292 ksys_sync_file_range fs/sync.c:364 [inline] __do_sys_sync_file_range fs/sync.c:373 [inline] __se_sys_sync_file_range fs/sync.c:370 [inline] __x64_sys_sync_file_range+0x15a/0x2a0 fs/sync.c:370 x64_sys_call+0xc90/0x3b50 arch/x86/include/generated/asm/syscalls_64.h:278 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f Uninit was stored to memory at: memcpy_u64s_small fs/bcachefs/util.h:511 [inline] bkey_reassemble fs/bcachefs/bkey.h:505 [inline] __bch2_bkey_make_mut_noupdate fs/bcachefs/btree_update.h:225 [inline] __bch2_bkey_get_mut_noupdate fs/bcachefs/btree_update.h:282 [inline] bch2_bkey_get_mut_noupdate fs/bcachefs/btree_update.h:293 [inline] bch2_extent_update_i_size_sectors+0x9a9/0x17d0 fs/bcachefs/io_write.c:219 bch2_extent_update+0x4f5/0xac0 fs/bcachefs/io_write.c:314 bch2_write_index_default fs/bcachefs/io_write.c:366 [inline] __bch2_write_index+0x1653/0x2bd0 fs/bcachefs/io_write.c:520 bch2_write_data_inline fs/bcachefs/io_write.c:1538 [inline] bch2_write+0x1a13/0x1b40 fs/bcachefs/io_write.c:1606 closure_queue include/linux/closure.h:257 [inline] closure_call include/linux/closure.h:390 [inline] bch2_writepage_do_io fs/bcachefs/fs-io-buffered.c:468 [inline] bch2_writepages+0x24a/0x3c0 fs/bcachefs/fs-io-buffered.c:660 do_writepages+0x427/0xc30 mm/page-writeback.c:2612 filemap_fdatawrite_wbc+0x1d8/0x270 mm/filemap.c:397 __filemap_fdatawrite_range+0xe3/0x120 mm/filemap.c:430 sync_file_range+0x316/0x450 fs/sync.c:292 ksys_sync_file_range fs/sync.c:364 [inline] __do_sys_sync_file_range fs/sync.c:373 [inline] __se_sys_sync_file_range fs/sync.c:370 [inline] __x64_sys_sync_file_range+0x15a/0x2a0 fs/sync.c:370 x64_sys_call+0xc90/0x3b50 arch/x86/include/generated/asm/syscalls_64.h:278 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f Uninit was stored to memory at: memcpy_u64s_small fs/bcachefs/util.h:511 [inline] bkey_reassemble fs/bcachefs/bkey.h:505 [inline] btree_key_cache_fill fs/bcachefs/btree_key_cache.c:454 [inline] bch2_btree_path_traverse_cached_slowpath+0x5f02/0x79f0 fs/bcachefs/btree_key_cache.c:530 bch2_btree_path_traverse_cached+0xd1a/0x1140 bch2_btree_path_traverse_one+0x737/0x5290 fs/bcachefs/btree_iter.c:1155 bch2_btree_path_traverse fs/bcachefs/btree_iter.h:225 [inline] bch2_btree_iter_peek_slot+0x128c/0x3840 fs/bcachefs/btree_iter.c:2473 __bch2_bkey_get_iter fs/bcachefs/btree_iter.h:549 [inline] __bch2_bkey_get_mut_noupdate fs/bcachefs/btree_update.h:278 [inline] bch2_bkey_get_mut_noupdate fs/bcachefs/btree_update.h:293 [inline] bch2_extent_update_i_size_sectors+0x404/0x17d0 fs/bcachefs/io_write.c:219 bch2_extent_update+0x4f5/0xac0 fs/bcachefs/io_write.c:314 bch2_write_index_default fs/bcachefs/io_write.c:366 [inline] __bch2_write_index+0x1653/0x2bd0 fs/bcachefs/io_write.c:520 bch2_write_data_inline fs/bcachefs/io_write.c:1538 [inline] bch2_write+0x1a13/0x1b40 fs/bcachefs/io_write.c:1606 closure_queue include/linux/closure.h:257 [inline] closure_call include/linux/closure.h:390 [inline] bch2_writepage_do_io fs/bcachefs/fs-io-buffered.c:468 [inline] bch2_writepages+0x24a/0x3c0 fs/bcachefs/fs-io-buffered.c:660 do_writepages+0x427/0xc30 mm/page-writeback.c:2612 filemap_fdatawrite_wbc+0x1d8/0x270 mm/filemap.c:397 __filemap_fdatawrite_range+0xe3/0x120 mm/filemap.c:430 sync_file_range+0x316/0x450 fs/sync.c:292 ksys_sync_file_range fs/sync.c:364 [inline] __do_sys_sync_file_range fs/sync.c:373 [inline] __se_sys_sync_file_range fs/sync.c:370 [inline] __x64_sys_sync_file_range+0x15a/0x2a0 fs/sync.c:370 x64_sys_call+0xc90/0x3b50 arch/x86/include/generated/asm/syscalls_64.h:278 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f Uninit was created at: __kmalloc_large_node+0x231/0x370 mm/slub.c:3927 __do_kmalloc_node mm/slub.c:3960 [inline] __kmalloc_node+0xb10/0x10c0 mm/slub.c:3979 kmalloc_node include/linux/slab.h:648 [inline] kvmalloc_node+0xc0/0x2d0 mm/util.c:634 kvmalloc include/linux/slab.h:766 [inline] btree_bounce_alloc fs/bcachefs/btree_io.c:118 [inline] bch2_btree_node_read_done+0x4e68/0x75e0 fs/bcachefs/btree_io.c:1185 btree_node_read_work+0x8a5/0x1eb0 fs/bcachefs/btree_io.c:1324 bch2_btree_node_read+0x3d42/0x4b50 __bch2_btree_root_read fs/bcachefs/btree_io.c:1748 [inline] bch2_btree_root_read+0xa6c/0x13d0 fs/bcachefs/btree_io.c:1772 read_btree_roots+0x454/0xee0 fs/bcachefs/recovery.c:457 bch2_fs_recovery+0x7adb/0x9310 fs/bcachefs/recovery.c:785 bch2_fs_start+0x7b2/0xbd0 fs/bcachefs/super.c:1043 bch2_fs_open+0x135f/0x1670 fs/bcachefs/super.c:2102 bch2_mount+0x90d/0x1d90 fs/bcachefs/fs.c:1903 legacy_get_tree+0x114/0x290 fs/fs_context.c:662 vfs_get_tree+0xa7/0x570 fs/super.c:1779 do_new_mount+0x71f/0x15e0 fs/namespace.c:3352 path_mount+0x742/0x1f20 fs/namespace.c:3679 do_mount fs/namespace.c:3692 [inline] __do_sys_mount fs/namespace.c:3898 [inline] __se_sys_mount+0x725/0x810 fs/namespace.c:3875 __x64_sys_mount+0xe4/0x150 fs/namespace.c:3875 x64_sys_call+0x2bf4/0x3b50 arch/x86/include/generated/asm/syscalls_64.h:166 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f CPU: 1 PID: 6218 Comm: syz-executor.0 Not tainted 6.9.0-rc7-syzkaller-00012-gdccb07f2914c #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024 ===================================================== --- 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 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] 5+ messages in thread
* Re: [syzbot] [bcachefs?] KMSAN: uninit-value in bch2_extent_update_i_size_sectors 2024-05-11 20:52 [syzbot] [bcachefs?] KMSAN: uninit-value in bch2_extent_update_i_size_sectors syzbot @ 2024-05-22 23:49 ` Kent Overstreet 2024-05-23 8:15 ` Alexander Potapenko 2024-08-22 17:05 ` [syzbot] " syzbot 1 sibling, 1 reply; 5+ messages in thread From: Kent Overstreet @ 2024-05-22 23:49 UTC (permalink / raw) To: syzbot, Alexander Potapenko Cc: bfoster, linux-bcachefs, linux-kernel, syzkaller-bugs This (and a few others I've looked at) look more likely to be bugs in KMSAN, not bcachefs. here, the supposedly uninitialized key was read in from disk, so the key couldn't possibly have been legitimately marked uninitialized. All the suspicious KMSAN splats I'm looking at involve bkeys, but I'm not seeing any other common factors besides that. On Sat, May 11, 2024 at 01:52:29PM -0700, syzbot wrote: > Hello, > > syzbot found the following issue on: > > HEAD commit: dccb07f2914c Merge tag 'for-6.9-rc7-tag' of git://git.kern.. > git tree: upstream > console output: https://syzkaller.appspot.com/x/log.txt?x=14c66e24980000 > kernel config: https://syzkaller.appspot.com/x/.config?x=617171361dd3cd47 > dashboard link: https://syzkaller.appspot.com/bug?extid=eceea46e8838baeeba67 > compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 > > Unfortunately, I don't have any reproducer for this issue yet. > > Downloadable assets: > disk image: https://storage.googleapis.com/syzbot-assets/fdbc7be30633/disk-dccb07f2.raw.xz > vmlinux: https://storage.googleapis.com/syzbot-assets/a9e4c11aa835/vmlinux-dccb07f2.xz > kernel image: https://storage.googleapis.com/syzbot-assets/43c3a343ea93/bzImage-dccb07f2.xz > > IMPORTANT: if you fix the issue, please add the following tag to the commit: > Reported-by: syzbot+eceea46e8838baeeba67@syzkaller.appspotmail.com > > bcachefs (loop0): snapshots_read... done > bcachefs (loop0): journal_replay... done > bcachefs (loop0): resume_logged_ops... done > bcachefs (loop0): going read-write > bcachefs (loop0): done starting filesystem > ===================================================== > BUG: KMSAN: uninit-value in bch2_extent_update_i_size_sectors+0x140f/0x17d0 fs/bcachefs/io_write.c:237 > bch2_extent_update_i_size_sectors+0x140f/0x17d0 fs/bcachefs/io_write.c:237 > bch2_extent_update+0x4f5/0xac0 fs/bcachefs/io_write.c:314 > bch2_write_index_default fs/bcachefs/io_write.c:366 [inline] > __bch2_write_index+0x1653/0x2bd0 fs/bcachefs/io_write.c:520 > bch2_write_data_inline fs/bcachefs/io_write.c:1538 [inline] > bch2_write+0x1a13/0x1b40 fs/bcachefs/io_write.c:1606 > closure_queue include/linux/closure.h:257 [inline] > closure_call include/linux/closure.h:390 [inline] > bch2_writepage_do_io fs/bcachefs/fs-io-buffered.c:468 [inline] > bch2_writepages+0x24a/0x3c0 fs/bcachefs/fs-io-buffered.c:660 > do_writepages+0x427/0xc30 mm/page-writeback.c:2612 > filemap_fdatawrite_wbc+0x1d8/0x270 mm/filemap.c:397 > __filemap_fdatawrite_range+0xe3/0x120 mm/filemap.c:430 > sync_file_range+0x316/0x450 fs/sync.c:292 > ksys_sync_file_range fs/sync.c:364 [inline] > __do_sys_sync_file_range fs/sync.c:373 [inline] > __se_sys_sync_file_range fs/sync.c:370 [inline] > __x64_sys_sync_file_range+0x15a/0x2a0 fs/sync.c:370 > x64_sys_call+0xc90/0x3b50 arch/x86/include/generated/asm/syscalls_64.h:278 > do_syscall_x64 arch/x86/entry/common.c:52 [inline] > do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83 > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > Uninit was stored to memory at: > memcpy_u64s_small fs/bcachefs/util.h:511 [inline] > bkey_reassemble fs/bcachefs/bkey.h:505 [inline] > __bch2_bkey_make_mut_noupdate fs/bcachefs/btree_update.h:225 [inline] > __bch2_bkey_get_mut_noupdate fs/bcachefs/btree_update.h:282 [inline] > bch2_bkey_get_mut_noupdate fs/bcachefs/btree_update.h:293 [inline] > bch2_extent_update_i_size_sectors+0x9a9/0x17d0 fs/bcachefs/io_write.c:219 > bch2_extent_update+0x4f5/0xac0 fs/bcachefs/io_write.c:314 > bch2_write_index_default fs/bcachefs/io_write.c:366 [inline] > __bch2_write_index+0x1653/0x2bd0 fs/bcachefs/io_write.c:520 > bch2_write_data_inline fs/bcachefs/io_write.c:1538 [inline] > bch2_write+0x1a13/0x1b40 fs/bcachefs/io_write.c:1606 > closure_queue include/linux/closure.h:257 [inline] > closure_call include/linux/closure.h:390 [inline] > bch2_writepage_do_io fs/bcachefs/fs-io-buffered.c:468 [inline] > bch2_writepages+0x24a/0x3c0 fs/bcachefs/fs-io-buffered.c:660 > do_writepages+0x427/0xc30 mm/page-writeback.c:2612 > filemap_fdatawrite_wbc+0x1d8/0x270 mm/filemap.c:397 > __filemap_fdatawrite_range+0xe3/0x120 mm/filemap.c:430 > sync_file_range+0x316/0x450 fs/sync.c:292 > ksys_sync_file_range fs/sync.c:364 [inline] > __do_sys_sync_file_range fs/sync.c:373 [inline] > __se_sys_sync_file_range fs/sync.c:370 [inline] > __x64_sys_sync_file_range+0x15a/0x2a0 fs/sync.c:370 > x64_sys_call+0xc90/0x3b50 arch/x86/include/generated/asm/syscalls_64.h:278 > do_syscall_x64 arch/x86/entry/common.c:52 [inline] > do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83 > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > Uninit was stored to memory at: > memcpy_u64s_small fs/bcachefs/util.h:511 [inline] > bkey_reassemble fs/bcachefs/bkey.h:505 [inline] > btree_key_cache_fill fs/bcachefs/btree_key_cache.c:454 [inline] > bch2_btree_path_traverse_cached_slowpath+0x5f02/0x79f0 fs/bcachefs/btree_key_cache.c:530 > bch2_btree_path_traverse_cached+0xd1a/0x1140 > bch2_btree_path_traverse_one+0x737/0x5290 fs/bcachefs/btree_iter.c:1155 > bch2_btree_path_traverse fs/bcachefs/btree_iter.h:225 [inline] > bch2_btree_iter_peek_slot+0x128c/0x3840 fs/bcachefs/btree_iter.c:2473 > __bch2_bkey_get_iter fs/bcachefs/btree_iter.h:549 [inline] > __bch2_bkey_get_mut_noupdate fs/bcachefs/btree_update.h:278 [inline] > bch2_bkey_get_mut_noupdate fs/bcachefs/btree_update.h:293 [inline] > bch2_extent_update_i_size_sectors+0x404/0x17d0 fs/bcachefs/io_write.c:219 > bch2_extent_update+0x4f5/0xac0 fs/bcachefs/io_write.c:314 > bch2_write_index_default fs/bcachefs/io_write.c:366 [inline] > __bch2_write_index+0x1653/0x2bd0 fs/bcachefs/io_write.c:520 > bch2_write_data_inline fs/bcachefs/io_write.c:1538 [inline] > bch2_write+0x1a13/0x1b40 fs/bcachefs/io_write.c:1606 > closure_queue include/linux/closure.h:257 [inline] > closure_call include/linux/closure.h:390 [inline] > bch2_writepage_do_io fs/bcachefs/fs-io-buffered.c:468 [inline] > bch2_writepages+0x24a/0x3c0 fs/bcachefs/fs-io-buffered.c:660 > do_writepages+0x427/0xc30 mm/page-writeback.c:2612 > filemap_fdatawrite_wbc+0x1d8/0x270 mm/filemap.c:397 > __filemap_fdatawrite_range+0xe3/0x120 mm/filemap.c:430 > sync_file_range+0x316/0x450 fs/sync.c:292 > ksys_sync_file_range fs/sync.c:364 [inline] > __do_sys_sync_file_range fs/sync.c:373 [inline] > __se_sys_sync_file_range fs/sync.c:370 [inline] > __x64_sys_sync_file_range+0x15a/0x2a0 fs/sync.c:370 > x64_sys_call+0xc90/0x3b50 arch/x86/include/generated/asm/syscalls_64.h:278 > do_syscall_x64 arch/x86/entry/common.c:52 [inline] > do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83 > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > Uninit was created at: > __kmalloc_large_node+0x231/0x370 mm/slub.c:3927 > __do_kmalloc_node mm/slub.c:3960 [inline] > __kmalloc_node+0xb10/0x10c0 mm/slub.c:3979 > kmalloc_node include/linux/slab.h:648 [inline] > kvmalloc_node+0xc0/0x2d0 mm/util.c:634 > kvmalloc include/linux/slab.h:766 [inline] > btree_bounce_alloc fs/bcachefs/btree_io.c:118 [inline] > bch2_btree_node_read_done+0x4e68/0x75e0 fs/bcachefs/btree_io.c:1185 > btree_node_read_work+0x8a5/0x1eb0 fs/bcachefs/btree_io.c:1324 > bch2_btree_node_read+0x3d42/0x4b50 > __bch2_btree_root_read fs/bcachefs/btree_io.c:1748 [inline] > bch2_btree_root_read+0xa6c/0x13d0 fs/bcachefs/btree_io.c:1772 > read_btree_roots+0x454/0xee0 fs/bcachefs/recovery.c:457 > bch2_fs_recovery+0x7adb/0x9310 fs/bcachefs/recovery.c:785 > bch2_fs_start+0x7b2/0xbd0 fs/bcachefs/super.c:1043 > bch2_fs_open+0x135f/0x1670 fs/bcachefs/super.c:2102 > bch2_mount+0x90d/0x1d90 fs/bcachefs/fs.c:1903 > legacy_get_tree+0x114/0x290 fs/fs_context.c:662 > vfs_get_tree+0xa7/0x570 fs/super.c:1779 > do_new_mount+0x71f/0x15e0 fs/namespace.c:3352 > path_mount+0x742/0x1f20 fs/namespace.c:3679 > do_mount fs/namespace.c:3692 [inline] > __do_sys_mount fs/namespace.c:3898 [inline] > __se_sys_mount+0x725/0x810 fs/namespace.c:3875 > __x64_sys_mount+0xe4/0x150 fs/namespace.c:3875 > x64_sys_call+0x2bf4/0x3b50 arch/x86/include/generated/asm/syscalls_64.h:166 > do_syscall_x64 arch/x86/entry/common.c:52 [inline] > do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83 > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > CPU: 1 PID: 6218 Comm: syz-executor.0 Not tainted 6.9.0-rc7-syzkaller-00012-gdccb07f2914c #0 > Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024 > ===================================================== > > > --- > 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 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] 5+ messages in thread
* Re: [syzbot] [bcachefs?] KMSAN: uninit-value in bch2_extent_update_i_size_sectors 2024-05-22 23:49 ` Kent Overstreet @ 2024-05-23 8:15 ` Alexander Potapenko 2024-05-28 8:19 ` Alexander Potapenko 0 siblings, 1 reply; 5+ messages in thread From: Alexander Potapenko @ 2024-05-23 8:15 UTC (permalink / raw) To: Kent Overstreet Cc: syzbot, bfoster, linux-bcachefs, linux-kernel, syzkaller-bugs On Thu, May 23, 2024 at 1:49 AM Kent Overstreet <kent.overstreet@linux.dev> wrote: > > This (and a few others I've looked at) look more likely to be bugs in > KMSAN, not bcachefs. Yeah, this is possible if we are missing some initialization. > > here, the supposedly uninitialized key was read in from disk, so the key > couldn't possibly have been legitimately marked uninitialized. Am I right that the key is supposed to be initialized before the first call of memcpy_u64s_small() (the _lower_ "Uninit was stored to memory at:" stack trace)? Do you have an idea what code performed the actual load of the data from disk? If that load was done by some assembly routine, we could've easily missed that - in that case we'll need to annotate it to fix the false positives. > > All the suspicious KMSAN splats I'm looking at involve bkeys, but I'm > not seeing any other common factors besides that. > > On Sat, May 11, 2024 at 01:52:29PM -0700, syzbot wrote: > > Hello, > > > > syzbot found the following issue on: > > > > HEAD commit: dccb07f2914c Merge tag 'for-6.9-rc7-tag' of git://git.kern.. > > git tree: upstream > > console output: https://syzkaller.appspot.com/x/log.txt?x=14c66e24980000 > > kernel config: https://syzkaller.appspot.com/x/.config?x=617171361dd3cd47 > > dashboard link: https://syzkaller.appspot.com/bug?extid=eceea46e8838baeeba67 > > compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 > > > > Unfortunately, I don't have any reproducer for this issue yet. > > > > Downloadable assets: > > disk image: https://storage.googleapis.com/syzbot-assets/fdbc7be30633/disk-dccb07f2.raw.xz > > vmlinux: https://storage.googleapis.com/syzbot-assets/a9e4c11aa835/vmlinux-dccb07f2.xz > > kernel image: https://storage.googleapis.com/syzbot-assets/43c3a343ea93/bzImage-dccb07f2.xz > > > > IMPORTANT: if you fix the issue, please add the following tag to the commit: > > Reported-by: syzbot+eceea46e8838baeeba67@syzkaller.appspotmail.com > > > > bcachefs (loop0): snapshots_read... done > > bcachefs (loop0): journal_replay... done > > bcachefs (loop0): resume_logged_ops... done > > bcachefs (loop0): going read-write > > bcachefs (loop0): done starting filesystem > > ===================================================== > > BUG: KMSAN: uninit-value in bch2_extent_update_i_size_sectors+0x140f/0x17d0 fs/bcachefs/io_write.c:237 > > bch2_extent_update_i_size_sectors+0x140f/0x17d0 fs/bcachefs/io_write.c:237 > > bch2_extent_update+0x4f5/0xac0 fs/bcachefs/io_write.c:314 > > bch2_write_index_default fs/bcachefs/io_write.c:366 [inline] > > __bch2_write_index+0x1653/0x2bd0 fs/bcachefs/io_write.c:520 > > bch2_write_data_inline fs/bcachefs/io_write.c:1538 [inline] > > bch2_write+0x1a13/0x1b40 fs/bcachefs/io_write.c:1606 > > closure_queue include/linux/closure.h:257 [inline] > > closure_call include/linux/closure.h:390 [inline] > > bch2_writepage_do_io fs/bcachefs/fs-io-buffered.c:468 [inline] > > bch2_writepages+0x24a/0x3c0 fs/bcachefs/fs-io-buffered.c:660 > > do_writepages+0x427/0xc30 mm/page-writeback.c:2612 > > filemap_fdatawrite_wbc+0x1d8/0x270 mm/filemap.c:397 > > __filemap_fdatawrite_range+0xe3/0x120 mm/filemap.c:430 > > sync_file_range+0x316/0x450 fs/sync.c:292 > > ksys_sync_file_range fs/sync.c:364 [inline] > > __do_sys_sync_file_range fs/sync.c:373 [inline] > > __se_sys_sync_file_range fs/sync.c:370 [inline] > > __x64_sys_sync_file_range+0x15a/0x2a0 fs/sync.c:370 > > x64_sys_call+0xc90/0x3b50 arch/x86/include/generated/asm/syscalls_64.h:278 > > do_syscall_x64 arch/x86/entry/common.c:52 [inline] > > do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83 > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > Uninit was stored to memory at: > > memcpy_u64s_small fs/bcachefs/util.h:511 [inline] > > bkey_reassemble fs/bcachefs/bkey.h:505 [inline] > > __bch2_bkey_make_mut_noupdate fs/bcachefs/btree_update.h:225 [inline] > > __bch2_bkey_get_mut_noupdate fs/bcachefs/btree_update.h:282 [inline] > > bch2_bkey_get_mut_noupdate fs/bcachefs/btree_update.h:293 [inline] > > bch2_extent_update_i_size_sectors+0x9a9/0x17d0 fs/bcachefs/io_write.c:219 > > bch2_extent_update+0x4f5/0xac0 fs/bcachefs/io_write.c:314 > > bch2_write_index_default fs/bcachefs/io_write.c:366 [inline] > > __bch2_write_index+0x1653/0x2bd0 fs/bcachefs/io_write.c:520 > > bch2_write_data_inline fs/bcachefs/io_write.c:1538 [inline] > > bch2_write+0x1a13/0x1b40 fs/bcachefs/io_write.c:1606 > > closure_queue include/linux/closure.h:257 [inline] > > closure_call include/linux/closure.h:390 [inline] > > bch2_writepage_do_io fs/bcachefs/fs-io-buffered.c:468 [inline] > > bch2_writepages+0x24a/0x3c0 fs/bcachefs/fs-io-buffered.c:660 > > do_writepages+0x427/0xc30 mm/page-writeback.c:2612 > > filemap_fdatawrite_wbc+0x1d8/0x270 mm/filemap.c:397 > > __filemap_fdatawrite_range+0xe3/0x120 mm/filemap.c:430 > > sync_file_range+0x316/0x450 fs/sync.c:292 > > ksys_sync_file_range fs/sync.c:364 [inline] > > __do_sys_sync_file_range fs/sync.c:373 [inline] > > __se_sys_sync_file_range fs/sync.c:370 [inline] > > __x64_sys_sync_file_range+0x15a/0x2a0 fs/sync.c:370 > > x64_sys_call+0xc90/0x3b50 arch/x86/include/generated/asm/syscalls_64.h:278 > > do_syscall_x64 arch/x86/entry/common.c:52 [inline] > > do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83 > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > Uninit was stored to memory at: > > memcpy_u64s_small fs/bcachefs/util.h:511 [inline] > > bkey_reassemble fs/bcachefs/bkey.h:505 [inline] > > btree_key_cache_fill fs/bcachefs/btree_key_cache.c:454 [inline] > > bch2_btree_path_traverse_cached_slowpath+0x5f02/0x79f0 fs/bcachefs/btree_key_cache.c:530 > > bch2_btree_path_traverse_cached+0xd1a/0x1140 > > bch2_btree_path_traverse_one+0x737/0x5290 fs/bcachefs/btree_iter.c:1155 > > bch2_btree_path_traverse fs/bcachefs/btree_iter.h:225 [inline] > > bch2_btree_iter_peek_slot+0x128c/0x3840 fs/bcachefs/btree_iter.c:2473 > > __bch2_bkey_get_iter fs/bcachefs/btree_iter.h:549 [inline] > > __bch2_bkey_get_mut_noupdate fs/bcachefs/btree_update.h:278 [inline] > > bch2_bkey_get_mut_noupdate fs/bcachefs/btree_update.h:293 [inline] > > bch2_extent_update_i_size_sectors+0x404/0x17d0 fs/bcachefs/io_write.c:219 > > bch2_extent_update+0x4f5/0xac0 fs/bcachefs/io_write.c:314 > > bch2_write_index_default fs/bcachefs/io_write.c:366 [inline] > > __bch2_write_index+0x1653/0x2bd0 fs/bcachefs/io_write.c:520 > > bch2_write_data_inline fs/bcachefs/io_write.c:1538 [inline] > > bch2_write+0x1a13/0x1b40 fs/bcachefs/io_write.c:1606 > > closure_queue include/linux/closure.h:257 [inline] > > closure_call include/linux/closure.h:390 [inline] > > bch2_writepage_do_io fs/bcachefs/fs-io-buffered.c:468 [inline] > > bch2_writepages+0x24a/0x3c0 fs/bcachefs/fs-io-buffered.c:660 > > do_writepages+0x427/0xc30 mm/page-writeback.c:2612 > > filemap_fdatawrite_wbc+0x1d8/0x270 mm/filemap.c:397 > > __filemap_fdatawrite_range+0xe3/0x120 mm/filemap.c:430 > > sync_file_range+0x316/0x450 fs/sync.c:292 > > ksys_sync_file_range fs/sync.c:364 [inline] > > __do_sys_sync_file_range fs/sync.c:373 [inline] > > __se_sys_sync_file_range fs/sync.c:370 [inline] > > __x64_sys_sync_file_range+0x15a/0x2a0 fs/sync.c:370 > > x64_sys_call+0xc90/0x3b50 arch/x86/include/generated/asm/syscalls_64.h:278 > > do_syscall_x64 arch/x86/entry/common.c:52 [inline] > > do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83 > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > Uninit was created at: > > __kmalloc_large_node+0x231/0x370 mm/slub.c:3927 > > __do_kmalloc_node mm/slub.c:3960 [inline] > > __kmalloc_node+0xb10/0x10c0 mm/slub.c:3979 > > kmalloc_node include/linux/slab.h:648 [inline] > > kvmalloc_node+0xc0/0x2d0 mm/util.c:634 > > kvmalloc include/linux/slab.h:766 [inline] > > btree_bounce_alloc fs/bcachefs/btree_io.c:118 [inline] > > bch2_btree_node_read_done+0x4e68/0x75e0 fs/bcachefs/btree_io.c:1185 > > btree_node_read_work+0x8a5/0x1eb0 fs/bcachefs/btree_io.c:1324 > > bch2_btree_node_read+0x3d42/0x4b50 > > __bch2_btree_root_read fs/bcachefs/btree_io.c:1748 [inline] > > bch2_btree_root_read+0xa6c/0x13d0 fs/bcachefs/btree_io.c:1772 > > read_btree_roots+0x454/0xee0 fs/bcachefs/recovery.c:457 > > bch2_fs_recovery+0x7adb/0x9310 fs/bcachefs/recovery.c:785 > > bch2_fs_start+0x7b2/0xbd0 fs/bcachefs/super.c:1043 > > bch2_fs_open+0x135f/0x1670 fs/bcachefs/super.c:2102 > > bch2_mount+0x90d/0x1d90 fs/bcachefs/fs.c:1903 > > legacy_get_tree+0x114/0x290 fs/fs_context.c:662 > > vfs_get_tree+0xa7/0x570 fs/super.c:1779 > > do_new_mount+0x71f/0x15e0 fs/namespace.c:3352 > > path_mount+0x742/0x1f20 fs/namespace.c:3679 > > do_mount fs/namespace.c:3692 [inline] > > __do_sys_mount fs/namespace.c:3898 [inline] > > __se_sys_mount+0x725/0x810 fs/namespace.c:3875 > > __x64_sys_mount+0xe4/0x150 fs/namespace.c:3875 > > x64_sys_call+0x2bf4/0x3b50 arch/x86/include/generated/asm/syscalls_64.h:166 > > do_syscall_x64 arch/x86/entry/common.c:52 [inline] > > do_syscall_64+0xcf/0x1e0 arch/x86/entry/common.c:83 > > entry_SYSCALL_64_after_hwframe+0x77/0x7f > > > > CPU: 1 PID: 6218 Comm: syz-executor.0 Not tainted 6.9.0-rc7-syzkaller-00012-gdccb07f2914c #0 > > Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024 > > ===================================================== > > > > > > --- > > 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 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 -- Alexander Potapenko Software Engineer Google Germany GmbH Erika-Mann-Straße, 33 80636 München Geschäftsführer: Paul Manicle, Liana Sebastian Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [syzbot] [bcachefs?] KMSAN: uninit-value in bch2_extent_update_i_size_sectors 2024-05-23 8:15 ` Alexander Potapenko @ 2024-05-28 8:19 ` Alexander Potapenko 0 siblings, 0 replies; 5+ messages in thread From: Alexander Potapenko @ 2024-05-28 8:19 UTC (permalink / raw) To: Kent Overstreet Cc: syzbot, bfoster, linux-bcachefs, linux-kernel, syzkaller-bugs On Thu, May 23, 2024 at 10:15 AM Alexander Potapenko <glider@google.com> wrote: > > On Thu, May 23, 2024 at 1:49 AM Kent Overstreet > <kent.overstreet@linux.dev> wrote: > > > > This (and a few others I've looked at) look more likely to be bugs in > > KMSAN, not bcachefs. > > Yeah, this is possible if we are missing some initialization. > > > > > here, the supposedly uninitialized key was read in from disk, so the key > > couldn't possibly have been legitimately marked uninitialized. > > Am I right that the key is supposed to be initialized before the first > call of memcpy_u64s_small() (the _lower_ "Uninit was stored to memory > at:" stack trace)? > Do you have an idea what code performed the actual load of the data from disk? > If that load was done by some assembly routine, we could've easily > missed that - in that case we'll need to annotate it to fix the false > positives. I thought the initialization here was done by constructing a `struct bio` in fs/bcachefs/btree_io.c and passing it to submit_bio()/submit_bio_wait(), but I couldn't see return values of btree_bounce_alloc() being used in bio_vec elements. Are there other places that perform disk I/O? We need something similar to kmsan_handle_dma() (https://elixir.bootlin.com/linux/latest/source/mm/kmsan/hooks.c#L328), but for block IO, so that data copied from the device can be marked as initialized. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [syzbot] Re: [syzbot] [bcachefs?] KMSAN: uninit-value in bch2_extent_update_i_size_sectors 2024-05-11 20:52 [syzbot] [bcachefs?] KMSAN: uninit-value in bch2_extent_update_i_size_sectors syzbot 2024-05-22 23:49 ` Kent Overstreet @ 2024-08-22 17:05 ` syzbot 1 sibling, 0 replies; 5+ messages in thread From: syzbot @ 2024-08-22 17:05 UTC (permalink / raw) To: linux-kernel, syzkaller-bugs For archival purposes, forwarding an incoming command email to linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com. *** Subject: Re: [syzbot] [bcachefs?] KMSAN: uninit-value in bch2_extent_update_i_size_sectors Author: kent.overstreet@linux.dev #syz invalid ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-08-22 17:05 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-05-11 20:52 [syzbot] [bcachefs?] KMSAN: uninit-value in bch2_extent_update_i_size_sectors syzbot 2024-05-22 23:49 ` Kent Overstreet 2024-05-23 8:15 ` Alexander Potapenko 2024-05-28 8:19 ` Alexander Potapenko 2024-08-22 17:05 ` [syzbot] " syzbot
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox