Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-30732

RHEL 8.9 to 9.3 leapp upgrade failure related to dnf ruby:3.1 module package version mismatch

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Critical Critical
    • None
    • rhel-8.9.0
    • leapp-repository
    • Critical
    • sst_upgrades
    • False
    • Hide

      None

      Show
      None

      What were you trying to do that didn't work?

      During the upgrade initramfs portion of the leapp upgrade (specifically dnf_upgrade_transaction) ruby packages are failing to upgrade when ruby:3.1 module is enabled/installed.

      Example:

      ~~~
      2024-03-27 11:44:44.210 DEBUG    PID: 964 leapp.workflow.RPMUpgrade.dnf_upgrade_transaction: Error opening /var/cache/dnf/rhel-9-for-x86_64-appstream-rpms-a05479357630a4d5/packages/rubygem-rdoc-6.3.3-160.el9_0.n
      oarch.rpm: No such file or directory
      2024-03-27 11:44:44.215 DEBUG    PID: 964 leapp.workflow.RPMUpgrade.dnf_upgrade_transaction:  pam                                      x86_64  1.5.1-15.el9                                rhel-9-for-x86_64-baseos
      -rpms     623 k
      2024-03-27 11:44:44.219 DEBUG    PID: 964 leapp.workflow.RPMUpgrade.dnf_upgrade_transaction: Package "rubygem-rdoc-6.3.3-160.el9_0.noarch" from repository "rhel-9-for-x86_64-appstream-rpms" has incorrect checksu
      m
      2024-03-27 11:44:44.224 DEBUG    PID: 964 leapp.workflow.RPMUpgrade.dnf_upgrade_transaction:  pango                                    x86_64  1.48.7-3.el9                                rhel-9-for-x86_64-appstr
      eam-rpms  306 k
      ~~~
      So it seemed that midway through the upgrade, leapp started being unable to find files in /var/cache specifically for some ruby/rubygems packages:
      ~~~
      $ grep "incorrect checksum" ../var/log/leapp/leapp-upgrade.log | awk '{print $8}' | sort
      "ruby-3.0.4-160.el9_0.x86_64"
      "ruby-default-gems-3.0.4-160.el9_0.noarch"
      "ruby-devel-3.0.4-160.el9_0.x86_64"
      "rubygem-bigdecimal-3.0.0-160.el9_0.x86_64"
      "rubygem-bundler-2.2.33-160.el9_0.noarch"
      "rubygem-io-console-0.5.7-160.el9_0.x86_64"
      "rubygem-json-2.5.1-160.el9_0.x86_64"
      "rubygem-psych-3.3.2-160.el9_0.x86_64"
      "rubygem-rdoc-6.3.3-160.el9_0.noarch"
      "rubygems-3.2.33-160.el9_0.noarch"
      "ruby-libs-3.0.4-160.el9_0.x86_64"
      ~~~

      I can see when the ruby packages were downloaded earlier during dnf_package_download; however, these don't match the package versions in the error messages:
      ~~~
      $ grep "dnf_package_download: (" ../var/log/leapp/leapp-upgrade.log | grep ruby | awk '{print $8}' | sort
      ruby-3.1.2-141.module+el9.1.0+15737+
      ruby-default-gems-3.1.2-141.module+e
      ruby-devel-3.1.2-141.module+el9.1.0+
      rubygem-bigdecimal-3.1.1-141.module+
      rubygem-bundler-2.3.7-141.module+el9
      rubygem-io-console-0.5.11-141.module
      rubygem-json-2.6.1-141.module+el9.1.
      rubygem-psych-4.0.3-141.module+el9.1
      rubygem-rdoc-6.4.0-141.module+el9.1.
      rubygems-3.3.7-141.module+el9.1.0+15
      ruby-libs-3.1.2-141.module+el9.1.0+1
      ~~~

      Please provide the package NVR for which bug is seen:

      leapp-0.16.0-2.el.noarch

      How reproducible:

      Reproducible

      Steps to reproduce

      1.  enable ruby:3.1 module and install packages
      2. dnf module enable ruby:3.1
      3. dnf module install ruby:3.1
      4.  Perform leapp upgrade
      5.  Reboot to continue leapp upgrade

      Expected results

      leapp upgrades successfully

      Actual results

      leapp fails with error messages related to ruby packages.

            leapp-notifications leapp-notifications
            rhn-support-ckrell Charlie Krell
            leapp-notifications leapp-notifications
            RHEL Upgrades QE Team RHEL Upgrades QE Team
            Miriam Portman Miriam Portman
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: