Possible to use Leapp for Oracle 7 -> Oracle 8 migration?

Problem:
I’m trying to upgrade my Katello install on Oracle Linux 7.9 to Oracle Linux 8 using Leapp. The preupgrade fails at the dnf_transaction_check with many dependency resolution errors. Resolving them by removing packages as suggested in the documentation would effectively uninstall Katello and Foreman from my system. Is a Leapp upgrade doable?

Expected outcome:
Successful Leapp upgrade resulting in an Oracle Linux 8 system.

Foreman versions:
Foreman 3.3, Katello 4.5

Other relevant data:

 Problem 1: package rubygem-deface-1.5.3-3.el8.noarch requires rubygem(nokogiri) >= 1.6, but none of the providers can be installed
  - package rubygem-foreman_remote_execution-7.2.2-1.fm3_3.el8.noarch requires rubygem(deface), but none of the providers can be installed
  - package rubygem-nokogiri-1.11.3-2.el8.x86_64 requires bundled(rubygem-racc) >= 1.4, but none of the providers can be installed
  - package rubygem-nokogiri-1.11.3-2.el8.x86_64 requires bundled(rubygem-racc) < 2, but none of the providers can be installed
  - cannot install the best candidate for the job
  - package ruby-libs-2.7.1-133.module+el8.3.0+7760+537395ec.i686 is filtered out by modular filtering
  - package ruby-libs-2.7.1-133.module+el8.3.0+7760+537395ec.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.3-136.module+el8.4.0+20239+cbf59dc8.i686 is filtered out by modular filtering
  - package ruby-libs-2.7.3-136.module+el8.4.0+20239+cbf59dc8.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.4-137.module+el8.4.0+20269+fcbf533e.i686 is filtered out by modular filtering
  - package ruby-libs-2.7.4-137.module+el8.4.0+20269+fcbf533e.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.6-138.module+el8.6.0+20740+358d9979.i686 is filtered out by modular filtering
  - package ruby-libs-2.7.6-138.module+el8.6.0+20740+358d9979.x86_64 is filtered out by modular filtering
  - package ruby-libs-3.0.2-140.module+el8.5.0+20407+0c654ebc.i686 is filtered out by modular filtering
  - package ruby-libs-3.0.2-140.module+el8.5.0+20407+0c654ebc.x86_64 is filtered out by modular filtering
  - package ruby-libs-3.0.4-141.module+el8.6.0+20741+4fdba061.i686 is filtered out by modular filtering
  - package ruby-libs-3.0.4-141.module+el8.6.0+20741+4fdba061.x86_64 is filtered out by modular filtering
  - package ruby-libs-3.1.2-141.module+el8.7.0+20780+b11ff321.i686 is filtered out by modular filtering
  - package ruby-libs-3.1.2-141.module+el8.7.0+20780+b11ff321.x86_64 is filtered out by modular filtering
 Problem 2: package rubygem-deface-1.5.3-3.el8.noarch requires rubygem(nokogiri) >= 1.6, but none of the providers can be installed
  - package rubygem-katello-4.5.1-1.el8.noarch requires rubygem(deface) >= 1.0.2, but none of the providers can be installed
  - package rubygem-katello-4.5.1-1.el8.noarch requires rubygem(deface) < 2.0.0, but none of the providers can be installed
  - package rubygem-nokogiri-1.11.3-2.el8.x86_64 requires bundled(rubygem-racc) >= 1.4, but none of the providers can be installed
  - package rubygem-nokogiri-1.11.3-2.el8.x86_64 requires bundled(rubygem-racc) < 2, but none of the providers can be installed
  - cannot install the best candidate for the job
  - package ruby-libs-2.7.1-133.module+el8.3.0+7760+537395ec.i686 is filtered out by modular filtering
  - package ruby-libs-2.7.1-133.module+el8.3.0+7760+537395ec.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.3-136.module+el8.4.0+20239+cbf59dc8.i686 is filtered out by modular filtering
  - package ruby-libs-2.7.3-136.module+el8.4.0+20239+cbf59dc8.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.4-137.module+el8.4.0+20269+fcbf533e.i686 is filtered out by modular filtering
  - package ruby-libs-2.7.4-137.module+el8.4.0+20269+fcbf533e.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.6-138.module+el8.6.0+20740+358d9979.i686 is filtered out by modular filtering
  - package ruby-libs-2.7.6-138.module+el8.6.0+20740+358d9979.x86_64 is filtered out by modular filtering
  - package ruby-libs-3.0.2-140.module+el8.5.0+20407+0c654ebc.i686 is filtered out by modular filtering
  - package ruby-libs-3.0.2-140.module+el8.5.0+20407+0c654ebc.x86_64 is filtered out by modular filtering
  - package ruby-libs-3.0.4-141.module+el8.6.0+20741+4fdba061.i686 is filtered out by modular filtering
  - package ruby-libs-3.0.4-141.module+el8.6.0+20741+4fdba061.x86_64 is filtered out by modular filtering
  - package ruby-libs-3.1.2-141.module+el8.7.0+20780+b11ff321.i686 is filtered out by modular filtering
  - package ruby-libs-3.1.2-141.module+el8.7.0+20780+b11ff321.x86_64 is filtered out by modular filtering
 Problem 3: package candlepin-4.1.11-1.el8.noarch requires tomcatjss >= 7.2.1-7.1, but none of the providers can be installed
  - package katello-4.5.1-1.el8.noarch requires candlepin >= 2.0, but none of the providers can be installed
  - package tomcatjss-7.2.5-1.el7.noarch requires tomcat >= 7.0.68, but none of the providers can be installed
  - cannot install the best candidate for the job
  - candlepin-4.1.11-1.el7.noarch does not belong to a distupgrade repository
  - conflicting requests
  - package tomcatjss-7.3.6-1.module+el8+5153+a528e508.noarch is filtered out by modular filtering
  - package tomcatjss-7.4.1-1.module+el8.1.0+5401+ee4f2d9d.noarch is filtered out by modular filtering
  - package tomcatjss-7.4.1-2.module+el8.2.0+5594+09d37207.noarch is filtered out by modular filtering
  - package tomcatjss-7.4.1-2.module+el8.2.0+7620+3306ac3c.noarch is filtered out by modular filtering
  - package tomcatjss-7.5.0-1.module+el8.3.0+7857+983338ee.noarch is filtered out by modular filtering
  - package tomcatjss-7.6.1-1.module+el8.4.0+20053+7cddd5b6.noarch is filtered out by modular filtering
  - package tomcatjss-7.7.0-1.module+el8.5.0+20349+9cc212a8.noarch is filtered out by modular filtering
  - package tomcatjss-7.7.1-1.module+el8.6.0+20558+60d461b7.noarch is filtered out by modular filtering
 Problem 4: package rubygem-sqlite3-1.4.2-1.el8.x86_64 requires libruby.so.2.7()(64bit), but none of the providers can be installed
  - package rh-ruby27-ruby-libs-2.7.4-130.el7.x86_64 requires libgdbm.so.4()(64bit), but none of the providers can be installed
  - package rubygem-smart_proxy_dynflow-0.8.1-1.fm3_3.el8.noarch requires rubygem(sqlite3), but none of the providers can be installed
  - gdbm-1.10-8.el7.x86_64 does not belong to a distupgrade repository
  - conflicting requests
  - package ruby-libs-2.7.1-133.module+el8.3.0+7760+537395ec.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.3-136.module+el8.4.0+20239+cbf59dc8.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.4-137.module+el8.4.0+20269+fcbf533e.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.6-138.module+el8.6.0+20740+358d9979.x86_64 is filtered out by modular filtering
 Problem 5: package rubygem-unicode-0.4.4.4-4.el8.x86_64 requires libruby.so.2.7()(64bit), but none of the providers can be installed
  - package rh-ruby27-ruby-libs-2.7.4-130.el7.x86_64 requires libreadline.so.6()(64bit), but none of the providers can be installed
  - package rubygem-hammer_cli-3.3.0-1.el8.noarch requires rubygem(unicode), but none of the providers can be installed
  - readline-6.2-11.el7.x86_64 does not belong to a distupgrade repository
  - conflicting requests
  - package ruby-libs-2.7.1-133.module+el8.3.0+7760+537395ec.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.3-136.module+el8.4.0+20239+cbf59dc8.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.4-137.module+el8.4.0+20269+fcbf533e.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.6-138.module+el8.6.0+20740+358d9979.x86_64 is filtered out by modular filtering
 Problem 6: package rubygem-foreman_puppet-4.0.4-1.fm3_3.el8.noarch requires foreman >= 3.0, but none of the providers can be installed
  - package foreman-3.3.0-0.5.rc1.el8.noarch requires rubygem(facter), but none of the providers can be installed
  - package foreman-3.3.0-0.5.rc2.el8.noarch requires rubygem(facter), but none of the providers can be installed
  - package foreman-3.3.0-1.el8.noarch requires rubygem(facter), but none of the providers can be installed
  - package foreman-3.3.1-1.el8.noarch requires rubygem(facter), but none of the providers can be installed
  - package rubygem-facter-4.0.51-2.el8.x86_64 requires rubygem(thor) < 2.0, but none of the providers can be installed
  - cannot install the best candidate for the job
  - foreman-3.3.1-1.el7.noarch does not belong to a distupgrade repository
  - conflicting requests
 Problem 7: package rh-ruby27-ruby-libs-2.7.4-130.el7.x86_64 requires libreadline.so.6()(64bit), but none of the providers can be installed
  - package rubygem-unicode-0.4.4.4-4.el8.x86_64 requires libruby.so.2.7()(64bit), but none of the providers can be installed
  - cannot install both readline-7.0-10.el8.x86_64 and readline-6.2-11.el7.x86_64
  - package rubygem-hammer_cli-3.3.0-1.el8.noarch requires rubygem(unicode), but none of the providers can be installed
  - package gdb-headless-8.2-19.0.1.el8.x86_64 requires libreadline.so.7()(64bit), but none of the providers can be installed
  - package rubygem-hammer_cli_foreman-3.3.0-1.el8.noarch requires rubygem(hammer_cli) >= 2.1.0, but none of the providers can be installed
  - package rubygem-hammer_cli_foreman-3.3.0-1.el8.noarch requires rubygem(hammer_cli) >= 3.3.0, but none of the providers can be installed
  - cannot install the best candidate for the job
  - conflicting requests
  - package ruby-libs-2.7.1-133.module+el8.3.0+7760+537395ec.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.3-136.module+el8.4.0+20239+cbf59dc8.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.4-137.module+el8.4.0+20269+fcbf533e.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.6-138.module+el8.6.0+20740+358d9979.x86_64 is filtered out by modular filtering
 Problem 8: package rh-ruby27-ruby-libs-2.7.4-130.el7.x86_64 requires libreadline.so.6()(64bit), but none of the providers can be installed
  - package rubygem-msgpack-1.3.3-2.el8.x86_64 requires libruby.so.2.7()(64bit), but none of the providers can be installed
  - cannot install both readline-7.0-10.el8.x86_64 and readline-6.2-11.el7.x86_64
  - package rubygem-dynflow-1.6.4-1.fm3_3.el8.noarch requires rubygem(msgpack) >= 1.3, but none of the providers can be installed
  - package rubygem-dynflow-1.6.4-1.fm3_3.el8.noarch requires rubygem(msgpack) < 2, but none of the providers can be installed
  - package rubygem-dynflow-1.6.4-1.fm3_3.el8.noarch requires rubygem(msgpack) >= 1.3.3, but none of the providers can be installed
  - package rubygem-dynflow-1.6.4-1.fm3_3.el8.noarch requires (rubygem(msgpack) >= 1.3 with rubygem(msgpack) < 2 with rubygem(msgpack) >= 1.3.3), but none of the providers can be installed
  - package postgresql-10.23-1.module+el8.7.0+20896+16771be9.x86_64 requires libreadline.so.7()(64bit), but none of the providers can be installed
  - package rubygem-foreman-tasks-6.0.2-1.fm3_3.el8.noarch requires rubygem(dynflow) >= 1.6.0, but none of the providers can be installed
  - cannot install the best candidate for the job
  - package ruby-libs-2.7.1-133.module+el8.3.0+7760+537395ec.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.3-136.module+el8.4.0+20239+cbf59dc8.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.4-137.module+el8.4.0+20269+fcbf533e.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.6-138.module+el8.6.0+20740+358d9979.x86_64 is filtered out by modular filtering
 Problem 9: package rubygem-unicode-0.4.4.4-4.el8.x86_64 requires libruby.so.2.7()(64bit), but none of the providers can be installed
  - package rh-ruby27-ruby-libs-2.7.4-130.el7.x86_64 requires libreadline.so.6()(64bit), but none of the providers can be installed
  - package rubygem-hammer_cli-3.3.0-1.el8.noarch requires rubygem(unicode), but none of the providers can be installed
  - cannot install both readline-7.0-10.el8.x86_64 and readline-6.2-11.el7.x86_64
  - package rubygem-hammer_cli_foreman-3.3.0-1.el8.noarch requires rubygem(hammer_cli) >= 2.1.0, but none of the providers can be installed
  - package rubygem-hammer_cli_foreman-3.3.0-1.el8.noarch requires rubygem(hammer_cli) >= 3.3.0, but none of the providers can be installed
  - package python2-libs-2.7.18-11.0.1.module+el8.7.0+20809+34912fc4.x86_64 requires libreadline.so.7()(64bit), but none of the providers can be installed
  - package rubygem-hammer_cli_foreman_remote_execution-0.2.2-1.fm3_0.el8.noarch requires rubygem(hammer_cli_foreman) < 4.0.0, but none of the providers can be installed
  - package rubygem-hammer_cli_foreman_remote_execution-0.2.2-1.fm3_0.el8.noarch requires rubygem(hammer_cli_foreman) >= 0.1.3, but none of the providers can be installed
  - package rubygem-hammer_cli_foreman_remote_execution-0.2.2-1.fm3_0.el8.noarch requires (rubygem(hammer_cli_foreman) >= 0.1.3 with rubygem(hammer_cli_foreman) < 4.0.0), but none of the providers can be installed
  - cannot install the best candidate for the job
  - conflicting requests
  - package ruby-libs-2.7.1-133.module+el8.3.0+7760+537395ec.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.3-136.module+el8.4.0+20239+cbf59dc8.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.4-137.module+el8.4.0+20269+fcbf533e.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.6-138.module+el8.6.0+20740+358d9979.x86_64 is filtered out by modular filtering
 Problem 10: package rubygem-unicode-0.4.4.4-4.el8.x86_64 requires libruby.so.2.7()(64bit), but none of the providers can be installed
  - package rh-ruby27-ruby-libs-2.7.4-130.el7.x86_64 requires libreadline.so.6()(64bit), but none of the providers can be installed
  - package rubygem-hammer_cli-3.3.0-1.el8.noarch requires rubygem(unicode), but none of the providers can be installed
  - cannot install both readline-7.0-10.el8.x86_64 and readline-6.2-11.el7.x86_64
  - package rubygem-hammer_cli_foreman-3.3.0-1.el8.noarch requires rubygem(hammer_cli) >= 2.1.0, but none of the providers can be installed
  - package rubygem-hammer_cli_foreman-3.3.0-1.el8.noarch requires rubygem(hammer_cli) >= 3.3.0, but none of the providers can be installed
  - package ipmievd-1.8.18-18.el8.x86_64 requires libreadline.so.7()(64bit), but none of the providers can be installed
  - package rubygem-hammer_cli_foreman_bootdisk-0.3.0-2.el8.noarch requires rubygem(hammer_cli_foreman) >= 0.1.2, but none of the providers can be installed
  - cannot install the best candidate for the job
  - conflicting requests
  - package ruby-libs-2.7.1-133.module+el8.3.0+7760+537395ec.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.3-136.module+el8.4.0+20239+cbf59dc8.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.4-137.module+el8.4.0+20269+fcbf533e.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.6-138.module+el8.6.0+20740+358d9979.x86_64 is filtered out by modular filtering
 Problem 11: package rh-ruby27-ruby-libs-2.7.4-130.el7.x86_64 requires libreadline.so.6()(64bit), but none of the providers can be installed
  - package rubygem-unicode-0.4.4.4-4.el8.x86_64 requires libruby.so.2.7()(64bit), but none of the providers can be installed
  - cannot install both readline-7.0-10.el8.x86_64 and readline-6.2-11.el7.x86_64
  - package rubygem-hammer_cli-3.3.0-1.el8.noarch requires rubygem(unicode), but none of the providers can be installed
  - package postgresql-10.23-1.module+el8.7.0+20896+16771be9.x86_64 requires libreadline.so.7()(64bit), but none of the providers can be installed
  - package rubygem-hammer_cli_foreman-3.3.0-1.el8.noarch requires rubygem(hammer_cli) >= 2.1.0, but none of the providers can be installed
  - package rubygem-hammer_cli_foreman-3.3.0-1.el8.noarch requires rubygem(hammer_cli) >= 3.3.0, but none of the providers can be installed
  - package postgresql-server-10.23-1.module+el8.7.0+20896+16771be9.x86_64 requires postgresql(x86-64) = 10.23-1.module+el8.7.0+20896+16771be9, but none of the providers can be installed
  - package rubygem-hammer_cli_foreman_tasks-0.0.17-1.fm3_2.el8.noarch requires rubygem(hammer_cli_foreman) < 4.0.0, but none of the providers can be installed
  - package rubygem-hammer_cli_foreman_tasks-0.0.17-1.fm3_2.el8.noarch requires rubygem(hammer_cli_foreman) > 0.1.1, but none of the providers can be installed
  - package rubygem-hammer_cli_foreman_tasks-0.0.17-1.fm3_2.el8.noarch requires (rubygem(hammer_cli_foreman) > 0.1.1 with rubygem(hammer_cli_foreman) < 4.0.0), but none of the providers can be installed
  - cannot install the best candidate for the job
  - conflicting requests
  - package ruby-libs-2.7.1-133.module+el8.3.0+7760+537395ec.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.3-136.module+el8.4.0+20239+cbf59dc8.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.4-137.module+el8.4.0+20269+fcbf533e.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.6-138.module+el8.6.0+20740+358d9979.x86_64 is filtered out by modular filtering
 Problem 12: package rh-ruby27-ruby-libs-2.7.4-130.el7.x86_64 requires libreadline.so.6()(64bit), but none of the providers can be installed
  - package rubygem-unicode-0.4.4.4-4.el8.x86_64 requires libruby.so.2.7()(64bit), but none of the providers can be installed
  - cannot install both readline-7.0-10.el8.x86_64 and readline-6.2-11.el7.x86_64
  - package rubygem-hammer_cli-3.3.0-1.el8.noarch requires rubygem(unicode), but none of the providers can be installed
  - package python3-libs-3.6.8-48.0.1.el8_7.x86_64 requires libreadline.so.7()(64bit), but none of the providers can be installed
  - package rubygem-hammer_cli_foreman-3.3.0-1.el8.noarch requires rubygem(hammer_cli) >= 2.1.0, but none of the providers can be installed
  - package rubygem-hammer_cli_foreman-3.3.0-1.el8.noarch requires rubygem(hammer_cli) >= 3.3.0, but none of the providers can be installed
  - package platform-python-3.6.8-48.0.1.el8_7.x86_64 requires python3-libs(x86-64) = 3.6.8-48.0.1.el8_7, but none of the providers can be installed
  - package rubygem-hammer_cli_katello-1.5.3-1.el8.noarch requires rubygem(hammer_cli_foreman), but none of the providers can be installed
  - cannot install the best candidate for the job
  - package ruby-libs-2.7.1-133.module+el8.3.0+7760+537395ec.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.3-136.module+el8.4.0+20239+cbf59dc8.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.4-137.module+el8.4.0+20269+fcbf533e.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.6-138.module+el8.6.0+20740+358d9979.x86_64 is filtered out by modular filtering
 Problem 13: package rubygem-unicode-0.4.4.4-4.el8.x86_64 requires libruby.so.2.7()(64bit), but none of the providers can be installed
  - package rh-ruby27-ruby-libs-2.7.4-130.el7.x86_64 requires libreadline.so.6()(64bit), but none of the providers can be installed
  - package rubygem-hammer_cli-3.3.0-1.el8.noarch requires rubygem(unicode), but none of the providers can be installed
  - cannot install both readline-7.0-10.el8.x86_64 and readline-6.2-11.el7.x86_64
  - package rubygem-hammer_cli_foreman-3.3.0-1.el8.noarch requires rubygem(hammer_cli) >= 2.1.0, but none of the providers can be installed
  - package rubygem-hammer_cli_foreman-3.3.0-1.el8.noarch requires rubygem(hammer_cli) >= 3.3.0, but none of the providers can be installed
  - package OpenIPMI-2.0.31-3.0.1.el8.x86_64 requires libreadline.so.7()(64bit), but none of the providers can be installed
  - package rubygem-hammer_cli_foreman_puppet-0.0.6-1.fm3_3.el8.noarch requires rubygem(hammer_cli_foreman) < 4.0.0, but none of the providers can be installed
  - package rubygem-hammer_cli_foreman_puppet-0.0.6-1.fm3_3.el8.noarch requires rubygem(hammer_cli_foreman) > 2.6.0, but none of the providers can be installed
  - package rubygem-hammer_cli_foreman_puppet-0.0.6-1.fm3_3.el8.noarch requires (rubygem(hammer_cli_foreman) > 2.6.0 with rubygem(hammer_cli_foreman) < 4.0.0), but none of the providers can be installed
  - package OpenIPMI-lanserv-2.0.31-3.0.1.el8.x86_64 requires OpenIPMI(x86-64) = 2.0.31-3.0.1.el8, but none of the providers can be installed
  - cannot install the best candidate for the job
  - package ruby-libs-2.7.1-133.module+el8.3.0+7760+537395ec.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.3-136.module+el8.4.0+20239+cbf59dc8.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.4-137.module+el8.4.0+20269+fcbf533e.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.6-138.module+el8.6.0+20740+358d9979.x86_64 is filtered out by modular filtering
 Problem 14: package rubygem-smart_proxy_remote_execution_ssh-0.7.2-1.fm3_3.el8.noarch requires rubygem(smart_proxy_dynflow) < 1, but none of the providers can be installed
  - package rubygem-smart_proxy_remote_execution_ssh-0.7.2-1.fm3_3.el8.noarch requires rubygem(smart_proxy_dynflow) >= 0.8, but none of the providers can be installed
  - package rubygem-smart_proxy_remote_execution_ssh-0.7.2-1.fm3_3.el8.noarch requires (rubygem(smart_proxy_dynflow) >= 0.8 with rubygem(smart_proxy_dynflow) < 1), but none of the providers can be installed
  - cannot install the best candidate for the job
  - package rubygem-smart_proxy_dynflow-0.8.1-1.fm3_3.el8.noarch requires rubygem(sqlite3), but none of the providers can be installed
  - package tfm-rubygem-smart_proxy_remote_execution_ssh-0.7.2-1.fm3_3.el7.noarch requires rh-ruby27-ruby(release), but none of the providers can be installed
  - package rubygem-sqlite3-1.4.2-1.el8.x86_64 requires libruby.so.2.7()(64bit), but none of the providers can be installed
  - package rh-ruby27-ruby-libs-2.7.4-130.el7.x86_64 requires libreadline.so.6()(64bit), but none of the providers can be installed
  - cannot install both readline-7.0-10.el8.x86_64 and readline-6.2-11.el7.x86_64
  - package postgresql-10.23-1.module+el8.7.0+20896+16771be9.x86_64 requires libreadline.so.7()(64bit), but none of the providers can be installed
  - package postgresql-contrib-10.23-1.module+el8.7.0+20896+16771be9.x86_64 requires postgresql(x86-64) = 10.23-1.module+el8.7.0+20896+16771be9, but none of the providers can be installed
  - package ruby-libs-2.7.1-133.module+el8.3.0+7760+537395ec.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.3-136.module+el8.4.0+20239+cbf59dc8.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.4-137.module+el8.4.0+20269+fcbf533e.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.6-138.module+el8.6.0+20740+358d9979.x86_64 is filtered out by modular filtering
 Problem 15: package rubygem-smart_proxy_pulp-3.2.0-3.fm3_3.el8.noarch requires foreman-proxy >= 2.3, but none of the providers can be installed
  - package foreman-proxy-3.3.0-0.1.rc1.el8.noarch requires rubygem(ruby-libvirt) >= 0.6.0, but none of the providers can be installed
  - package foreman-proxy-3.3.0-0.1.rc2.el8.noarch requires rubygem(ruby-libvirt) >= 0.6.0, but none of the providers can be installed
  - package foreman-proxy-3.3.0-1.el8.noarch requires rubygem(ruby-libvirt) >= 0.6.0, but none of the providers can be installed
  - package foreman-proxy-3.3.1-1.el8.noarch requires rubygem(ruby-libvirt) >= 0.6.0, but none of the providers can be installed
  - package rubygem-ruby-libvirt-0.7.1-2.el8.x86_64 requires libruby.so.2.7()(64bit), but none of the providers can be installed
  - package rh-ruby27-ruby-libs-2.7.4-130.el7.x86_64 requires libreadline.so.6()(64bit), but none of the providers can be installed
  - cannot install both readline-7.0-10.el8.x86_64 and readline-6.2-11.el7.x86_64
  - package python2-libs-2.7.18-11.0.1.module+el8.7.0+20809+34912fc4.x86_64 requires libreadline.so.7()(64bit), but none of the providers can be installed
  - package python2-2.7.18-11.0.1.module+el8.7.0+20809+34912fc4.x86_64 requires python2-libs(x86-64) = 2.7.18-11.0.1.module+el8.7.0+20809+34912fc4, but none of the providers can be installed
  - package python2-devel-2.7.18-11.0.1.module+el8.7.0+20809+34912fc4.x86_64 requires python2(x86-64) = 2.7.18-11.0.1.module+el8.7.0+20809+34912fc4, but none of the providers can be installed
  - cannot install the best candidate for the job
  - foreman-proxy-3.3.1-1.el7.noarch does not belong to a distupgrade repository
  - conflicting requests
  - package ruby-libs-2.7.1-133.module+el8.3.0+7760+537395ec.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.3-136.module+el8.4.0+20239+cbf59dc8.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.4-137.module+el8.4.0+20269+fcbf533e.x86_64 is filtered out by modular filtering
  - package ruby-libs-2.7.6-138.module+el8.6.0+20740+358d9979.x86_64 is filtered out by modular filtering

