syzbot


possible deadlock in mi_read

Status: fixed on 2024/12/22 10:18
Bug presence: origin:upstream
Labels: missing-backport
[Documentation on labels]
Reported-by: syzbot+de116336948b785c6555@syzkaller.appspotmail.com
Fix commit: 47e8a17491e3 fs/ntfs3: Fix possible deadlock in mi_read
First crash: 697d, last: 92d
Fix bisection: fixed by (bisect log) :
commit 47e8a17491e37df53743bc2e72309f8f0d6224af
Author: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Date: Wed Aug 28 08:55:53 2024 +0000

  fs/ntfs3: Fix possible deadlock in mi_read

  
Bug presence (3)
Date Name Commit Repro Result
2024/11/06 linux-5.15.y (ToT) 72244eab0dad C [report] possible deadlock in mi_read
2024/01/05 upstream (ToT) 1f874787ed9a C [report] possible deadlock in mi_read
2024/11/06 upstream (ToT) 2e1b3cc9d7f7 C Didn't crash
Similar bugs (4)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-5.15 possible deadlock in mi_read (2) origin:upstream C 4 12d 27d 0/3 upstream: reported C repro on 2025/01/13 02:48
upstream possible deadlock in mi_read ntfs3 C error 11141 88d 861d 28/28 fixed on 2024/11/12 23:31
upstream possible deadlock in mi_read (2) ntfs3 C inconclusive 107 12h12m 83d 0/28 upstream: reported C repro on 2024/11/17 08:21
linux-6.1 possible deadlock in mi_read origin:upstream missing-backport C done 830 26d 694d 0/3 upstream: reported C repro on 2023/03/17 09:05
Last patch testing requests (10)
Created Duration User Patch Repo Result
2024/11/24 13:02 20m retest repro linux-5.15.y OK log
2024/11/24 13:02 20m retest repro linux-5.15.y OK log
2024/11/24 13:02 20m retest repro linux-5.15.y OK log
2024/11/24 05:37 20m retest repro linux-5.15.y OK log
2024/11/24 05:37 18m retest repro linux-5.15.y OK log
2024/11/24 05:37 22m retest repro linux-5.15.y OK log
2024/11/24 05:37 22m retest repro linux-5.15.y OK log
2024/11/24 05:37 19m retest repro linux-5.15.y OK log
2024/11/23 04:17 14m retest repro linux-5.15.y OK log
2024/11/23 04:17 37m retest repro linux-5.15.y OK log

Sample crash report:
============================================
WARNING: possible recursive locking detected
5.15.170-syzkaller #0 Not tainted
--------------------------------------------
syz.4.119/4782 is trying to acquire lock:
ffff888061162d40 (&ni->ni_lock/4){+.+.}-{3:3}, at: ni_lock fs/ntfs3/ntfs_fs.h:1100 [inline]
ffff888061162d40 (&ni->ni_lock/4){+.+.}-{3:3}, at: mi_read+0x2dd/0x5a0 fs/ntfs3/record.c:148

but task is already holding lock:
ffff888061167700 (&ni->ni_lock/4){+.+.}-{3:3}, at: ni_lock fs/ntfs3/ntfs_fs.h:1100 [inline]
ffff888061167700 (&ni->ni_lock/4){+.+.}-{3:3}, at: ntfs_lookup+0xf5/0x1f0 fs/ntfs3/namei.c:82

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(&ni->ni_lock/4);
  lock(&ni->ni_lock/4);

 *** DEADLOCK ***

 May be due to missing lock nesting notation

3 locks held by syz.4.119/4782:
 #0: ffff88801c28a460 (sb_writers#22){.+.+}-{0:0}, at: mnt_want_write+0x3b/0x80 fs/namespace.c:377
 #1: ffff8880611679a0 (&type->i_mutex_dir_key#13){++++}-{3:3}, at: inode_lock include/linux/fs.h:789 [inline]
 #1: ffff8880611679a0 (&type->i_mutex_dir_key#13){++++}-{3:3}, at: open_last_lookups fs/namei.c:3529 [inline]
 #1: ffff8880611679a0 (&type->i_mutex_dir_key#13){++++}-{3:3}, at: path_openat+0x824/0x2f20 fs/namei.c:3739
 #2: ffff888061167700 (&ni->ni_lock/4){+.+.}-{3:3}, at: ni_lock fs/ntfs3/ntfs_fs.h:1100 [inline]
 #2: ffff888061167700 (&ni->ni_lock/4){+.+.}-{3:3}, at: ntfs_lookup+0xf5/0x1f0 fs/ntfs3/namei.c:82

