Re: regression caused by block: freeze the queue earlier in del_gendisk

Ming Lei
2022-09-01T07:07:15Z

Hi Dusty,

On Fri, Aug 26, 2022 at 12:15:22PM -0400, Dusty Mabe wrote:
> Hey All,
>
> I think I've found a regression introduced by:
>
> a09b314 o block: freeze the queue earlier in del_gendisk
>
> In Fedora CoreOS we have tests that set up RAID1 on the /boot/ and /root/ partitions
> and then subsequently removes one of the disks to simulate a failure. Sometime recently

Do you have test case which doesn't need raid1 over /boot or /root? such
as by create raid1 over two disks, then mount & remove one of device, ...

It isn't easy to setup/observe such test case and observe what is wrong.

> this test started timing out occasionally. Looking a bit closer it appears instances are
> getting stuck during reboot with a bunch of looping messages:
>
> ```
> [ 17.978854] block device autoloading is deprecated and will be removed.
> [ 17.982555] block device autoloading is deprecated and will be removed.
> [ 17.985537] block device autoloading is deprecated and will be removed.
> [ 17.987546] block device autoloading is deprecated and will be removed.
> [ 17.989540] block device autoloading is deprecated and will be removed.
> [ 17.991547] block device autoloading is deprecated and will be removed.
> [ 17.993555] block device autoloading is deprecated and will be removed.
> [ 17.995539] block device autoloading is deprecated and will be removed.
> [ 17.997577] block device autoloading is deprecated and will be removed.
> [ 17.999544] block device autoloading is deprecated and will be removed.
> [ 22.979465] blkdev_get_no_open: 1666 callbacks suppressed
> ...
> ...
> ...
> [ 618.221270] blkdev_get_no_open: 1664 callbacks suppressed
> [ 618.221273] block device autoloading is deprecated and will be removed.
> [ 618.224274] block device autoloading is deprecated and will be removed.
> [ 618.227267] block device autoloading is deprecated and will be removed.
> [ 618.229274] block device autoloading is deprecated and will be removed.
> [ 618.231277] block device autoloading is deprecated and will be removed.
> [ 618.233277] block device autoloading is deprecated and will be removed.
> [ 618.235282] block device autoloading is deprecated and will be removed.
> [ 618.237370] block device autoloading is deprecated and will be removed.
> [ 618.239356] block device autoloading is deprecated and will be removed.
> [ 618.241290] block device autoloading is deprecated and will be removed.
> ```
>
> Using the Fedora kernels I narrowed it down to being introduced between
> `kernel-5.19.0-0.rc3.27.fc37` (good) and `kernel-5.19.0-0.rc4.33.fc37` (bad).
>
> I then did a bisect and found:
>
> ```
> $ git bisect bad
> a09b314005f3a0956ebf56e01b3b80339df577cc is the first bad commit
> commit a09b314005f3a0956ebf56e01b3b80339df577cc
> Author: Christoph Hellwig <hch@lst.de>
> Date: Tue Jun 14 09:48:27 2022 +0200
>
> block: freeze the queue earlier in del_gendisk

It is a bit hard to associate the above commit with reported issue.

Thanks,
Ming