While I did not explictly test Oracle Linux, I would expect it to work.

Are you following Upgrading and Updating Foreman ?

How did you setup the Foreman repositories, which version of Leapp are you using?

Yes, that’s the exact guide I’ve been following.

/etc/leapp/files/leapp_upgrade_repositories.repo has the content from that upgrade guide, with puppet7 replaced with puppet6.

Leapp is version 0.15.0-2, installed from the built-in ol7-leapp repository from Oracle.

I tried using the instructions for CentOS, but that only supports literal CentOS as the source OS.

The only place that I deviated from the guide was that I ran leapp preupgrade --oraclelinux, per Oracle’s Leapp guide. However, I just tried running it without the --oraclelinux option, and got an error about missing base OS repositories, but it looked from error output like it was using all of the foreman/katello repos. Some research showed that --oraclelinux is a shortcut to --enablerepo ol8_baseos_latest --enablerepo ol8_appstream --enablerepo ol8_UEKR6 so I instead tried:

leapp preupgrade --enablerepo leapp-foreman-client --enablerepo leapp-foreman --enablerepo leapp-foreman-plugins --enablerepo leapp-katello-candlepin --enablerepo leapp-puppet6 --enablerepo leapp-pulpcore --enablerepo leapp-katello --enablerepo ol8_baseos_latest --enablerepo ol8_appstream --enablerepo ol8_UEKR6

