Bug 1944815

Summary: Oracle Linux conversion blocked on kmod check
Product: Red Hat Enterprise Linux 8 Reporter: Terry Bowling <tbowling>
Component: convert2rhelAssignee: Michal Bocek <mbocek>
Status: CLOSED CURRENTRELEASE QA Contact: Upgrades and Supportability <upgrades-and-supportability>
Severity: unspecified Docs Contact: Miriam Portman <mportman>
Priority: unspecified    
Version: 8.3CC: azhukov, bsingh, fkrska, yuokada
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: convert2rhel-0.21-3.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-06-09 18:41:45 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Terry Bowling 2021-03-30 17:42:03 UTC
The conversion on OL 6/7/8 with the convert2rhel version 0.20 and newer is stopped on the check of unsupported kernel modules (kmods).

There are 500+ modules reported as unsupported even with a minimal OL installation.

This effectively blocks every OL conversion as there's no way to disable the kmod check.

Comment 1 Terry Bowling 2021-04-07 11:45:03 UTC
On Oracle Linux 8.3 running the Oracle UEK kernel, which is the default, and using convert2rhel-0.20-1.el8.noarch produces the expected, known issues of "foreign" kernel modules due to them failing the comparison check of what is provided by the RHEL kernel.  As expected, this causes convert2rhel to halt and perform the rollback procedure to restore to a known, safe state.

# rpm -q kernel-uek convert2rhel
kernel-uek-5.4.17-2011.7.4.el8uek.x86_64
convert2rhel-0.20-1.el8.noarch

### Sample Output ###

[04/06/2021 12:39:04] TASK - [Convert: Final system checks before main conversion] **************
5.4.17-2011.7.4.el8uek.x86_64
5.4.17-2011.7.4.el8uek.x86_64
CRITICAL - The following kernel modules are not supported in RHEL:
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/input/keyboard/tca6416-keypad.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/net/netdevsim/netdevsim.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/mtd/nand/raw/diskonchip.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/video/fbdev/nvidia/nvidiafb.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/gpu/drm/i2c/tda998x.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/ntb/ntb_transport.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/regulator/tps65023-regulator.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/message/fusion/mptfc.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/power/supply/ds2782_battery.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/net/netfilter/nfnetlink_osf.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/watchdog/advantechwdt.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/net/wireless/marvell/libertas/libertas_sdio.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/ata/pata_sch.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/media/mc/mc.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/auxdisplay/cfag12864b.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/crypto/lz4.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/net/can/m_can/m_can.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/net/ethernet/silan/sc92031.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/net/wireless/lib80211_crypt_ccmp.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/usb/typec/typec.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/net/wimax/wimax.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/net/wireless/intel/ipw2x00/ipw2200.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/net/6lowpan/nhc_routing.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/ata/pata_via.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/i2c/busses/i2c-xiic.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/mtd/devices/mtdram.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/staging/rtl8192e/rtllib_crypt_wep.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/net/ethernet/chelsio/cxgb/cxgb.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/mtd/nand/raw/nand.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/net/bridge/netfilter/nft_meta_bridge.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/mtd/nand/nandcore.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/ata/pata_pdc202xx_old.ko.xz
...
... removed for brevity
...
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/usb/serial/usb-serial-simple.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/fs/ext2/ext2.ko.xz
/lib/modules/5.4.17-2011.7.4.el8uek.x86_64/kernel/drivers/staging/uwb/whc-rc.ko.xz
Uninstall or disable them and run convert2rhel again to continue with the conversion.
WARNING - Abnormal exit! Performing rollback ...

[04/06/2021 12:39:42] TASK - [Rollback: Unregistering the system from RHSM] *********************
System unregistered successfully
Removing RHEL subscription-manager packages.

[04/06/2021 12:39:45] TASK - [Rollback: Removing installed packages] ****************************
No package to remove

