On 26/11/2019 05.05, Chris Murphy wrote:
grub2-efi-x64-2.02-100.fc31.x86_64 kernel-5.3.13-300.fc31.x86_64 I've seen this before, so it isn't a regression in either of the above versions. But I'm also not certain when the regression occurred, because the last time I tested Btrfs multiple devices (specifically data single profile), was years ago and I didn't run into this.
From the video, it seems that GRUB complaints about a "failure reading". However GRUB is capable to perform the boot and because the profiles are "single (no redundancy), it seems a "false positive" error. When I added the RADID5/6 support to grub, I remember errors like what you showed. However it happened 1 year ago, so my remember may be wrong. I noticed that GRUB test a lot of disks (hd0 ... hd3) . Could you be so kindly to share the disks layout ? Most error is something like "failure reading sector 0xXX". However I can't read the XX number: could you be so kindly to tell us which number is "XX" ? It seems 0x80... but my eyes are bad and your video is even worse :-) I think that the errors is due to the "rescan" logic (see grub commit [1]). Could you try a more recent grub (2.04 instead of 2.02) ?
The gist to reproduce: 1. btrfs single device, single profile data, single profile metadata 2. device starts to run out of space; no problem 'btrfs device add /dev/' voila it works, reboots, keeps on working for a while, but then... 3. install a kernel or two or three or four I suspect that at some point kernels end up on the newly added device due to new block groups eventually being created there, and GRUB subsequently gets confused, starts spewing a bunch of error information which I have to page through. Eventually it does find everything and does boot. But it's kinda ugly and I'm not really sure how to gather more information. Shaky cam video of the boot is here: https://photos.app.goo.gl/wvJbB6kBEFzNwogo6
[1] http://git.savannah.gnu.org/cgit/grub.git/commit/grub-core/fs/btrfs.c?id=fd5a1d82f1d6a0482f5fe201ce646ddba8574bab -- gpg @keyserver.linux.it: Goffredo Baroncelli <kreijackATinwind.it> Key fingerprint BBF5 1610 0B64 DAC6 5F7D 17B2 0EDA 9B37 8B82 E0B5