and that gives the same errors as in my initial post.

I do also have the following errors that I’m going to look into:

Failed to create directory /var/lib/leapp/el8userspace//sys/fs/selinux: Read-only file system
Failed to create directory /var/lib/leapp/el8userspace//sys/fs/selinux: Read-only file system
Warning: Packages marked by Leapp for install not found in repositories metadata: python38-pulp-python rubygem-foreman-tasks-core python38-pulp-certguard boost-python3-devel python38-pulpcore python38-pulp-cli python38-pulp-container python38-pulp-ansible boost-python3 rubygem-foreman_remote_execution_core python38-pulp-rpm log4j12 python38-pulp-deb python38-pulp-file
Warning: Packages marked by Leapp for upgrade not found in repositories metadata: leapp-upgrade-el7toel8 leapp python2-leapp

Fixed these errors by enabling selinux.

Haven’t been able to resolve any of the other errors.

Right, I asked “which leapp version”, but what I really meant was “which leapp-upgrade-el7toel8 version”.

I guess the ol7-leapp repo you’re referring to is Oracle Linux 7 (x86_64) Leapp Upgrade Utilities | Oracle, Software. Hardware. Complete.? That contains new enough files.

You shouldn’t need to pass --enablerepo for the repositories defined in /etc/leapp/files/leapp_upgrade_repositories.repo (at least on upstream Leapp, those are automatically enabled).