[04/06/2021 12:39:45] TASK - [Rollback: Installing removed packages] ****************************
Installing packages:
	/var/lib/convert2rhel/backup/rhn-check-2.8.16-13.0.3.module+el8.3.0+7814+aac1f1cb.x86_64.rpm
	/var/lib/convert2rhel/backup/rhn-client-tools-2.8.16-13.0.3.module+el8.3.0+7814+aac1f1cb.x86_64.rpm
	/var/lib/convert2rhel/backup/rhn-setup-2.8.16-13.0.3.module+el8.3.0+7814+aac1f1cb.x86_64.rpm
	/var/lib/convert2rhel/backup/rhnlib-2.8.6-8.0.1.module+el8.3.0+7814+aac1f1cb.noarch.rpm
	/var/lib/convert2rhel/backup/rhnsd-5.0.35-3.0.1.module+el8.3.0+7814+aac1f1cb.x86_64.rpm
	/var/lib/convert2rhel/backup/python3-rhn-check-2.8.16-13.0.3.module+el8.3.0+7814+aac1f1cb.x86_64.rpm
	/var/lib/convert2rhel/backup/python3-rhn-client-tools-2.8.16-13.0.3.module+el8.3.0+7814+aac1f1cb.x86_64.rpm
	/var/lib/convert2rhel/backup/python3-rhn-setup-2.8.16-13.0.3.module+el8.3.0+7814+aac1f1cb.x86_64.rpm
	/var/lib/convert2rhel/backup/python3-rhnlib-2.8.6-8.0.1.module+el8.3.0+7814+aac1f1cb.noarch.rpm
	/var/lib/convert2rhel/backup/oraclelinux-release-el8-1.0-14.el8.x86_64.rpm
	/var/lib/convert2rhel/backup/oraclelinux-release-8.3-1.0.4.el8.x86_64.rpm
	/var/lib/convert2rhel/backup/redhat-release-8.3-1.0.0.1.el8.x86_64.rpm

[04/06/2021 12:39:50] TASK - [Rollback: Restore .repo files to /etc/yum.repos.d/] ***************
Restored repo: oracle-linux-ol8.repo
Restored repo: uek-ol8.repo
Restored repo: convert2rhel.repo

[04/06/2021 12:39:50] TASK - [Rollback: Restoring /etc/system-release from backup] **************
File /etc/system-release restored

[04/06/2021 12:39:50] TASK - [Rollback: Restoring /etc/yum.conf from backup] ********************
File /etc/yum.conf restored

[04/06/2021 12:39:50] TASK - [Rollback: Restoring /etc/yum/pluginconf.d/versionlock.list from backup] 
WARNING - /etc/yum/pluginconf.d/versionlock.list hasn't been backed up

Comment 2 Terry Bowling 2021-04-07 11:58:11 UTC
With the OL UEK kernel, convert2rhel detects 549 foreign kmods from a default, minimal install.

After rebooting the same system into the Red Hat compatible kernel, also installed by default by Oracle Linux, only a single foreign kmod is detected that did not map to a RHEL equivalent.

[root@o2r83 ~]# uname -a
Linux o2r83 4.18.0-240.el8.x86_64 #1 SMP Thu Nov 5 18:14:47 PST 2020 x86_64 x86_64 x86_64 GNU/Linux

# rpm -qa |grep kernel
kernel-core-4.18.0-240.el8.x86_64
kernel-modules-4.18.0-240.el8.x86_64
kernel-tools-4.18.0-240.el8.x86_64
kernel-uek-5.4.17-2011.7.4.el8uek.x86_64
kernel-4.18.0-240.el8.x86_64
kernel-tools-libs-4.18.0-240.el8.x86_64


[04/07/2021 07:34:08] TASK - [Convert: Final system checks before main conversion] **************
4.18.0-240.el8.x86_64
4.18.0-240.el8.x86_64
CRITICAL - The following kernel modules are not supported in RHEL:
/lib/modules/4.18.0-240.el8.x86_64/kernel/crypto/cts.ko.xz
Uninstall or disable them and run convert2rhel again to continue with the conversion.
WARNING - Abnormal exit! Performing rollback ...

[04/07/2021 07:34:23] TASK - [Rollback: Unregistering the system from RHSM] *********************
System unregistered successfully
Removing RHEL subscription-manager packages.


