syzbot


WARNING: bad unlock balance in query_matching_vma

Status: upstream: reported C repro on 2025/07/14 21:11
Subsystems: fs
[Documentation on labels]
Reported-by: syzbot+d4316c39e84f412115c9@syzkaller.appspotmail.com
First crash: 6d21h, last: 3d05h
Cause bisection: introduced by (bisect log) :
commit fb8a9ee1f05345b1fae37902d32d954d2150437b
Author: Suren Baghdasaryan <surenb@google.com>
Date: Fri Jul 4 06:07:26 2025 +0000

  fs/proc/task_mmu: execute PROCMAP_QUERY ioctl under per-vma locks

Crash: possible deadlock in get_next_vma (log)
Repro: C syz .config
  
Discussions (1)
Title Replies (including bot) Last reply
[syzbot] [fs?] WARNING: bad unlock balance in query_matching_vma 2 (5) 2025/07/16 00:08
Last patch testing requests (1)
Created Duration User Patch Repo Result
2025/07/15 00:22 26m hdanton@sina.com patch linux-next OK log

Sample crash report:
=====================================
WARNING: bad unlock balance detected!
6.16.0-rc5-next-20250711-syzkaller #0 Not tainted
-------------------------------------
syz.0.32/6076 is trying to release lock (vm_lock) at:
[<ffffffff825aa9e7>] get_next_vma fs/proc/task_mmu.c:181 [inline]
[<ffffffff825aa9e7>] query_vma_find_by_addr fs/proc/task_mmu.c:512 [inline]
[<ffffffff825aa9e7>] query_matching_vma+0x2f7/0x5c0 fs/proc/task_mmu.c:544
but there are no more locks to release!

other info that might help us debug this:
1 lock held by syz.0.32/6076:
 #0: ffffffff8e53c5a0 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:331 [inline]
 #0: ffffffff8e53c5a0 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:841 [inline]
 #0: ffffffff8e53c5a0 (rcu_read_lock){....}-{1:3}, at: query_vma_find_by_addr fs/proc/task_mmu.c:510 [inline]
 #0: ffffffff8e53c5a0 (rcu_read_lock){....}-{1:3}, at: query_matching_vma+0x141/0x5c0 fs/proc/task_mmu.c:544

stack backtrace:
CPU: 1 UID: 0 PID: 6076 Comm: syz.0.32 Not tainted 6.16.0-rc5-next-20250711-syzkaller #0 PREEMPT(full) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025
Call Trace:
 <TASK>
 dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120
 print_unlock_imbalance_bug+0xdc/0xf0 kernel/locking/lockdep.c:5301
 __lock_release kernel/locking/lockdep.c:5540 [inline]
 lock_release+0x269/0x3e0 kernel/locking/lockdep.c:5892
 vma_refcount_put include/linux/mmap_lock.h:141 [inline]
 vma_end_read include/linux/mmap_lock.h:237 [inline]
 unlock_vma+0x70/0x180 fs/proc/task_mmu.c:135
 get_next_vma fs/proc/task_mmu.c:181 [inline]
 query_vma_find_by_addr fs/proc/task_mmu.c:512 [inline]
 query_matching_vma+0x2f7/0x5c0 fs/proc/task_mmu.c:544
 do_procmap_query fs/proc/task_mmu.c:629 [inline]
 procfs_procmap_ioctl+0x3f9/0xd50 fs/proc/task_mmu.c:747
 vfs_ioctl fs/ioctl.c:51 [inline]
 __do_sys_ioctl fs/ioctl.c:598 [inline]
 __se_sys_ioctl+0xf9/0x170 fs/ioctl.c:584
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f667ed8e929
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:00007f667fb27038 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007f667efb6080 RCX: 00007f667ed8e929
RDX: 0000200000000180 RSI: 00000000c0686611 RDI: 0000000000000003
RBP: 00007f667ee10b39 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 0000000000000001 R14: 00007f667efb6080 R15: 00007fff4a18d328
 </TASK>

Crashes (9):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/07/13 18:21 linux-next a62b7a37e6fc 3cda49cf .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci-upstream-rust-kasan-gce WARNING: bad unlock balance in query_matching_vma
2025/07/13 16:37 linux-next a62b7a37e6fc 3cda49cf .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci-upstream-rust-kasan-gce WARNING: bad unlock balance in query_matching_vma
2025/07/13 15:11 linux-next a62b7a37e6fc 3cda49cf .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci-upstream-rust-kasan-gce WARNING: bad unlock balance in query_matching_vma
2025/07/13 10:01 linux-next a62b7a37e6fc 3cda49cf .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root WARNING: bad unlock balance in query_matching_vma
2025/07/13 00:18 linux-next a62b7a37e6fc 3cda49cf .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci-upstream-rust-kasan-gce WARNING: bad unlock balance in query_matching_vma
2025/07/14 21:40 linux-next 0be23810e32e 03fcfc4b .config console log report syz / log [disk image] [vmlinux] [kernel image] ci-upstream-rust-kasan-gce WARNING: bad unlock balance in query_matching_vma
2025/07/14 17:50 linux-next 0be23810e32e 03fcfc4b .config console log report syz / log [disk image] [vmlinux] [kernel image] ci-upstream-rust-kasan-gce WARNING: bad unlock balance in query_matching_vma
2025/07/14 07:33 linux-next a62b7a37e6fc 3cda49cf .config console log report syz / log [disk image] [vmlinux] [kernel image] ci-upstream-rust-kasan-gce WARNING: bad unlock balance in query_matching_vma
2025/07/11 05:56 linux-next b551c4e2a98a 3cda49cf .config console log report syz / log [disk image] [vmlinux] [kernel image] ci-upstream-rust-kasan-gce WARNING: bad unlock balance in query_matching_vma
* Struck through repros no longer work on HEAD.