syzbot


possible deadlock in hfs_find_init (2)

Status: upstream: reported C repro on 2022/12/27 00:59
Subsystems: hfs
[Documentation on labels]
Reported-by: syzbot+e390d66dda462b51fde1@syzkaller.appspotmail.com
First crash: 341d, last: 12h41m
Cause bisection: failed (error log, bisect log)
  
Discussions (1)
Title Replies (including bot) Last reply
[syzbot] [hfs?] possible deadlock in hfs_find_init (2) 0 (2) 2023/01/22 05:22
Similar bugs (5)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-5.15 possible deadlock in hfs_find_init origin:upstream C error 7 129d 251d 0/3 upstream: reported C repro on 2023/03/22 23:14
linux-4.14 possible deadlock in hfs_find_init hfs C 1 274d 307d 0/1 upstream: reported C repro on 2023/01/26 19:14
linux-4.19 possible deadlock in hfs_find_init hfs C error 7 269d 334d 0/1 upstream: reported C repro on 2022/12/30 06:08
linux-6.1 possible deadlock in hfs_find_init origin:upstream C 15 5d12h 254d 0/3 upstream: reported C repro on 2023/03/20 17:38
upstream possible deadlock in hfs_find_init hfs C done error 1 1056d 2046d 22/25 fixed on 2021/11/10 00:50
Last patch testing requests (10)
Created Duration User Patch Repo Result
2023/11/17 06:34 14m retest repro upstream report log
2023/11/03 06:11 17m retest repro upstream report log
2023/10/20 04:07 13m retest repro upstream report log
2023/10/20 04:07 14m retest repro upstream report log
2023/10/20 04:07 40m retest repro upstream report log
2023/09/07 00:22 22m retest repro git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci report log
2023/09/07 00:22 23m retest repro linux-next report log
2023/09/07 00:22 46m retest repro upstream report log
2023/09/07 00:22 22m retest repro upstream report log
2023/09/07 00:22 27m retest repro git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci report log

Sample crash report:
======================================================
WARNING: possible circular locking dependency detected
6.6.0-rc4-syzkaller-00037-g3006adf3be79 #0 Not tainted
------------------------------------------------------
syz-executor354/6862 is trying to acquire lock:
ffff88807d1320b0 (&tree->tree_lock/1){+.+.}-{3:3}, at: hfs_find_init+0x16e/0x1f0

but task is already holding lock:
ffff88801f4a9af8 (&HFS_I(tree->inode)->extents_lock){+.+.}-{3:3}, at: hfs_extend_file+0xff/0x1440 fs/hfs/extent.c:397

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #1 (&HFS_I(tree->inode)->extents_lock){+.+.}-{3:3}:
       __mutex_lock_common kernel/locking/mutex.c:603 [inline]
       __mutex_lock+0x136/0xd60 kernel/locking/mutex.c:747
       hfs_extend_file+0xff/0x1440 fs/hfs/extent.c:397
       hfs_bmap_reserve+0xd9/0x3f0 fs/hfs/btree.c:234
       __hfs_ext_write_extent+0x22e/0x4f0 fs/hfs/extent.c:121
       hfs_ext_write_extent+0x154/0x1d0 fs/hfs/extent.c:144
       hfs_write_inode+0xbc/0xec0 fs/hfs/inode.c:431
       write_inode fs/fs-writeback.c:1456 [inline]
       __writeback_single_inode+0x69b/0xfa0 fs/fs-writeback.c:1673
       writeback_sb_inodes+0x8e3/0x1210 fs/fs-writeback.c:1899
       wb_writeback+0x44d/0xc60 fs/fs-writeback.c:2075
       wb_do_writeback fs/fs-writeback.c:2222 [inline]
       wb_workfn+0x400/0xff0 fs/fs-writeback.c:2262
       process_one_work kernel/workqueue.c:2630 [inline]
       process_scheduled_works+0x90f/0x1400 kernel/workqueue.c:2703
       worker_thread+0xa5f/0xff0 kernel/workqueue.c:2784
       kthread+0x2d3/0x370 kernel/kthread.c:388
       ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:147
       ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:304