[root@o2r83 ~]# modinfo /lib/modules/4.18.0-240.el8.x86_64/kernel/crypto/cts.ko.xz
filename:       /lib/modules/4.18.0-240.el8.x86_64/kernel/crypto/cts.ko.xz
alias:          crypto-cts
alias:          cts
description:    CTS-CBC CipherText Stealing for CBC
license:        Dual BSD/GPL
rhelversion:    8.3
srcversion:     86A1BB270E9F6E7B94B61F5
depends:        
intree:         Y
name:           cts
vermagic:       4.18.0-240.el8.x86_64 SMP mod_unload modversions 
sig_id:         PKCS#7
signer:         Oracle CA Server
sig_key:        66:38:C9:BF:CA:D8:A2:AB:A9:61:8D:03:83:6D:80:6D:AC:5C:FB:29
sig_hashalgo:   sha256
signature:      49:C8:2C:B4:01:C6:EC:A1:DB:A8:64:54:BD:67:9C:6C:76:3C:57:E3:
		B2:45:B5:A9:88:D0:DD:A5:0F:70:C8:0D:51:62:14:0A:82:60:CD:3D:
		C8:DB:71:A6:71:82:62:9B:1B:58:D2:23:61:F6:B8:3D:E4:DF:F6:9A:
		97:BF:60:2D:56:56:21:DA:D5:F4:87:C4:F4:26:7A:E9:98:91:36:B8:
		ED:FD:B9:A0:57:6A:8E:0C:E8:52:25:37:AA:DC:F6:40:02:B8:C3:6C:
		48:71:F4:89:08:8C:E4:B0:83:52:92:BE:34:EB:5C:56:9C:C4:D2:0C:
		7C:39:FF:1C:80:15:4F:0C:37:0A:92:38:CB:3B:53:58:6B:66:6B:6C:
		6B:32:87:88:0C:F5:B4:4E:A0:2F:77:94:A6:C0:6B:95:16:EB:E4:06:
		94:BA:B0:90:44:77:46:41:8E:1A:B9:87:17:96:07:CB:DC:37:A7:74:
		D7:14:96:D1:2F:22:41:F6:10:74:90:9B:C6:AE:DE:30:1D:1B:0C:9F:
		DE:53:25:13:68:A6:88:DC:59:8A:E9:DC:EB:7D:DF:F4:38:76:76:7A:
		7F:8A:5A:1D:6F:8D:19:B1:D9:8E:25:59:A4:18:F0:00:B2:3F:17:44:
		97:43:00:EB:BC:78:7A:A0:B4:E4:2C:50:AB:B8:51:7B:82:83:2D:D4:
		F1:E5:8D:25:F6:E9:D1:A5:BD:CF:78:AC:02:6B:91:8A:AE:DA:59:3E:
		5F:6A:E4:14:9E:01:AA:CB:D8:18:9B:25:1F:77:A3:5B:74:DB:00:A4:
		04:59:56:B5:70:01:FB:EE:C8:F3:E2:48:57:3A:19:EF:E4:82:9C:FD:
		D3:D8:DA:F7:C0:CC:64:E7:E3:B9:08:4C:D6:D5:46:EC:07:E6:BE:1E:
		42:5F:C7:C2:BC:86:76:B8:1A:1B:E1:97:F8:0B:81:F4:E1:4A:5D:98:
		BA:F7:28:B3:7B:D9:2E:5B:AC:71:D0:8A:F5:6E:D7:DE:02:C8:10:69:
		4C:F6:7A:A6

Comment 3 Terry Bowling 2021-04-07 12:17:44 UTC
The cts kmod seems to not exist in any of the RHEL kernels

[root@rhel83 ~]# uname -a
Linux rhel83 4.18.0-240.15.1.el8_3.x86_64 #1 SMP Wed Feb 3 03:12:15 EST 2021 x86_64 x86_64 x86_64 GNU/Linux

[root@rhel83 ~]# rpm -qa | grep kernel-core
kernel-core-4.18.0-240.8.1.el8_3.x86_64
kernel-core-4.18.0-240.10.1.el8_3.x86_64
kernel-core-4.18.0-240.22.1.el8_3.x86_64
kernel-core-4.18.0-240.15.1.el8_3.x86_64

[root@rhel83 ~]# ls /lib/modules/4.18.0*/kernel/crypto/cts*
ls: cannot access '/lib/modules/4.18.0*/kernel/crypto/cts*': No such file or directory