Can you show me the contents of /var/log/leapp/leapp-report.txt and /var/log/leapp/leapp-preupgrade.log? Those files will contain a bit of private infromation (hostname, rpms installed), so feel free to mail them to evgeni at redhat dot com if you don’t want to post them publicly :slight_smile:

Oops, sorry! leapp-upgrade-el7toel8 is version 0.17.0-1.0.3, also from the ol7-leapp repo

Yup, that’s the one.

Ah, ok. I saw in a log file a --disablerepo '*', with only the oracle repos enabled afterwards, so thought that might make a difference.

Emailed! Thank you so much for your help.

Thanks a ton for the logs. They helped me to understand the problem!

So in EL8 several software is packaged as “modules” (so that the user can pick between different versions) and we’re using that to run Foreman with Ruby 2.7 (instead of the default 2.5) among other things. The error you pasted above indicates that it cannot find Ruby 2.7 in the created “target userspace” (aka: the thing it created that contains your new OL8).

The Leapp actor(s) we’ve written to aide the upgrade do have instructions to enable those modules:

And that code is also present in the RPM shipped by Oracle.

However, our actors do not implement the module enablement, but just instruct Leapp to do this for us.

The actual module handling was implemented over the course of multiple PRs (The Modularity integration by vinzenz · Pull Request #672 · oamg/leapp-repository · GitHub, modularity: Reset modules before upgrade by vinzenz · Pull Request #799 · oamg/leapp-repository · GitHub, Fix upgrade crashing due to attempting to enable non-existing modules by MichalHe · Pull Request #941 · oamg/leapp-repository · GitHub), which crucially have edited a file (leapp-repository/rhel_upgrade.py at master · oamg/leapp-repository · GitHub) which is used as a plugin to DNF to perform all necessary actions.

Why am I writing all this? Well, in the Oracle-shipped version of Leapp, there is no rhel_upgrade.py, but there is a oracle_upgrade.py (in /usr/share/leapp-repository/repositories/system_upgrade/common/files/oracle_upgrade.py) which doesn’t have any of the modularity-related changes that happened in Leapp upstream.

That means that no modules will be enabled during the upgrade and stuff breaks left and right.

I guess you gotta engage with Oracle support so that they unbreak their Leapp fork.

1 Like

Wow, amazing! I grabbed the rhel_upgrade.py and merged the changes with oracle_upgrade.py. The preupgrade now passes!

I had one error during the upgrade, but that was easy to resolve, and I’m now running on Oracle Linux 8.7! Thank you so much for your help, would not have been able to do that without it.

Oh wow, nice! I didn’t expect that merging those changes would be doable without many many headaches.

I just realized that the 3.3 upgrade docs are missing an important step to reindex the DB after the upgrade.

It’s documented here for 3.1: Upgrading and Updating Foreman

I’ll make sure to fix the docs, and you please run the reindex (otherwise you might get DB corruption at some point).

Hello, I upgraded recently from RHEL7 to RHEL8 without reindexing the DB, is it a big problem ?

Do it now and we’ll find out :slight_smile:

There is a high chance you’ll see errors like this:

reindexdb: error: reindexing of database "foreman" failed: ERROR:  could not create unique index "index_fact_names_on_name_and_type"
DETAIL:  Key (name, type)=(<something>, PuppetFactName) is duplicated.   

or

reindexdb: error: reindexing of database "foreman" failed: ERROR:  could not create unique index "index_fact_names_on_name_and_type"
DETAIL:  Key (name, type)=(<something>, Katello::RhsmFactName) is duplicated.

Luckily the facts table can be wiped and will be re-populated by clients once the check in again.

For the first error:

# cat << EOF | foreman-rake console
conf.echo = false
fact_name_ids = FactName.unscoped.where(:type => 'PuppetFactName').ids
pp fact_name_ids.count
FactValue.unscoped.where(:fact_name_id => fact_name_ids).delete_all
FactName.unscoped.where(:id => fact_name_ids).delete_all
pp FactName.unscoped.where(:type => 'PuppetFactName').ids.count
EOF 

For the second:

# cat << EOF | foreman-rake console
conf.echo = false
fact_name_ids = FactName.unscoped.where(:type => 'Katello::RhsmFactName').ids
pp fact_name_ids.count
FactValue.unscoped.where(:fact_name_id => fact_name_ids).delete_all
FactName.unscoped.where(:id => fact_name_ids).delete_all
pp FactName.unscoped.where(:type => 'Katello::RhsmFactName').ids.count
EOF   

Then run the reindex command again.

Well, thank you I will try it. Should I stop the foreman service before ? Should it be run also on capsules ?

No need to stop services and yes, also on the proxy.

OK. It has been running more than 50 minutes:
reindexdb: reindexing database “candlepin”
and in processes I can see:
postgres: postgres candlepin [local] REINDEX waiting.

Hope it does something.

huh, 50 minutes is a lot. try stopping candlepin for a moment: systemctl stop tomcat

Yes, it helped, but I ended on another error:

reindexdb: error: reindexing of database “foreman” failed: ERROR: could not create unique index “katello_erratum_packages_eid_nvrea_n_f”
DETAIL: Key (erratum_id, nvrea, name, filename)=(3095639, gcc-objc-8.5.0-15.el8.s390x, gcc-objc, gcc-objc-8.5.0-15.el8.s390x.rpm) is duplicated.

Okay, that’s the issue we were hoping to avoid :frowning:

I poked @iballou on IRC to look into this, stay tuned :slight_smile:

1 Like

Hi @JendaVodka ,

Could you try opening up the Foreman console (foreman-rake console) and running the following:

::Katello::ErratumPackage.where.not(id: ::Katello::ErratumPackage.group(:nvrea).select("min(id)")).map {|ep| ep.erratum.repositories}.flatten.uniq.map{|r| r.relative_path}

That should return a list of repository paths. I’d be curious how many repositories are affected.

There are a couple ways to fix. The safest fix would be to destroy all errata records (and children) for your affected repositories and then reindex from Pulp. If too many large repositories are affected, then reindexing from Pulp may take too much time and we may need to fix the dupes manually.

Order of operations would be:

  1. Destroy affected errata and child records
  2. Reindex the DB
  3. Reindex/reimport the data from Pulp to the repositories (like a resync without some steps).

Hi @iballou, the code you provided has been running more 15 minutes now with no output, is it correct ?

ad 1) I do not know how to do it :frowning:

Thank you very much for your attention

Don’t worry about the fix that I mentioned yet, first it would be good to know the magnitude of the duplicates. If the query is really taking a long time to return your environment must be sizable and perhaps another query should be used.

If the above query seems to be taking way too long, perhaps some of these queries could give me a better idea:

::Katello::Erratum.count
::Katello::ErratumPackage.count
::Katello::Repository.count
::Katello::RootRepository.count