syzbot


possible deadlock in ocfs2_finish_quota_recovery

Status: upstream: reported C repro on 2025/02/02 09:01
Subsystems: ocfs2
[Documentation on labels]
Reported-by: syzbot+f59a1ae7b7227c859b8f@syzkaller.appspotmail.com
First crash: 121d, last: 24d
Discussions (3)
Title Replies (including bot) Last reply
Re: [syzbot] [ocfs2?] possible deadlock in ocfs2_finish_quota_recovery 1 (1) 2025/04/17 05:05
[syzbot] [ocfs2?] possible deadlock in ocfs2_finish_quota_recovery 0 (3) 2025/04/17 04:03
[PATCH 2/2] ocfs2: Fix deadlock in ocfs2_finish_quota_recovery 4 (4) 2025/04/03 11:33
Similar bugs (2)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-6.1 possible deadlock in ocfs2_finish_quota_recovery origin:upstream C 12 25d 119d 0/3 upstream: reported C repro on 2025/01/31 16:27
linux-5.15 possible deadlock in ocfs2_finish_quota_recovery 11 43d 120d 0/3 upstream: reported on 2025/01/30 02:34
Last patch testing requests (2)
Created Duration User Patch Repo Result
2025/05/20 22:49 20m retest repro upstream OK log
2025/04/17 04:03 16m heming.zhao@suse.com https://github.com/zhaohem/linux jans_ocfs2 report log

