V. Zed
V. Zed

Reputation: 121

Weird Kernel Errors - Cannot Yum Update

I'm trying to update a server using yum update. However, this error pops up:

==============================================================================================================================================================================================================================================
 Package                                          Arch                                    Version                                              Repository                                                                                Size
==============================================================================================================================================================================================================================================
Installing:
 kernel                                           x86_64                                  2.6.32-573.22.1.el6                                  updates                                                                                   30 M
Removing:
 kernel                                           x86_64                                  2.6.32-220.el6                                       @anaconda-RedHatEnterpriseLinux-201111171049.x86_64/6.2                                  112 M
Updating for dependencies:
 kernel-firmware                                  noarch                                  2.6.32-573.22.1.el6                                  updates                                                                                   18 M

Transaction Summary
==============================================================================================================================================================================================================================================
Install       1 Package(s)
Upgrade       1 Package(s)
Remove        1 Package(s)

Total size: 48 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
ERROR with rpm_check_debug vs depsolve:
kernel(iscsi_add_session) = 0xec873e61 is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_alloc_session) = 0x0c0f1826 is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_block_session) = 0xe602f69c is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_create_conn) = 0x6ba1339a is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_free_session) = 0xcf334a45 is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_register_transport) = 0x432a50aa is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_remove_session) = 0x503c7600 is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_scan_finished) = 0x3f0b3981 is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_session_chkready) = 0x56d25a63 is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_session_event) = 0x4e05d68f is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_unblock_session) = 0x21fe1275 is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_unregister_transport) = 0xfd06472f is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
** Found 12 pre-existing rpmdb problem(s), 'yum check' output follows:
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_add_session) = ('0', '0xec873e61', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_alloc_session) = ('0', '0x0c0f1826', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_block_session) = ('0', '0xe602f69c', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_create_conn) = ('0', '0x6ba1339a', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_free_session) = ('0', '0xcf334a45', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_register_transport) = ('0', '0x432a50aa', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_remove_session) = ('0', '0x503c7600', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_scan_finished) = ('0', '0x3f0b3981', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_session_chkready) = ('0', '0x56d25a63', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_session_event) = ('0', '0x4e05d68f', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_unblock_session) = ('0', '0x21fe1275', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_unregister_transport) = ('0', '0xfd06472f', None)

This is the output of yum install kernel since it seems like it's saying that kmod requires some kernel version.

OS: Centos 2.6.32-504.8.1.el6.x86_64

Upvotes: 1

Views: 802

Answers (3)

Mike stevens
Mike stevens

Reputation: 1

updating the yum.conf file from 3 to 5 was magically simple and effective! That released a whole bunch of updates that were clogg

Upvotes: 0

V. Zed
V. Zed

Reputation: 121

FIXED:

The problem was that kmod required an older kernel. Installing the new kernel would have removed the old one so kmod would complain. Installing the new kmod would require the new kernel so it becomes a cyclic dependency.

The fix was simply going into yum.conf and changing the amount of saved kernel versions so that it can save one more kernel version. I updated the kernel and since I could keep another version, the error did not pop up. Then I updated kmod right after. I haven't decided to delete the older kernel yet but I'm sure that if I decided to, it would be okay.

Upvotes: 1

Jerry Snitselaar
Jerry Snitselaar

Reputation: 268

That kmod was made for an older kernel, and it has requirements set for non whitelisted symbols to have a certain signature. The kernel being installed has signatures that are different for those iscsi functions so there is a conflict and it stops the install.

# rpm -qpi kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64.rpm warning:
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64.rpm: Header V3
DSA/SHA1 Signature, key ID 5e3d7775: NOKEY Name        :
kmod-qlgc-qla4xxx Version     : 5.02.15.01.05.06 Release     : 1.el6
Architecture: x86_64 Install Date: (not installed) Group       :
System Environment/Kernel Size        : 6248154 License     : GPLv2
Signature   : DSA/SHA1, Wed 04 Jul 2012 05:57:57 AM MST, Key ID
e74433e25e3d7775 Source RPM  :
qlgc-qla4xxx-5.02.15.01.05.06-1.el6.src.rpm Build Date  : Thu 15 Sep
2011 02:36:49 PM MST Build Host  : rhel6.1-64bit Relocations : (not
relocatable) Vendor      : qlgc URL         : http://www.qlogic.com/
Summary     : qlgc-qla4xxx kernel module(s) Description : This package
provides the qlgc-qla4xxx kernel modules built for the Linux kernel
2.6.32-131.0.15.el6.x86_64 for the x86_64 family of processors.


# rpm2cpio kernel-2.6.32-573.22.1.el6.src.rpm | cpio -ivd *Module.kabi_x86_64
Module.kabi_x86_64
213572 blocks

# grep iscsi Module.kabi_x86_64 | wc -l
0

signature of the symbols in the 573.22.1 rhel kernel:

kernel(iscsi_add_session) = 0x72885137
kernel(iscsi_alloc_session) = 0xf1c74334
kernel(iscsi_block_session) = 0x1a0123e6
kernel(iscsi_create_conn) = 0x711f2dde 
kernel(iscsi_free_session) = 0x07fc6db6
kernel(iscsi_register_transport) = 0xfd6d0c1c
kernel(iscsi_remove_session) = 0xfa98da53 
kernel(iscsi_scan_finished) = 0xa77fd357
kernel(iscsi_session_chkready) = 0xa5432637
kernel(iscsi_session_event) = 0x3982801b
kernel(iscsi_unblock_session) = 0xdd550f9b
kernel(iscsi_unregister_transport) = 0x0065ebc5

Check with Qlogic to see if they have an updated driver

Upvotes: 0

Related Questions