stack backtrace:
CPU: 0 PID: 4782 Comm: syz.4.119 Not tainted 5.15.170-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x1e3/0x2d0 lib/dump_stack.c:106
 print_deadlock_bug kernel/locking/lockdep.c:2946 [inline]
 check_deadlock kernel/locking/lockdep.c:2989 [inline]
 validate_chain+0x46d2/0x5930 kernel/locking/lockdep.c:3775
 __lock_acquire+0x1295/0x1ff0 kernel/locking/lockdep.c:5012
 lock_acquire+0x1db/0x4f0 kernel/locking/lockdep.c:5623
 __mutex_lock_common+0x1da/0x25a0 kernel/locking/mutex.c:596
 __mutex_lock kernel/locking/mutex.c:729 [inline]
 mutex_lock_nested+0x17/0x20 kernel/locking/mutex.c:743
 ni_lock fs/ntfs3/ntfs_fs.h:1100 [inline]
 mi_read+0x2dd/0x5a0 fs/ntfs3/record.c:148
 ntfs_read_mft fs/ntfs3/inode.c:69 [inline]
 ntfs_iget5+0x472/0x38e0 fs/ntfs3/inode.c:525
 dir_search_u+0x2f6/0x390 fs/ntfs3/dir.c:264
 ntfs_lookup+0x102/0x1f0 fs/ntfs3/namei.c:83
 lookup_open fs/namei.c:3440 [inline]
 open_last_lookups fs/namei.c:3532 [inline]
 path_openat+0x111d/0x2f20 fs/namei.c:3739
 do_filp_open+0x21c/0x460 fs/namei.c:3769
 do_sys_openat2+0x13b/0x4f0 fs/open.c:1253
 do_sys_open fs/open.c:1269 [inline]
 __do_sys_creat fs/open.c:1345 [inline]
 __se_sys_creat fs/open.c:1339 [inline]
 __x64_sys_creat+0x11f/0x160 fs/open.c:1339
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x3b/0xb0 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x66/0xd0
RIP: 0033:0x7f57dbf0d719
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:00007f57da385038 EFLAGS: 00000246 ORIG_RAX: 0000000000000055
RAX: ffffffffffffffda RBX: 00007f57dc0c4f80 RCX: 00007f57dbf0d719
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000020000100
RBP: 00007f57dbf8039e R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 0000000000000000 R14: 00007f57dc0c4f80 R15: 00007fff62e39618
 </TASK>
ntfs3: loop4: Mark volume as dirty due to NTFS errors

Crashes (827):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/11/08 11:41 linux-5.15.y 72244eab0dad 179b040e .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/11/08 06:08 linux-5.15.y 72244eab0dad 179b040e .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/11/08 00:05 linux-5.15.y 72244eab0dad 867e44df .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/11/07 01:32 linux-5.15.y 72244eab0dad df3dc63b .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/11/06 17:58 linux-5.15.y 72244eab0dad df3dc63b .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/11/06 11:12 linux-5.15.y 72244eab0dad 3a465482 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/11/02 02:04 linux-5.15.y 72244eab0dad f00eed24 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/10/25 10:59 linux-5.15.y 74cdd62cb470 c79b8ca5 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/10/23 10:09 linux-5.15.y 74cdd62cb470 15fa2979 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/10/22 08:15 linux-5.15.y 584a40a22cb9 a93682b3 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/10/21 23:36 linux-5.15.y 584a40a22cb9 f1e4447c .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/10/21 16:45 linux-5.15.y 584a40a22cb9 f1e4447c .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/10/21 14:45 linux-5.15.y 584a40a22cb9 f1e4447c .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/10/21 14:45 linux-5.15.y 584a40a22cb9 f1e4447c .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/10/20 05:18 linux-5.15.y 584a40a22cb9 cd6fc0a3 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/10/17 03:04 linux-5.15.y 3a5928702e71 666f77ed .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/10/16 20:34 linux-5.15.y 3a5928702e71 666f77ed .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/10/16 00:25 linux-5.15.y 3a5928702e71 bde2d81c .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/10/13 05:09 linux-5.15.y 3a5928702e71 084d8178 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/10/11 23:12 linux-5.15.y 3a5928702e71 084d8178 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/10/10 04:04 linux-5.15.y 3a5928702e71 0278d004 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/10/07 11:36 linux-5.15.y 3a5928702e71 d7906eff .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/01/05 01:11 linux-5.15.y d93fa2c78854 28c42cff .config console log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan possible deadlock in mi_read
2023/05/29 21:22 linux-5.15.y 1fe619a7d252 cf184559 .config console log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan possible deadlock in mi_read
2023/05/29 10:03 linux-5.15.y 1fe619a7d252 cf184559 .config console log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan possible deadlock in mi_read
2024/11/08 05:03 linux-5.15.y 72244eab0dad 179b040e .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/11/07 13:30 linux-5.15.y 72244eab0dad 867e44df .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/11/07 08:43 linux-5.15.y 72244eab0dad df3dc63b .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/11/06 03:17 linux-5.15.y 72244eab0dad 3a465482 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/11/05 10:00 linux-5.15.y 72244eab0dad 509da429 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/11/05 08:52 linux-5.15.y 72244eab0dad 509da429 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/11/05 05:52 linux-5.15.y 72244eab0dad 509da429 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/11/04 19:11 linux-5.15.y 72244eab0dad 509da429 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/11/04 13:55 linux-5.15.y 72244eab0dad f00eed24 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/11/04 12:00 linux-5.15.y 72244eab0dad f00eed24 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/11/03 22:36 linux-5.15.y 72244eab0dad f00eed24 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/11/03 16:56 linux-5.15.y 72244eab0dad f00eed24 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/11/03 11:22 linux-5.15.y 72244eab0dad f00eed24 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/10/30 03:42 linux-5.15.y 74cdd62cb470 66aeb999 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/10/28 00:21 linux-5.15.y 74cdd62cb470 65e8686b .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/10/24 17:07 linux-5.15.y 74cdd62cb470 0d144d1a .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/10/22 15:32 linux-5.15.y 74cdd62cb470 a93682b3 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/10/22 11:15 linux-5.15.y 584a40a22cb9 a93682b3 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/10/22 04:41 linux-5.15.y 584a40a22cb9 a93682b3 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/10/21 05:26 linux-5.15.y 584a40a22cb9 cd6fc0a3 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/10/20 08:54 linux-5.15.y 584a40a22cb9 cd6fc0a3 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/10/16 06:26 linux-5.15.y 3a5928702e71 bde2d81c .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/10/10 16:41 linux-5.15.y 3a5928702e71 8fbfc0c8 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/10/07 18:25 linux-5.15.y 3a5928702e71 d7906eff .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/07/31 00:07 linux-5.15.y 7e89efd3ae1c 6fde257d .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/07/30 14:18 linux-5.15.y 7e89efd3ae1c 5187fc86 .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/04/12 12:45 linux-5.15.y cdfd0a7f0139 27de0a5c .config console log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/04/05 20:49 linux-5.15.y 9465fef4ae35 77230c29 .config console log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2024/04/01 10:11 linux-5.15.y 9465fef4ae35 6baf5069 .config console log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2023/09/19 21:19 linux-5.15.y 35ecaa3632bf 0b6a67ac .config console log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2023/05/10 01:15 linux-5.15.y 8a7f2a5c5aa1 30aa2a7e .config console log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2023/05/06 07:07 linux-5.15.y 8a7f2a5c5aa1 de870ca5 .config console log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan-arm64 possible deadlock in mi_read
2023/03/14 03:49 linux-5.15.y 2ddbd0f967b3 026e2200 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan possible deadlock in mi_read
* Struck through repros no longer work on HEAD.