Re: possible deadlock in blkdev_reread_part

From: Dmitry Vyukov
Date: Thu Sep 13 2018 - 08:59:19 EST


On Wed, May 2, 2018 at 1:23 PM, Dmitry Vyukov <dvyukov@xxxxxxxxxx> wrote:
> On Wed, May 2, 2018 at 12:30 PM, Tetsuo Handa
> <penguin-kernel@xxxxxxxxxxxxxxxxxxx> wrote:
>> Dmitry Vyukov wrote:
>>> > syzbot is reporting various bugs which involve /dev/loopX.
>>> > Two of them
>>> >
>>> > INFO: rcu detected stall in lo_ioctl
>>> > https://syzkaller.appspot.com/bug?id=7b49fb610af9cca78c24e9f796f2e8b0d5573997
>>> >
>>> > general protection fault in lo_ioctl (2)
>>> > https://syzkaller.appspot.com/bug?id=f3cfe26e785d85f9ee259f385515291d21bd80a3
>>>
>>> /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
>>>
>>> Now there is a repro for this one. I've pushed it to kernel mailing lists:
>>>
>>> https://groups.google.com/d/msg/syzkaller-bugs/c8KUcTAzTvA/3o_7g6-tAwAJ
>>
>> OK, thanks. But among loop related reports, this will be a dup of
>> "INFO: rcu detected stall in blkdev_ioctl" which already has C reproducer.
>> Should we merge them?
>
> Yes, sure, I will take care of it.

1. I forgot to take care of it.

2. "INFO: rcu detected stall in blkdev_ioctl" was fixed 3 months ago:
https://syzkaller.appspot.com/bug?id=1f7b710f4110f225aed1f4263ec2b98b8dbd472e

but this bug still happens up until now:
https://syzkaller.appspot.com/bug?id=bf154052f0eea4bc7712499e4569505907d15889

So this is a different bug.



>> INFO: rcu detected stall in blkdev_ioctl
>> https://syzkaller.appspot.com/bug?id=1f7b710f4110f225aed1f4263ec2b98b8dbd472e
>>
>> general protection fault in lo_ioctl (2)
>> https://syzkaller.appspot.com/bug?id=f3cfe26e785d85f9ee259f385515291d21bd80a3
>> #syz dup: INFO: rcu detected stall in blkdev_ioctl
>>
>> INFO: rcu detected stall in lo_compat_ioctl
>> https://syzkaller.appspot.com/bug?id=6299555c4e252b53f7a2ae2b8216cc9456c56ac0
>> #syz dup: INFO: rcu detected stall in blkdev_ioctl
>>
>> INFO: rcu detected stall in lo_ioctl
>> https://syzkaller.appspot.com/bug?id=7b49fb610af9cca78c24e9f796f2e8b0d5573997
>> #syz dup: INFO: rcu detected stall in blkdev_ioctl
>>
>> INFO: task hung in lo_ioctl
>> https://syzkaller.appspot.com/bug?id=608144371e7fc2cb6285b9ed871fb1eb817a61ce
>>
>> INFO: task hung in lo_open (2)
>> https://syzkaller.appspot.com/bug?id=1f93b57f496d969efb9fb24167f6f9de5ee068fd
>>
>> possible deadlock in blkdev_reread_part
>> https://syzkaller.appspot.com/bug?id=bf154052f0eea4bc7712499e4569505907d15889
>>
>> INFO: task hung in loop_control_ioctl
>> https://syzkaller.appspot.com/bug?id=61fe32c77ea00412c5149bd34649a65b7f672b5e
>>
>> WARNING in sysfs_remove_group
>> https://syzkaller.appspot.com/bug?id=3f86c0edf75c86d2633aeb9dd69eccc70bc7e90b
>>
>>>
>>> > suggest that loop module is not thread safe. The former suggests that
>>> > l->lo_backing_file is forming circular loop and the latter suggests that
>>> > l->lo_backing_file became NULL.