-
Bug
-
Resolution: Can't Do
-
Major
-
None
-
rhel-8.10
-
No
-
Important
-
rhel-upgrades
-
None
-
False
-
False
-
-
None
-
None
-
None
-
None
-
-
aarch64
-
None
What were you trying to do that didn't work?
When upgrading from RHEL-8.10 to RHEL-9.6 on aarch64 CPU machine, both leapp-upgrade-el8toel9-0.21.0-2 and leapp-upgrade-el8toel9-0.21.0-4 upgrade failed
a. Using leapp-upgrade-el8toel9-0.21.0-2.el8_10.noarch.rpm from RHEL distro repo, leapp upgrade failed, the errors are `Upgrade RHEL 8.10 to RHEL 9.5 not possible for ARM machines.`
b. Using leapp-upgrade-el8toel9-0.21.0-2.el8_10.noarch.rpm from https://brew-task-repos.engineering.redhat.com/repos/official repo, Leapp upgrade success, but reboot with tool `rstrnt-reboot`, the boot system again still RHEL8.10. If we use `reboot` tools, that's no problem.
What is the impact of this issue to you?
Leapp in-place upgrade
Please provide the package NVR for which the bug is seen:
RHEL-8.10.0-updates-20241217.1
4.18.0-553.32.1.el8_10.aarch64
How reproducible is this bug?:
Always
Steps to reproduce
1. Install RHEL-8.10, efibootmgr show boot option is 0004(Red Hat Enterprise Linux)
[root@ampere-mtsnow-04 ~]# uname -r 4.18.0-553.32.1.el8_10.aarch64 [root@ampere-mtsnow-04 ~]# cat /etc/redhat-release Red Hat Enterprise Linux release 8.10 (Ootpa) [root@ampere-mtsnow-04 ~]# efibootmgr BootCurrent: 0004 Timeout: 5 seconds BootOrder: 0002,0003,0005,0006,0001,0004,0007,000A,0000,000B,0008 Boot0000 CentOS Linux Boot0001* UEFI: Built-in EFI Shell Boot0002* UEFI: PXE IPv4 Intel(R) Network D8:5E:D3:E6:1F:70 Boot0003* UEFI: PXE IPv4 Intel(R) Network D8:5E:D3:E6:1F:71 Boot0004* Red Hat Enterprise Linux Boot0005* UEFI: PXE IPv4 Mellanox Network 94:6D:AE:C7:9F:D0 Boot0006* UEFI: PXE IPv4 Mellanox Network 94:6D:AE:C7:9F:D1 Boot0007 Leapp Upgrade Boot0008 Leapp Upgrade Boot000A Leapp Upgrade Boot000B Leapp Upgrade
2. Leapp upgrade from RHEL8.10 to RHEL9.6 with leapp-upgrade-el8toel9-0.21.0-4
[root@ampere-mtsnow-04 ~]# sed -i 's/RedHatEnterpriseLinux8/RedHatEnterpriseLinux9/g' /etc/yum.repos.d/beaker-harness.repo [root@ampere-mtsnow-04 ~]# cat /etc/yum.repos.d/leapp.repo [leapp-upgrade] name=Repository for build of leapp upgrade enabled=1 gpgcheck=0 baseurl=https://brew-task-repos.engineering.redhat.com/repos/official/leapp-repository/0.21.0/4.el8_10/noarch/ [leapp] name=Repository for build of leapp enabled=1 gpgcheck=0 baseurl=https://brew-task-repos.engineering.redhat.com/repos/official/leapp/0.18.0/2.el8_10/noarch/ [root@ampere-mtsnow-04 ~]# yum install leapp-upgrade vdo -y [root@ampere-mtsnow-04 ~]# cat /etc/yum.repos.d/leapp_upgrade_repositories.repo [AppStream9] name=AppStream for RHEL9 baseurl=http://download.devel.redhat.com/rhel-9/nightly/RHEL-9/latest-RHEL-9.6/compose/AppStream/$basearch/os/ enabled=0 gpgcheck=0 [BaseOS9] name=BaseOS for RHEL9 baseurl=http://download.devel.redhat.com/rhel-9/nightly/RHEL-9/latest-RHEL-9.6/compose/BaseOS/$basearch/os/ enabled=0 gpgcheck=0 # CRB and Buildroot repos are required by some tests [CRB9] name=CRB for RHEL9 baseurl=http://download.devel.redhat.com/rhel-9/nightly/RHEL-9/latest-RHEL-9.6/compose/CRB/$basearch/os/ enabled=0 gpgcheck=0 [Buildroot9] name=Buildroot for RHEL9 baseurl=http://download.devel.redhat.com/rhel-9/nightly/BUILDROOT-9/latest-BUILDROOT-9.6-RHEL-9/compose/Buildroot/$basearch/os/ enabled=0 gpgcheck=0 [root@ampere-mtsnow-04 ~]# sed -i '/^\s*PermitRootLogin/i #keep PermitRootLogin yes' /etc/ssh/sshd_config [root@ampere-mtsnow-04 ~]# leapp answer --add --section remove_pam_pkcs11_module_check.confirm=True [root@ampere-mtsnow-04 ~]#leapp upgrade --debug --no-rhsm --enablerepo AppStream9 --enablerepo BaseOS9 --enablerepo beaker-harness
3. Leapp up Leapp could complete, but next boot option change to 0009(Leapp Upgrade), then use `rstrnt-reboot` to reboot
[root@ampere-mtsnow-04 ~]# efibootmgr BootNext: 0009 BootCurrent: 0004 Timeout: 5 seconds BootOrder: 0009,0002,0003,0005,0006,0001,0004,0007,000A,0000,000B,0008 Boot0000 CentOS Linux Boot0001* UEFI: Built-in EFI Shell Boot0002* UEFI: PXE IPv4 Intel(R) Network D8:5E:D3:E6:1F:70 Boot0003* UEFI: PXE IPv4 Intel(R) Network D8:5E:D3:E6:1F:71 Boot0004* Red Hat Enterprise Linux Boot0005* UEFI: PXE IPv4 Mellanox Network 94:6D:AE:C7:9F:D0 Boot0006* UEFI: PXE IPv4 Mellanox Network 94:6D:AE:C7:9F:D1 Boot0007 Leapp Upgrade Boot0008 Leapp Upgrade Boot0009* Leapp Upgrade Boot000A Leapp Upgrade Boot000B Leapp Upgrade [root@ampere-mtsnow-04 ~]# [root@ampere-mtsnow-04 ~]# rstrnt-reboot
4. The booted system again is RHEL8.10 instead of RHEL
[root@ampere-mtsnow-04 ~]# cat /etc/redhat-release Red Hat Enterprise Linux release 8.10 (Ootpa) [root@ampere-mtsnow-04 ~]# uname -r 4.18.0-553.32.1.el8_10.aarch64 [root@ampere-mtsnow-04 ~]# efibootmgr BootCurrent: 0004 Timeout: 5 seconds BootOrder: 0009,0004,0002,0003,0005,0006,0001,0007,000A,0000,000B,0008 Boot0000 CentOS Linux Boot0001* UEFI: Built-in EFI Shell Boot0002* UEFI: PXE IPv4 Intel(R) Network D8:5E:D3:E6:1F:70 Boot0003* UEFI: PXE IPv4 Intel(R) Network D8:5E:D3:E6:1F:71 Boot0004* Red Hat Enterprise Linux Boot0005* UEFI: PXE IPv4 Mellanox Network 94:6D:AE:C7:9F:D0 Boot0006* UEFI: PXE IPv4 Mellanox Network 94:6D:AE:C7:9F:D1 Boot0007 Leapp Upgrade Boot0008 Leapp Upgrade Boot0009* Leapp Upgrade Boot000A Leapp Upgrade Boot000B Leapp Upgrade
5. The same system could upgrade from RHEL9.6 to RHEL10.0, and Leapp upgrade, the next boot option is still 0004(This's different with the error upgrading), the following log is correct info when RHEL9.6 to RHEL10.0
[root@ampere-mtsnow-04 ~]# cat /etc/redhat-release Red Hat Enterprise Linux release 9.6 Beta (Plow)[root@ampere-mtsnow-04 ~]# efibootmgr BootNext: 0004 BootCurrent: 0004 Timeout: 5 seconds BootOrder: 0002,0003,0005,0006,0001,0004,0007,000A,0000,000B,0008 Boot0000 CentOS Linux Boot0001* UEFI: Built-in EFI Shell Boot0002* UEFI: PXE IPv4 Intel(R) Network D8:5E:D3:E6:1F:70 Boot0003* UEFI: PXE IPv4 Intel(R) Network D8:5E:D3:E6:1F:71 Boot0004* Red Hat Enterprise Linux Boot0005* UEFI: PXE IPv4 Mellanox Network 94:6D:AE:C7:9F:D0 Boot0006* UEFI: PXE IPv4 Mellanox Network 94:6D:AE:C7:9F:D1 Boot0007 Leapp Upgrade Boot0008 Leapp Upgrade Boot000A Leapp Upgrade Boot000B Leapp Upgrade
Expected results
- The same system could upgrade from RHEL9.6 to RHEL10.0, and Leapp upgrade, the next boot option is still 0004(This's different with the error upgrading), the following log is correct info when RHEL9.6 to RHEL10.0
[root@ampere-mtsnow-04 ~]# cat /etc/redhat-release Red Hat Enterprise Linux release 9.6 Beta (Plow) [root@ampere-mtsnow-04 ~]# efibootmgr BootNext: 0004 BootCurrent: 0004 Timeout: 5 seconds BootOrder: 0002,0003,0005,0006,0001,0004,0007,000A,0000,000B,0008 Boot 0000 CentOS Linux Boot 0001* UEFI: Built-in EFI Shell Boot 0002* UEFI: PXE IPv4 Intel(R) Network D8:5E:D3:E6:1F:70 Boot 0003* UEFI: PXE IPv4 Intel(R) Network D8:5E:D3:E6:1F:71 Boot 0004* Red Hat Enterprise Linux Boot 0005* UEFI: PXE IPv4 Mellanox Network 94:6D:AE:C7:9F:D0 Boot 0006* UEFI: PXE IPv4 Mellanox Network 94:6D:AE:C7:9F:D1 Boot 0007 Leapp Upgrade Boot 0008 Leapp Upgrade Boot 000A Leapp Upgrade Boot 000B Leapp Upgrade
- scripts rstrnt-reboot and rstrnt-prepare-reboot
[root@ampere-mtsnow-04 ~]# cat /usr/bin/rstrnt-reboot #!/bin/bash # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version.# Prevent SIGTERM from interrupting this process causing it to return # to caller. Expectation is SIGKILL will kill this process but # should then be out of harm's way. trap "" SIGTERMPATH=/sbin:/usr/sbin:$PATHNEXTBOOT_VALID_TIME=0 /usr/bin/rstrnt-prepare-reboot shutdown -r now# Wait for the shutdown to kill us. Sleep to avoid returning # control back to the test harness. ref: SIGTERM comments above while (true); do sleep 666 done [root@ampere-mtsnow-04 ~]# cat /usr/bin/rstrnt-prepare-reboot #!/bin/bash # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version.PATH=/sbin:/usr/sbin:$PATHcreate_nextboot_timer() { # For future reference, it's possible to use `at` if supported everywhere nohup bash -c " logger -s 'NextBoot value is valid for the next $NEXTBOOT_VALID_TIME seconds'; sleep $NEXTBOOT_VALID_TIME; logger -s 'Purging NextBoot value...' efibootmgr -N && logger -s 'NextBoot value is no longer valid' " 2>&1 | /usr/bin/tee /dev/console & }if efibootmgr &>/dev/null ; then # if not defined if [ -z "$NEXTBOOT_VALID_TIME" ] ; then NEXTBOOT_VALID_TIME=180 # elif not a valid number elif [[ $NEXTBOOT_VALID_TIME =~ [^0-9] ]]; then logger -s "NEXTBOOT_VALID_TIME not numeric. Changing to default of 180" NEXTBOOT_VALID_TIME=180 fi os_boot_entry=$(efibootmgr | awk '/BootCurrent/ { print $2 }') # fall back to /root/EFI_BOOT_ENTRY.TXT if it exists and BootCurrent is not available if [[ -z "$os_boot_entry" && -f /root/EFI_BOOT_ENTRY.TXT ]] ; then os_boot_entry=$(</root/EFI_BOOT_ENTRY.TXT) fi if [[ -n "$os_boot_entry" ]] ; then logger -s "efibootmgr -n $os_boot_entry" efibootmgr -n $os_boot_entry if [[ $NEXTBOOT_VALID_TIME > 0 ]]; then create_nextboot_timer # Adjust watchdog if running inside of test case if [[ -n $RSTRNT_RECIPE_URL && $RSTRNT_MAXTIME ]] ; then rstrnt-adjust-watchdog $(($RSTRNT_MAXTIME + $NEXTBOOT_VALID_TIME)) fi else logger -s "NEXTBOOT_VALID_TIME is zero. BootNext setting will persist." sleep 5 fi else logger -s "Could not determine value for BootNext!" fi fi
- mentioned in
-
Page Loading...