##########################################
However, the cts kmod DOES appear in the CentOS kernels, however does not inhibit convert2rhel - it does not trigger the foreign kmod detection.

[root@c2r83 ~]# cat /etc/centos-release
CentOS Linux release 8.3.2011

[root@c2r83 ~]# uname -a
Linux c2r83.localdomain 4.18.0-240.1.1.el8_3.x86_64 #1 SMP Thu Nov 19 17:20:08 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

# ls /lib/modules/4.18.0*/kernel/crypto/cts*
/lib/modules/4.18.0-240.1.1.el8_3.x86_64/kernel/crypto/cts.ko.xz  
/lib/modules/4.18.0-240.el8.x86_64/kernel/crypto/cts.ko.xz

convert2rhel is not inhibited by the cts.ko.xz kmod and completes the conversion to RHEL successfully.


##########################################

In Oracle Linux with an upgraded RHEL compatible kernel -240.22, the cts.ko.xz appears to have been removed.  This allowed Convert2RHEL to continue and successfully convert the system.

[root@o2r83 ~]# cat /etc/oracle-release
Oracle Linux Server release 8.3

[root@o2r83 ~]# rpm -qa |grep kernel-core
kernel-core-4.18.0-240.el8.x86_64
kernel-core-4.18.0-240.22.1.el8_3.x86_64

[root@o2r83 ~]# ls /lib/modules/4.18.0*/kernel/crypto/cts*
/lib/modules/4.18.0-240.el8.x86_64/kernel/crypto/cts.ko.xz

Comment 4 Terry Bowling 2021-04-07 19:03:07 UTC
I made copies of my MV disk image.  I restored the original disk image, updated to latest 7.9 errata, rebooted into RHEL compatible kernel and it completed successfully.

So stressing the importance of updating is important here.  Not sure how the tool could accurately detect or enforce as "latest" is always a moving target.

However, it may be worthwhile to understand the root cause to help ensure we do not harm if the user forgets to update first.  I have the failed disk image if you need me to collect more data or make it accessible to you.

Comment 5 Terry Bowling 2021-04-07 19:03:48 UTC
(In reply to Terry Bowling from comment #4)
> I made copies of my MV disk image.  I restored the original disk image,
> updated to latest 7.9 errata, rebooted into RHEL compatible kernel and it
> completed successfully.
> 
> So stressing the importance of updating is important here.  Not sure how the
> tool could accurately detect or enforce as "latest" is always a moving
> target.
> 
> However, it may be worthwhile to understand the root cause to help ensure we
> do not harm if the user forgets to update first.  I have the failed disk
> image if you need me to collect more data or make it accessible to you.

Apologies, ignore this comment.  It was intended for https://bugzilla.redhat.com/show_bug.cgi?id=1947003

Comment 6 Terry Bowling 2021-04-07 19:08:08 UTC
I would like to reiterate the status update for this - it works!

In Oracle Linux with an upgraded RHEL compatible kernel -240.22, the cts.ko.xz appears to have been removed.  This allowed Convert2RHEL to continue and successfully convert the system.

[root@o2r83 ~]# cat /etc/oracle-release
Oracle Linux Server release 8.3

[root@o2r83 ~]# rpm -qa |grep kernel-core
kernel-core-4.18.0-240.el8.x86_64
kernel-core-4.18.0-240.22.1.el8_3.x86_64

[root@o2r83 ~]# ls /lib/modules/4.18.0*/kernel/crypto/cts*
/lib/modules/4.18.0-240.el8.x86_64/kernel/crypto/cts.ko.xz


In summary, you *must*:
  1. yum update to latest 8.3 errata to avoid the cts kmod
  2. reboot into RHEL compatible kernel - I believe this is what Consulting instructed as well
  3. enjoy a successful conversion :D

Comment 7 zhukovgreen 2021-04-08 07:53:42 UTC
Great news, @Terry Bowling! Thank you!

Comment 8 Michal Bocek 2021-06-09 18:41:45 UTC
The steps to migrate Oracle Linux have been described in https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/converting_from_an_rpm-based_linux_distribution_to_rhel/index.
The main step necessary for the conversion to succeed is to boot into the Red Hat-compatible kernel (https://en.wikipedia.org/wiki/Oracle_Linux#RHEL_compatibility) first.