-> #0 (&tree->tree_lock/1){+.+.}-{3:3}:
       check_prev_add kernel/locking/lockdep.c:3134 [inline]
       check_prevs_add kernel/locking/lockdep.c:3253 [inline]
       validate_chain kernel/locking/lockdep.c:3868 [inline]
       __lock_acquire+0x39ff/0x7f70 kernel/locking/lockdep.c:5136
       lock_acquire+0x1e3/0x520 kernel/locking/lockdep.c:5753
       __mutex_lock_common kernel/locking/mutex.c:603 [inline]
       __mutex_lock+0x136/0xd60 kernel/locking/mutex.c:747
       hfs_find_init+0x16e/0x1f0
       hfs_ext_read_extent fs/hfs/extent.c:200 [inline]
       hfs_extend_file+0x31b/0x1440 fs/hfs/extent.c:401
       hfs_bmap_reserve+0xd9/0x3f0 fs/hfs/btree.c:234
       hfs_cat_create+0x1e0/0x970 fs/hfs/catalog.c:104
       hfs_create+0x66/0xd0 fs/hfs/dir.c:202
       lookup_open fs/namei.c:3495 [inline]
       open_last_lookups fs/namei.c:3563 [inline]
       path_openat+0x13e7/0x3180 fs/namei.c:3793
       do_filp_open+0x234/0x490 fs/namei.c:3823
       do_sys_openat2+0x13e/0x1d0 fs/open.c:1422
       do_sys_open fs/open.c:1437 [inline]
       __do_sys_openat fs/open.c:1453 [inline]
       __se_sys_openat fs/open.c:1448 [inline]
       __x64_sys_openat+0x247/0x290 fs/open.c:1448
       do_syscall_x64 arch/x86/entry/common.c:50 [inline]
       do_syscall_64+0x41/0xc0 arch/x86/entry/common.c:80
       entry_SYSCALL_64_after_hwframe+0x63/0xcd

other info that might help us debug this:

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(&HFS_I(tree->inode)->extents_lock);
                               lock(&tree->tree_lock/1);
                               lock(&HFS_I(tree->inode)->extents_lock);
  lock(&tree->tree_lock/1);

 *** DEADLOCK ***

4 locks held by syz-executor354/6862:
 #0: ffff88807d134410 (sb_writers#9){.+.+}-{0:0}, at: mnt_want_write+0x3f/0x90 fs/namespace.c:403
 #1: ffff88807d34dda8 (&type->i_mutex_dir_key#6){+.+.}-{3:3}, at: inode_lock include/linux/fs.h:802 [inline]
 #1: ffff88807d34dda8 (&type->i_mutex_dir_key#6){+.+.}-{3:3}, at: open_last_lookups fs/namei.c:3560 [inline]
 #1: ffff88807d34dda8 (&type->i_mutex_dir_key#6){+.+.}-{3:3}, at: path_openat+0x7c2/0x3180 fs/namei.c:3793
 #2: ffff88807d1300b0 (&tree->tree_lock){+.+.}-{3:3}, at: hfs_find_init+0x16e/0x1f0
 #3: ffff88801f4a9af8 (&HFS_I(tree->inode)->extents_lock){+.+.}-{3:3}, at: hfs_extend_file+0xff/0x1440 fs/hfs/extent.c:397

