Upgrading to 3.10 results in package dependency errors

Problem:
Upgrading from Foreman 3.9.1 to 3.10 results in package dependency errors.
Using the installation guide:
https://docs.theforeman.org/3.10/Upgrading_Project/index-foreman-el.html#upgrading_a_connected_foreman_server_upgrading-connected

# dnf update
Last metadata expiration check: 0:00:13 ago on Mi 24 Apr 2024 14:43:42 CEST.
Error: 
 Problem 1: package rubygem-katello-4.11.1-1.el8.noarch from @System requires foreman < 3.10, but none of the providers can be installed
  - cannot install both foreman-3.10.0-1.el8.noarch from foreman and foreman-3.9.1-1.el8.noarch from @System
  - cannot install the best update candidate for package rubygem-katello-4.11.1-1.el8.noarch
  - cannot install the best update candidate for package foreman-3.9.1-1.el8.noarch
 Problem 2: problem with installed package rubygem-katello-4.11.1-1.el8.noarch
  - package rubygem-katello-4.11.1-1.el8.noarch from @System requires foreman < 3.10, but none of the providers can be installed
  - package rubygem-katello-4.11.1-1.el8.noarch from katello requires foreman < 3.10, but none of the providers can be installed
  - cannot install both foreman-3.10.0-1.el8.noarch from foreman and foreman-3.9.1-1.el8.noarch from @System
  - package foreman-dynflow-sidekiq-3.10.0-1.el8.noarch from foreman requires foreman = 3.10.0-1.el8, but none of the providers can be installed
  - cannot install the best update candidate for package foreman-dynflow-sidekiq-3.9.1-1.el8.noarch
 Problem 3: package katello-4.11.1-1.el8.noarch from @System requires rubygem-katello, but none of the providers can be installed
  - package rubygem-katello-4.11.1-1.el8.noarch from @System requires foreman < 3.10, but none of the providers can be installed
  - package rubygem-katello-4.11.0-0.5.rc1.el8.noarch from katello requires foreman < 3.10, but none of the providers can be installed
  - package rubygem-katello-4.11.0-0.5.rc2.el8.noarch from katello requires foreman < 3.10, but none of the providers can be installed
  - package rubygem-katello-4.11.0-1.el8.noarch from katello requires foreman < 3.10, but none of the providers can be installed
  - package rubygem-katello-4.11.1-1.el8.noarch from katello requires foreman < 3.10, but none of the providers can be installed
  - cannot install both foreman-3.10.0-1.el8.noarch from foreman and foreman-3.9.1-1.el8.noarch from @System
  - package foreman-postgresql-3.10.0-1.el8.noarch from foreman requires foreman = 3.10.0-1.el8, but none of the providers can be installed
  - cannot install the best update candidate for package katello-4.11.1-1.el8.noarch
  - cannot install the best update candidate for package foreman-postgresql-3.9.1-1.el8.noarch
 Problem 4: problem with installed package katello-4.11.1-1.el8.noarch
  - package katello-4.11.1-1.el8.noarch from @System requires rubygem-katello, but none of the providers can be installed
  - package katello-4.11.1-1.el8.noarch from katello requires rubygem-katello, but none of the providers can be installed
  - package rubygem-katello-4.11.1-1.el8.noarch from @System requires foreman < 3.10, but none of the providers can be installed
  - package rubygem-katello-4.11.0-0.5.rc1.el8.noarch from katello requires foreman < 3.10, but none of the providers can be installed
  - package rubygem-katello-4.11.0-0.5.rc2.el8.noarch from katello requires foreman < 3.10, but none of the providers can be installed
  - package rubygem-katello-4.11.0-1.el8.noarch from katello requires foreman < 3.10, but none of the providers can be installed
  - package rubygem-katello-4.11.1-1.el8.noarch from katello requires foreman < 3.10, but none of the providers can be installed
  - cannot install both foreman-3.10.0-1.el8.noarch from foreman and foreman-3.9.1-1.el8.noarch from @System
  - package foreman-redis-3.10.0-1.el8.noarch from foreman requires foreman = 3.10.0-1.el8, but none of the providers can be installed
  - cannot install the best update candidate for package foreman-redis-3.9.1-1.el8.noarch
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

Expected outcome:
Upgrading foreman should run through, without any fatal errors.

Foreman and Proxy versions:
3.9.1

Foreman and Proxy plugin versions:

Plugin Version
foreman-tasks 9.0.4
foreman_ansible 13.0.3
foreman_leapp 1.1.1
foreman_remote_execution 12.0.5
katello 4.11.1

Distribution and version:
Rocky Linux 8.9

Other relevant data:

It seems like it’s trying to install Katello 4.11 with Foreman 3.10. Foreman 3.10 goes with Katello 4.12.

Wouldn’t that be a problem with the installer then?

These are the Foreman-only instructions. Instead use the instructions for upgrading Foreman + Katello: Upgrading Foreman to 3.10

Many thanks, that was really helpful! :+1:
And sorry, it seems that it was a really stupid mistake by my side to select the wrong documentation.

Just as a sidenote, step 10 failed, but the installation nevertheless worked:

# dnf module disable pulpcore
Katello 4.12                                                                                                                                                                                            474 kB/s | 305 kB     00:00    
Unable to resolve argument pulpcore
Error: Problems in request:
missing groups or modules: pulpcore
1 Like

@iballou Now that pulpcore isn’t modular anymore and I assume everyone has disabled it during Katello 4.11 upgrade, should we remove this part from the upgrade instructions? Or maybe just add a note saying not to worry if you don’t have that module. Thoughts?

1 Like

We do say “Disable the pulpcore module if it is enabled”. A user could check if it’s enabled via dnf and I’m not sure the Foreman docs are the right place to teach how to do so.

1 Like