Sample crash report:
ocfs2: Finishing quota recovery on device (7,4) for slot 0
======================================================
WARNING: possible circular locking dependency detected
6.15.0-rc4-syzkaller-00147-gebd297a2affa #0 Not tainted
------------------------------------------------------
kworker/u8:1/13 is trying to acquire lock:
ffff888057f520e0 (&type->s_umount_key#65){++++}-{4:4}, at: ocfs2_finish_quota_recovery+0x12c/0x1e60 fs/ocfs2/quota_local.c:603

but task is already holding lock:
ffffc90000127c60 ((work_completion)(&journal->j_recovery_work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3214 [inline]
ffffc90000127c60 ((work_completion)(&journal->j_recovery_work)){+.+.}-{0:0}, at: process_scheduled_works+0x9ec/0x17a0 kernel/workqueue.c:3319

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #2 ((work_completion)(&journal->j_recovery_work)){+.+.}-{0:0}:
       lock_acquire+0x120/0x360 kernel/locking/lockdep.c:5866
       process_one_work kernel/workqueue.c:3214 [inline]
       process_scheduled_works+0xa09/0x17a0 kernel/workqueue.c:3319
       worker_thread+0x8a0/0xda0 kernel/workqueue.c:3400
       kthread+0x711/0x8a0 kernel/kthread.c:464
       ret_from_fork+0x4e/0x80 arch/x86/kernel/process.c:153
       ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

-> #1 ((wq_completion)ocfs2_wq){+.+.}-{0:0}:
       lock_acquire+0x120/0x360 kernel/locking/lockdep.c:5866
       touch_wq_lockdep_map+0xcb/0x180 kernel/workqueue.c:3907
       __flush_workqueue+0x121/0x14b0 kernel/workqueue.c:3949
       ocfs2_shutdown_local_alloc+0xe7/0xa10 fs/ocfs2/localalloc.c:380
       ocfs2_dismount_volume+0x1f9/0x8d0 fs/ocfs2/super.c:1822
       generic_shutdown_super+0x135/0x2c0 fs/super.c:642
       kill_block_super+0x44/0x90 fs/super.c:1710
       deactivate_locked_super+0xbc/0x130 fs/super.c:473
       cleanup_mnt+0x425/0x4c0 fs/namespace.c:1435
       task_work_run+0x1d4/0x260 kernel/task_work.c:227
       resume_user_mode_work+0x5e/0x80 include/linux/resume_user_mode.h:50
       exit_to_user_mode_loop kernel/entry/common.c:114 [inline]
       exit_to_user_mode_prepare include/linux/entry-common.h:329 [inline]
       __syscall_exit_to_user_mode_work kernel/entry/common.c:207 [inline]
       syscall_exit_to_user_mode+0x9a/0x120 kernel/entry/common.c:218
       do_syscall_64+0x103/0x210 arch/x86/entry/syscall_64.c:100
       entry_SYSCALL_64_after_hwframe+0x77/0x7f

-> #0 (&type->s_umount_key#65){++++}-{4:4}:
       check_prev_add kernel/locking/lockdep.c:3166 [inline]
       check_prevs_add kernel/locking/lockdep.c:3285 [inline]
       validate_chain+0xb9b/0x2140 kernel/locking/lockdep.c:3909
       __lock_acquire+0xaac/0xd20 kernel/locking/lockdep.c:5235
       lock_acquire+0x120/0x360 kernel/locking/lockdep.c:5866
       down_read+0x46/0x2e0 kernel/locking/rwsem.c:1524
       ocfs2_finish_quota_recovery+0x12c/0x1e60 fs/ocfs2/quota_local.c:603
       ocfs2_complete_recovery+0x15b6/0x2160 fs/ocfs2/journal.c:1357
       process_one_work kernel/workqueue.c:3238 [inline]
       process_scheduled_works+0xade/0x17a0 kernel/workqueue.c:3319
       worker_thread+0x8a0/0xda0 kernel/workqueue.c:3400
       kthread+0x711/0x8a0 kernel/kthread.c:464
       ret_from_fork+0x4e/0x80 arch/x86/kernel/process.c:153
       ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

other info that might help us debug this:

Chain exists of:
  &type->s_umount_key#65 --> (wq_completion)ocfs2_wq --> (work_completion)(&journal->j_recovery_work)

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock((work_completion)(&journal->j_recovery_work));
                               lock((wq_completion)ocfs2_wq);
                               lock((work_completion)(&journal->j_recovery_work));
  rlock(&type->s_umount_key#65);

 *** DEADLOCK ***

2 locks held by kworker/u8:1/13:
 #0: ffff888056e55148 ((wq_completion)ocfs2_wq#2){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3213 [inline]
 #0: ffff888056e55148 ((wq_completion)ocfs2_wq#2){+.+.}-{0:0}, at: process_scheduled_works+0x9b1/0x17a0 kernel/workqueue.c:3319
 #1: ffffc90000127c60 ((work_completion)(&journal->j_recovery_work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3214 [inline]
 #1: ffffc90000127c60 ((work_completion)(&journal->j_recovery_work)){+.+.}-{0:0}, at: process_scheduled_works+0x9ec/0x17a0 kernel/workqueue.c:3319

stack backtrace:
CPU: 0 UID: 0 PID: 13 Comm: kworker/u8:1 Not tainted 6.15.0-rc4-syzkaller-00147-gebd297a2affa #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/19/2025
Workqueue: ocfs2_wq ocfs2_complete_recovery
Call Trace:
 <TASK>
 dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120
 print_circular_bug+0x2ee/0x310 kernel/locking/lockdep.c:2079
 check_noncircular+0x134/0x160 kernel/locking/lockdep.c:2211
 check_prev_add kernel/locking/lockdep.c:3166 [inline]
 check_prevs_add kernel/locking/lockdep.c:3285 [inline]
 validate_chain+0xb9b/0x2140 kernel/locking/lockdep.c:3909
 __lock_acquire+0xaac/0xd20 kernel/locking/lockdep.c:5235
 lock_acquire+0x120/0x360 kernel/locking/lockdep.c:5866
 down_read+0x46/0x2e0 kernel/locking/rwsem.c:1524
 ocfs2_finish_quota_recovery+0x12c/0x1e60 fs/ocfs2/quota_local.c:603
 ocfs2_complete_recovery+0x15b6/0x2160 fs/ocfs2/journal.c:1357
 process_one_work kernel/workqueue.c:3238 [inline]
 process_scheduled_works+0xade/0x17a0 kernel/workqueue.c:3319
 worker_thread+0x8a0/0xda0 kernel/workqueue.c:3400
 kthread+0x711/0x8a0 kernel/kthread.c:464
 ret_from_fork+0x4e/0x80 arch/x86/kernel/process.c:153
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
 </TASK>

Crashes (186):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/05/02 16:14 upstream ebd297a2affa b0714e37 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in ocfs2_finish_quota_recovery
2025/04/16 18:04 upstream c62f4b82d571 23b969b7 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in ocfs2_finish_quota_recovery
2025/04/10 06:38 upstream 3b07108ada81 988b336c .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/04/09 13:32 upstream a24588245776 988b336c .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root possible deadlock in ocfs2_finish_quota_recovery
2025/04/09 11:05 upstream a24588245776 47d015b1 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/04/09 05:23 upstream bec7dcbc242c a775275d .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/04/07 14:03 upstream 0af2f6be1b42 a2ada0e7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/04/07 10:06 upstream 0af2f6be1b42 1c65791e .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/04/07 05:02 upstream 0af2f6be1b42 1c65791e .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/04/06 17:27 upstream f4d2ef48250a 1c65791e .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/04/06 04:19 upstream a8662bcd2ff1 1c65791e .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/04/05 12:49 upstream a52a3c18cdf3 c53ea9c9 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/04/04 23:11 upstream a52a3c18cdf3 1c4febdb .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/04/03 21:03 upstream a2cc6ff5ec8f d7ae3a11 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/04/02 18:21 upstream acc4d5ff0b61 c799dfdd .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/04/01 17:43 upstream 08733088b566 b8645499 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/03/30 10:13 upstream 7f2ff7b62617 d3999433 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/03/27 12:50 upstream 1e1ba8d23dae 20510e88 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/03/27 04:18 upstream 1e1ba8d23dae 20510e88 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/03/27 02:17 upstream 1e1ba8d23dae 20510e88 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/03/26 21:14 upstream 2df0c02dab82 20510e88 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/03/26 18:51 upstream 2df0c02dab82 20510e88 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/03/26 10:20 upstream 2df0c02dab82 89d30d73 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/03/26 05:02 upstream 2df0c02dab82 89d30d73 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/03/26 03:51 upstream 2df0c02dab82 89d30d73 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/03/25 18:27 upstream 2df0c02dab82 875573af .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/03/25 12:05 upstream 2f2d52945852 875573af .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/02/14 13:20 upstream 128c8f96eb86 d9a046cf .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-badwrites-root possible deadlock in ocfs2_finish_quota_recovery
2025/02/01 21:55 upstream 69b8923f5003 568559e4 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs possible deadlock in ocfs2_finish_quota_recovery
2025/05/06 21:59 upstream 0d8d44db295c 350f4ffc .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/05/04 19:41 upstream e8ab83e34bdc b0714e37 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/05/02 19:02 upstream ebd297a2affa d7f099d1 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/05/02 10:51 upstream ebd297a2affa d7f099d1 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/05/01 19:58 upstream 4f79eaa2ceac 51b137cd .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/04/29 11:25 upstream ca91b9500108 aeb6ec69 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/04/28 12:15 upstream b4432656b36e c6b4fb39 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/04/27 12:00 upstream 5bc1018675ec c6b4fb39 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/04/20 20:25 upstream 6fea5fabd332 2a20f901 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/04/20 11:27 upstream 119009db2674 2a20f901 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/04/20 01:40 upstream 8560697b23dc 2a20f901 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/04/16 01:24 upstream 1a1d569a75f3 a95239b1 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/04/15 15:38 upstream 834a4a689699 85125322 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/04/15 14:07 upstream 834a4a689699 85125322 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/04/15 06:39 upstream 834a4a689699 0bd6db41 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/04/14 09:40 upstream 8ffd015db85f 0bd6db41 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/04/12 08:48 upstream e618ee89561b 0bd6db41 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/04/10 13:59 upstream 3b07108ada81 1ef3ab4d .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/04/10 09:57 upstream 3b07108ada81 988b336c .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/04/05 19:14 upstream a8662bcd2ff1 1c65791e .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/03/29 09:55 upstream 0c86b42439b6 cf25e2c2 .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/03/13 13:49 upstream b7f94fcf5546 44be8b44 .config console log report syz / log C [disk image (non-bootable)] [vmlinux] [kernel image] [mounted in repro (clean fs)] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/01/29 08:56 upstream 805ba04cb7cc 865ef71e .config console log report [disk image (non-bootable)] [vmlinux] [kernel image] ci-snapshot-upstream-root possible deadlock in ocfs2_finish_quota_recovery
2025/03/29 15:31 linux-next e21edb1638e8 d3999433 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root possible deadlock in ocfs2_finish_quota_recovery
2025/02/20 20:36 git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-kernelci e6747d19291c 50668798 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-gce-arm64 possible deadlock in ocfs2_finish_quota_recovery
* Struck through repros no longer work on HEAD.