stack backtrace:
CPU: 0 PID: 6862 Comm: syz-executor354 Not tainted 6.6.0-rc4-syzkaller-00037-g3006adf3be79 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/06/2023
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x1e7/0x2d0 lib/dump_stack.c:106
 check_noncircular+0x375/0x4a0 kernel/locking/lockdep.c:2187
 check_prev_add kernel/locking/lockdep.c:3134 [inline]
 check_prevs_add kernel/locking/lockdep.c:3253 [inline]
 validate_chain kernel/locking/lockdep.c:3868 [inline]
 __lock_acquire+0x39ff/0x7f70 kernel/locking/lockdep.c:5136
 lock_acquire+0x1e3/0x520 kernel/locking/lockdep.c:5753
 __mutex_lock_common kernel/locking/mutex.c:603 [inline]
 __mutex_lock+0x136/0xd60 kernel/locking/mutex.c:747
 hfs_find_init+0x16e/0x1f0
 hfs_ext_read_extent fs/hfs/extent.c:200 [inline]
 hfs_extend_file+0x31b/0x1440 fs/hfs/extent.c:401
 hfs_bmap_reserve+0xd9/0x3f0 fs/hfs/btree.c:234
 hfs_cat_create+0x1e0/0x970 fs/hfs/catalog.c:104
 hfs_create+0x66/0xd0 fs/hfs/dir.c:202
 lookup_open fs/namei.c:3495 [inline]
 open_last_lookups fs/namei.c:3563 [inline]
 path_openat+0x13e7/0x3180 fs/namei.c:3793
 do_filp_open+0x234/0x490 fs/namei.c:3823
 do_sys_openat2+0x13e/0x1d0 fs/open.c:1422
 do_sys_open fs/open.c:1437 [inline]
 __do_sys_openat fs/open.c:1453 [inline]
 __se_sys_openat fs/open.c:1448 [inline]
 __x64_sys_openat+0x247/0x290 fs/open.c:1448
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x41/0xc0 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x63/0xcd
RIP: 0033:0x7f6d4692b759
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 b1 18 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 b0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f6d468e7168 EFLAGS: 00000246 ORIG_RAX: 0000000000000101
RAX: ffffffffffffffda RBX: 00007f6d469b46c8 RCX: 00007f6d4692b759
RDX: 000000000000275a RSI: 0000000020000000 RDI: 00000000ffffff9c
RBP: 00007f6d469b46c0 R08: 00007f6d469b46c0 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 00007f6d469b46cc
R13: 0000000000000006 R14: 00007ffdbba24a90 R15: 00007ffdbba24b78
 </TASK>
hfs: request for non-existent node 16777216 in B*Tree
hfs: request for non-existent node 16777216 in B*Tree
hfs: inconsistency in B*Tree (5,0,1,0,1)

