Bug 1899841 - grub2-mkconfig hang when grub2-probe failed when ppc64le f32 install
Summary: grub2-mkconfig hang when grub2-probe failed when ppc64le f32 install
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: grub2
Version: 32
Hardware: ppc64le
OS: Unspecified
unspecified
medium
Target Milestone: ---
Assignee: Javier Martinez Canillas
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: PPCTracker
TreeView+ depends on / blocked
 
Reported: 2020-11-20 08:13 UTC by Michel Normand
Modified: 2021-05-25 17:51 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-05-25 17:51:04 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
journalctl_zz1_extract_20201005.log.gz (111.16 KB, application/gzip)
2020-11-20 08:13 UTC, Michel Normand
no flags Details

Description Michel Normand 2020-11-20 08:13:20 UTC
Created attachment 1731170 [details]
journalctl_zz1_extract_20201005.log.gz

Description of problem:
grub2-mkconfig hang when grub2-probe failed when ppc64le f32 install



Version-Release number of selected component (if applicable):
(rpms version captured after reboot)
===
$sudo rpm -qa | grep -iE 'kernel.5|grub2' |sort
grub2-common-2.04-23.fc32.noarch
grub2-ppc64le-2.04-23.fc32.ppc64le
grub2-ppc64le-modules-2.04-23.fc32.noarch
grub2-tools-2.04-23.fc32.ppc64le
grub2-tools-extra-2.04-23.fc32.ppc64le
grub2-tools-minimal-2.04-23.fc32.ppc64le
kernel-5.3.7-301.fc31.ppc64le
kernel-5.8.12-100.fc31.ppc64le
kernel-5.8.12-200.fc32.ppc64le
===

How reproducible:
* Power9 (or Power8 ?) with two disks, one already installed Ubuntu 20.04 and the other disk with Fedora 31.
* do upgrade from f31 to f32, that ultimately hang.
* force reboot and grub2 menu do present the old f31 not f32.
* /boot/grub2/grub.cfg is the old one and 
  /boot/grub2/grub.cfg.new present but not complete.

Actual results: upgrade f31 to f32 hang
Expected results: expect upgrade f31 to f32 to complete


extract of attached journalctl_zz1_extract_20201005.log.gz
to show the hang of linux-boot-prober
and the manual force reboot two ours later.
===
Oct 05 12:46:53 localhost.localdomain kernel: fuse: init (API version 7.31)
Oct 05 12:46:53 localhost.localdomain systemd[1]: Mounting FUSE Control File System...
Oct 05 12:46:53 localhost.localdomain systemd[1]: Mounted FUSE Control File System.
Oct 05 12:46:53 localhost.localdomain root[19817]: os-prober: debug: running /usr/libexec/os-probes/50mounted-tests on /dev/sda1
Oct 05 12:46:53 localhost.localdomain root[19817]: 50mounted-tests: debug: /dev/sda1 type not recognised; skipping
Oct 05 12:46:53 localhost.localdomain root[19817]: os-prober: debug: running /usr/libexec/os-probes/50mounted-tests on /dev/sda2
Oct 05 12:46:53 localhost.localdomain root[19817]: 50mounted-tests: debug: mounted using GRUB, but unknown filesystem?
Oct 05 12:46:53 localhost.localdomain root[19817]: 50mounted-tests: debug: running subtest /usr/libexec/os-probes/mounted/40lsb
Oct 05 12:46:54 localhost.localdomain root[19817]: 40lsb: result: /dev/sda2:Ubuntu 20.04.1 LTS (20.04):Ubuntu:linux
Oct 05 12:46:54 localhost.localdomain root[19817]: 50mounted-tests: debug: os found by subtest /usr/libexec/os-probes/mounted/40lsb
Oct 05 12:46:54 localhost.localdomain systemd[1]: var-lib-os\x2dprober-mount.mount: Succeeded.
Oct 05 12:46:54 localhost.localdomain root[19817]: os-prober: debug: os detected by /usr/libexec/os-probes/50mounted-tests
Oct 05 12:46:54 localhost.localdomain root[19817]: os-prober: debug: running /usr/libexec/os-probes/mounted/40lsb on mounted /dev/sdb1
Oct 05 12:46:54 localhost.localdomain root[19817]: os-prober: debug: running /usr/libexec/os-probes/mounted/90linux-distro on mounted /dev/sdb1
Oct 05 12:46:54 localhost.localdomain root[19817]: os-prober: debug: running /usr/libexec/os-probes/50mounted-tests on /dev/sdb2
Oct 05 12:46:54 localhost.localdomain root[19817]: 50mounted-tests: debug: /dev/sdb2 is an LVM member; skipping
Oct 05 12:46:54 localhost.localdomain root[19817]: os-prober: debug: /dev/mapper/fedora_zz1-swap: is active swap
Oct 05 12:46:54 localhost.localdomain root[20028]: linux-boot-prober: debug: running /usr/libexec/linux-boot-probes/50mounted-tests
-- Reboot --
Oct 05 14:34:14 localhost.localdomain kernel: dt-cpu-ftrs: setup for ISA 3000
Oct 05 14:34:14 localhost.localdomain kernel: dt-cpu-ftrs: not enabling: system-call-vectored (disabled or unsupported by kernel)
Oct 05 14:34:14 localhost.localdomain kernel: dt-cpu-ftrs: final cpu/mmu features = 0x0001f86f8f5fb1a7 0x3c006041
===

