Re: possible deadlock in io_poll_double_wake (2)
From: Jens Axboe <axboe@kernel.dk>
Date: 2021-03-03 05:38:06
Also in:
linux-fsdevel, lkml
From: Jens Axboe <axboe@kernel.dk>
Date: 2021-03-03 05:38:06
Also in:
linux-fsdevel, lkml
On 2/28/21 9:18 PM, syzbot wrote:
Hello,
syzbot has tested the proposed patch but the reproducer is still triggering an issue:
possible deadlock in io_poll_double_wake
============================================
WARNING: possible recursive locking detected
5.11.0-syzkaller #0 Not tainted
--------------------------------------------
syz-executor.0/10241 is trying to acquire lock:
ffff888012e09130 (&runtime->sleep){..-.}-{2:2}, at: spin_lock include/linux/spinlock.h:354 [inline]
ffff888012e09130 (&runtime->sleep){..-.}-{2:2}, at: io_poll_double_wake+0x25f/0x6a0 fs/io_uring.c:4921
but task is already holding lock:
ffff888013b00130 (&runtime->sleep){..-.}-{2:2}, at: __wake_up_common_lock+0xb4/0x130 kernel/sched/wait.c:137
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(&runtime->sleep);
lock(&runtime->sleep);
*** DEADLOCK ***
May be due to missing lock nesting notationSince the fix is in yet this keeps failing (and I didn't get it), I looked closer at this report. While the names of the locks are the same, they are really two different locks. So let's try this... #syz test: git://git.kernel.dk/linux-block syzbot-test -- Jens Axboe