[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250822162041.gXcLgwIW@linutronix.de>
Date: Fri, 22 Aug 2025 18:20:41 +0200
From: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
To: syzbot <syzbot+a725ab460fc1def9896f@...kaller.appspotmail.com>
Cc: brauner@...nel.org, jack@...e.cz, linkinjeon@...nel.org,
linux-ext4@...r.kernel.org, linux-fsdevel@...r.kernel.org,
linux-kernel@...r.kernel.org, sj1557.seo@...sung.com,
syzkaller-bugs@...glegroups.com, tglx@...utronix.de,
viro@...iv.linux.org.uk
Subject: Re: [syzbot] [exfat?] [ext4?] WARNING in __rt_mutex_slowlock_locked
On 2025-08-21 07:08:32 [-0700], syzbot wrote:
> dashboard link: https://syzkaller.appspot.com/bug?extid=a725ab460fc1def9896f
…
> The issue was bisected to:
>
> commit d2d6422f8bd17c6bb205133e290625a564194496
> Author: Sebastian Andrzej Siewior <bigeasy@...utronix.de>
> Date: Fri Sep 6 10:59:04 2024 +0000
>
> x86: Allow to enable PREEMPT_RT.
>
…
> exFAT-fs (loop0): Medium has reported failures. Some data may be lost.
> exFAT-fs (loop0): failed to load upcase table (idx : 0x00010000, chksum : 0xe5674ec2, utbl_chksum : 0xe619d30d)
> ------------[ cut here ]------------
> rtmutex deadlock detected
> WARNING: CPU: 0 PID: 6000 at kernel/locking/rtmutex.c:1674 rt_mutex_handle_deadlock kernel/locking/rtmutex.c:1674 [inline]
> WARNING: CPU: 0 PID: 6000 at kernel/locking/rtmutex.c:1674 __rt_mutex_slowlock kernel/locking/rtmutex.c:1734 [inline]
> WARNING: CPU: 0 PID: 6000 at kernel/locking/rtmutex.c:1674 __rt_mutex_slowlock_locked+0xed2/0x25e0 kernel/locking/rtmutex.c:1760
RT detected a deadlock and complained. The same testcase on !RT results
in:
| [ 15.363878] loop0: detected capacity change from 0 to 256
| [ 15.367981] exFAT-fs (loop0): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
| [ 15.373808] exFAT-fs (loop0): Medium has reported failures. Some data may be lost.
| [ 15.380396] exFAT-fs (loop0): failed to load upcase table (idx : 0x00010000, chksum : 0xe5674ec2, utbl_chksum : 0xe619d30d)
| [ 62.668182] INFO: task exfat-repro:2155 blocked for more than 30 seconds.
| [ 62.669405] Not tainted 6.17.0-rc2+ #10
| [ 62.670181] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
| [ 62.671612] task:exfat-repro state:D stack:0 pid:2155 tgid:2155 ppid:1 task_flags:0x400140 flags:0x00004006
| [ 62.673557] Call Trace:
| [ 62.674008] <TASK>
| [ 62.674400] __schedule+0x4ef/0xbb0
| [ 62.675069] schedule+0x22/0xd0
| [ 62.675656] schedule_preempt_disabled+0x10/0x20
| [ 62.676495] rwsem_down_write_slowpath+0x1e2/0x6c0
| [ 62.679028] down_write+0x66/0x70
| [ 62.679645] vfs_rename+0x5c6/0xc30
| [ 62.681734] do_renameat2+0x3c4/0x570
| [ 62.682395] __x64_sys_renameat2+0x7b/0xc0
| [ 62.683187] do_syscall_64+0x7f/0x290
| [ 62.695576] entry_SYSCALL_64_after_hwframe+0x76/0x7e
After ctrl+c that testcase terminates but one thread remains in D state.
This is from
| lock_new_subdir = new_dir != old_dir || !(flags & RENAME_EXCHANGE);
| if (is_dir) {
| if (lock_old_subdir)
| inode_lock_nested(source, I_MUTEX_CHILD);
^^^
| 5 locks held by exfat-repro/2156:
| #0: ffff888113b69400 (sb_writers#11){.+.+}-{0:0}, at: do_renameat2+0x1c8/0x580
| #1: ffff888113b69710 (&type->s_vfs_rename_key){+.+.}-{4:4}, at: do_renameat2+0x24d/0x580
| #2: ffff88810fb79b88 (&sb->s_type->i_mutex_key#16/1){+.+.}-{4:4}, at: lock_two_directories+0x6c/0x110
| #3: ffff88810fb7a1c0 (&sb->s_type->i_mutex_key#17/5){+.+.}-{4:4}, at: lock_two_directories+0x82/0x110
| #4: ffffffff82f618a0 (rcu_read_lock){....}-{1:3}, at: debug_show_all_locks+0x3d/0x184
#2 and #3 are from the "(r == p1)" case. The lock it appears to acquire
is #2.
Could an exfat take a look, please?
Sebastian
Powered by blists - more mailing lists