SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
It seems as an issue present on kernels with support for many file systems compiled in...
I'll try a huge without f2fs tomorrow.
Yes, the issue occurs because F2FS code changed so instead of returning -EINVAL during its superblock failure, it now returns something else to indicate filesystem corruption.
This meant that the code in init/do_mounts.c (mount_block_root function) did not iterate beyond F2FS filesystem to check if it was actually a different filesystem anymore.
It has actually bothered me for some time to see the superblock probing failures for ocfs2 and F2FS (because they look scary and I worried about what would happen if another filesystem decided to do some sort of repair move), but until now, it hasn't caused a problem. Now, I am even more worried by that scenario.
before your root filesystem is mounted, then the new kernels will lead to a kernel panic and unable to load your root filesystem.
If you don't have F2FS compiled in, or are using an initrd with explicit root filesystem module bundled in (with a generic kernel), then I don't think the issue surfaces.
Also, if you are using ext4 or reiserfs (which I believe are likely the most common choices with Slackware at the moment), then the issue also does not surface as I believe these are attempted before F2FS in the filesystem order. (Still trying to find what defines that order).
If you don't have F2FS compiled in, or are using an initrd with explicit root filesystem module bundled in (with a generic kernel), then I don't think the issue surfaces.
Well, considering that that "huge kernel" is used today only by Slackware, and everybody else uses "generic" kernels with initrds, is expected that sooner or later to appear issues like this.
Maybe sooner or later Mr. Volkerding will put an end to those "huge" kernels, which aren't really needed today and anyway looks like they aren't the way is supposed to go.
Of course, I've already learned that the Slackware community, at least from this forum, will oppose to any changes, like a bunch of grumpy old men, but still I hope that the common sense will prevail at least in some particular cases.
Last edited by LuckyCyborg; 10-13-2019 at 12:55 AM.
I can confirm that the issue is gone when booting "huge" without f2fs.
LuckyCyborg: It's a big fat bug and we caught it thanks to our unorthodox use of a support-it-all installation kernel. Imho a far safer and better approach than trying automatical generation of an initrd. Keeping the installation as uncomplicated as possible has it's merits.
As most people will never need anything anything else, is also simplifies maintenance and upgrades greatly. All for the cost of a little bit extra memory use.
This is a demonstration of the disastrous patch policy of LTS kernels. The people who maintain them do not even verify that the kernel can boot. Hopefully they will check that the kernel with the patches compiles without errors, but who knows. It is better to follow the stable kernel than this crap of LTS kernels.
To be honest, stable kernels aren't much better. Patches get taken from the main development branch as and when they're applied, so if a bad patch arrives in the merge/early release candidate stage then it can get applied to both stable and lts with very little real world exposure/testing. This is why, from time to time, we see bad patches that are applied to one release candidate and fixed in a subsequent one get back ported to the stable branches, while the bug was never present in one of linus' .0 mainline releases.
Basically, linux kernel release engineering is a mess, and always has been.
All kernels except 4.9 and downwards and 5.4 have the issue. So the only solution is to remain with 4.19.75 if you have btrfs on root and only use "huge".
Excellent. I was going to say, if this is a kernel bug, why are we placing blame on Slackware's slightly unorthodox use case. Isn't the whole POINT of the kernel to allow every unorthodox use case under the sun. This is a regression that theoretically shouldn't be too difficult to correct for those familiar with the codebase and I'm sure it will be fixed relatively expeditiously.
All kernels except 4.9 and downwards and 5.4 have the issue. So the only solution is to remain with 4.19.75 if you have btrfs on root and only use "huge".
There's a dozen references to btrfs fix in 5.4 changelog, but only 4 of them are carried "down" to 4.19?
Not that I understand much of these fantastic logs, but it amuses me to see how many words, I recognize!
I can confirm that the issue is gone when booting "huge" without f2fs.
LuckyCyborg: It's a big fat bug and we caught it thanks to our unorthodox use of a support-it-all installation kernel. Imho a far safer and better approach than trying automatical generation of an initrd. Keeping the installation as uncomplicated as possible has it's merits.
As most people will never need anything anything else, is also simplifies maintenance and upgrades greatly. All for the cost of a little bit extra memory use.
I've not been able to boot with the 5.3 series. Recompiling 5.3.6 with F2FS disabled did not seem to make a difference. Still getting a kernel panic on booting with initrd (via syslinux). 5.2.17 with essentially the same config is fine. Not sure if 5.3.7, which is just out, will help.
I've not been able to boot with the 5.3 series. Recompiling 5.3.6 with F2FS disabled did not seem to make a difference. Still getting a kernel panic on booting with initrd (via syslinux). 5.2.17 with essentially the same config is fine. Not sure if 5.3.7, which is just out, will help.
Interesting. What filesystem do you use? Mind sharing your mkinitrd line? Happy to look into it with you.
Have you managed to capture the kernel panic text? There was actually a hint in it for me prior to mounting, as it logs out the error from do_mounts. It could be a similar issue to the one that was backported if other modules are also cleaning up/changing their superblock detection behaviour.
I haven't tried any of the 5.x series yet personally.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.