Crashes (92):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2023/10/06 03:56 upstream 3006adf3be79 db17ad9f .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro #1] [mounted in repro #2] ci2-upstream-fs possible deadlock in hfs_find_init
2023/09/30 09:03 upstream 71e58659bfc0 8e26a358 .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-kasan-gce-selinux-root possible deadlock in hfs_find_init
2023/07/28 15:25 upstream 57012c57536f 92476829 .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-kasan-gce-smack-root possible deadlock in hfs_find_init
2023/07/16 18:36 upstream 831fe284d827 35d9ecc5 .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-kasan-gce-root possible deadlock in hfs_find_init
2023/06/16 20:58 upstream 40f71e7cd3c6 f3921d4d .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-upstream-fs possible deadlock in hfs_find_init
2023/01/22 10:53 upstream 2241ab53cbb5 cc0f9968 .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-upstream-fs possible deadlock in hfs_find_init
2023/05/22 17:51 linux-next 715abedee4cd 4bce1a3e .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-linux-next-kasan-gce-root possible deadlock in hfs_find_init
2023/06/17 01:11 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 177239177378 f3921d4d .config console log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-gce-arm64 possible deadlock in hfs_find_init
2023/01/22 05:21 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci edb2f0dc90f2 559a440a .config console log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-gce-arm64 possible deadlock in hfs_find_init
2023/11/29 09:50 upstream 18d46e76d7c2 1adfb6f6 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream possible deadlock in hfs_find_init
2023/08/23 13:37 upstream 89bf6209cad6 b81ca3f6 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/08/22 19:28 upstream 53663f4103ff b81ca3f6 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/08/03 07:09 upstream ec351c8f2e62 39a91c18 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/08/02 15:48 upstream 5d0c230f1de8 b178af49 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/07/31 12:18 upstream 5d0c230f1de8 2a0d0f29 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/07/31 06:34 upstream 5d0c230f1de8 2a0d0f29 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/06/29 07:41 upstream b19edac5992d ca69c785 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/06/26 09:27 upstream 6995e2de6891 79782afc .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/06/25 19:35 upstream 547cc9be86f4 79782afc .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/06/24 20:22 upstream a92b7d26c743 79782afc .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/06/23 21:11 upstream 8a28a0b6f1a1 79782afc .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/06/23 03:15 upstream 8a28a0b6f1a1 79782afc .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/06/22 01:34 upstream dad9774deaf1 09ffe269 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in hfs_find_init
2023/06/21 00:18 upstream 99ec1ed7c2ed 09ffe269 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-smack-root possible deadlock in hfs_find_init
2023/06/20 02:06 upstream 692b7dc87ca6 09ffe269 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/06/19 00:43 upstream 8c1f0c38b310 f3921d4d .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in hfs_find_init
2023/06/18 19:14 upstream 8c1f0c38b310 f3921d4d .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/06/18 04:19 upstream 1b29d271614a f3921d4d .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in hfs_find_init
2023/06/16 01:01 upstream 62d8779610bb f3921d4d .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/06/12 08:51 upstream 858fd168a95c 49519f06 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/06/10 17:20 upstream 64569520920a 49519f06 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/05/22 06:25 upstream e2065b8c1b01 4bce1a3e .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/05/17 00:34 upstream f1fcbaa18b28 11c89444 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/05/09 18:21 upstream ba0ad6ed89fd 30aa2a7e .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/05/05 02:02 upstream 1a5304fecee5 518a39a6 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/04/30 10:02 upstream 825a0714d2b3 62df2017 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/04/29 22:09 upstream 1ae78a14516b 62df2017 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/04/29 07:30 upstream 89d77f71f493 62df2017 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/04/29 00:09 upstream 33afd4b76393 62df2017 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/04/28 18:15 upstream 33afd4b76393 62df2017 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/04/28 05:51 upstream 91ec4b0d11fe 70a605de .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/03/29 18:42 upstream ffe78bbd5121 f325deb0 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/03/27 10:36 upstream 197b6b60ae7b f8f96aa9 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in hfs_find_init
2022/12/23 23:12 upstream 51094a24b85e 9da18ae8 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in hfs_find_init
2023/06/21 02:24 upstream e660abd551f1 79782afc .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in hfs_find_init
2023/06/13 04:31 upstream fb054096aea0 749afb64 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 possible deadlock in hfs_find_init
2023/09/16 12:09 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci fe4469582053 0b6a67ac .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in hfs_find_init
2022/12/23 00:50 linux-next e45fb347b630 9da18ae8 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root possible deadlock in hfs_find_init
2023/08/01 07:20 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 2642b8a18760 2a0d0f29 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in hfs_find_init
2023/07/12 14:57 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e40939bbfc68 979d5fe2 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in hfs_find_init
2023/06/19 13:12 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 177239177378 f3921d4d .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in hfs_find_init
2023/06/04 04:44 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci eb0f1697d729 a4ae4f42 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in hfs_find_init
2023/06/01 02:49 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci eb0f1697d729 babc4389 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in hfs_find_init
2023/05/26 06:11 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci f1fcbaa18b28 b40ef614 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in hfs_find_init
2023/05/24 14:30 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci f1fcbaa18b28 4bce1a3e .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in hfs_find_init
2023/05/16 03:02 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci f1fcbaa18b28 71b00cfb .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in hfs_find_init
2023/04/12 10:24 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci 7920df21c1b7 1a1596b6 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in hfs_find_init
* Struck through repros no longer work on HEAD.