Comment 1 Michel Normand 2020-11-20 08:42:05 UTC
manual trial show the same hung:
===
[root@zz1 ~]# grub2-mkconfig >/boot/grub2/grub.cfg.new
Generating grub configuration file ...
Generating boot entries from BLS files...
grub2-probe: error: ../grub-core/kern/fs.c:120:unknown filesystem.
/usr/sbin/grub2-probe: error: ../grub-core/kern/fs.c:120:unknown filesystem.
Found Ubuntu 20.04.1 LTS (20.04) on /dev/sda2
<= blocked here
===

Adding debug traces on related script show that above grub2-probe error triggered "50mounted-tests failed"
=== extract journalctl:
michel[20059]: os-prober: debug: running /usr/libexec/os-probes/50mounted-tests on /dev/sda1
michel[20059]: 50mounted-tests: debug: /dev/sda1 type not recognised; skipping
michel[20059]: os-prober: debug: running /usr/libexec/os-probes/50mounted-tests on /dev/sda2
michel[20059]: 50mounted-tests: debug: partition: /dev/sda2 types: ext4
michel[20059]: 50mounted-tests: debug: mounted using GRUB, but unknown filesystem?
michel[20059]: 50mounted-tests: debug: running subtest /usr/libexec/os-probes/mounted/40lsb
michel[20059]: 40lsb: result: /dev/sda2:Ubuntu 20.04.1 LTS (20.04):Ubuntu:linux
michel[20059]: 50mounted-tests: debug: os found by subtest /usr/libexec/os-probes/mounted/40lsb
systemd[5150]: var-lib-os\x2dprober-mount.mount: Succeeded.
systemd[5263]: var-lib-os\x2dprober-mount.mount: Succeeded.
michel[20059]: os-prober: debug: os detected by /usr/libexec/os-probes/50mounted-tests
systemd[1]: var-lib-os\x2dprober-mount.mount: Succeeded.
michel[20059]: os-prober: debug: running /usr/libexec/os-probes/mounted/40lsb on mounted /dev/sdb1
michel[20059]: os-prober: debug: running /usr/libexec/os-probes/mounted/90linux-distro on mounted /dev/sdb1
michel[20059]: os-prober: debug: running /usr/libexec/os-probes/50mounted-tests on /dev/sdb2
michel[20059]: 50mounted-tests: debug: /dev/sdb2 is an LVM member; skipping
michel[20059]: os-prober: debug: /dev/mapper/fedora_zz1-swap: is active swap
michel[20268]: linux-boot-prober: debug: running /usr/libexec/linux-boot-probes/50mounted-tests
michel[20268]: 50mounted-tests: debug: partition: /dev/sda2 types: ext4
michel[20268]: linux-boot-prober: debug: /usr/libexec/linux-boot-probes/50mounted-tests failed
michel[20268]: linux-boot-prober: debug: ignore /usr/libexec/linux-boot-probes/common
michel[20268]: linux-boot-prober: debug: ignore /usr/libexec/linux-boot-probes/mounted
===

and if I remove the "set -e" in this "50mounted-tests" script then process able to continue and parsing not blocked anymore.
===
michel[21446]: linux-boot-prober: debug: running /usr/libexec/linux-boot-probes/50mounted-tests
michel[21446]: 50mounted-tests: debug: partition: /dev/sda2 types: ext4
michel[21446]: 50mounted-tests: debug: bootpart: /dev/sda2 mounted: 0
michel[21446]: 50mounted-tests: debug: running /usr/libexec/linux-boot-probes/mounted/40grub2 /dev/sda2 /dev/sda2 /var/lib/os-prober/moun> 
michel[21446]: 40grub2: debug: parsing grub.cfg
michel[21446]: 40grub2: debug: parsing: #
===

Proposed dirty patch to bypass grub2-probe error and avoid grub2-mkconfig to hang:
(not sure the echo is the right thing to use)
===
$diff -u /usr/libexec/linux-boot-probes/50mounted-tests.old /usr/libexec/linux-boot-probes/50mounted-tests
--- /usr/libexec/linux-boot-probes/50mounted-tests.old  2020-11-20 09:40:16.569510517 +0100
+++ /usr/libexec/linux-boot-probes/50mounted-tests      2020-11-20 09:38:15.692988857 +0100
@@ -52,8 +52,7 @@
    type grub2-probe >/dev/null 2>&1 && \
    grub2-mount "$partition" "$tmpmnt" 2>/dev/null; then
        mounted=1
-       type="$(grub2-probe -d "$partition" -t fs)"
-       [ "$type" ] || type=fuseblk
+       type="$(grub2-probe -d "$partition" -t fs || echo 'fuseblk')"
 fi
 
 if [ "$mounted" ]; then
===

Comment 2 Fedora Program Management 2021-04-29 17:07:32 UTC
This message is a reminder that Fedora 32 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 32 on 2021-05-25.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '32'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 32 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 3 Fedora Admin user for bugzilla script actions 2021-05-07 00:35:57 UTC
This package has changed maintainer in Fedora. Reassigning to the new maintainer of this component.

Comment 4 Ben Cotton 2021-05-25 17:51:04 UTC
Fedora 32 changed to end-of-life (EOL) status on 2021-05-25. Fedora 32 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.