Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.
Sign upversion check fails on RHEL / CentOS 7.x #14
Comments
This comment has been minimized.
This comment has been minimized.
|
`#dkms autoinstall openvswitch/2.6.2 openvswitch: I want to know which kernel version you are using to build the openvswitch.ko module ? |
This comment has been minimized.
This comment has been minimized.
|
The default kernel from RHEL 7.3 version: 3.10.0-514.el7.x86_64 However this issue seems to hit every RHEL7 / CentOS 7 kernel, they all have similar modinfo output. |
This comment has been minimized.
This comment has been minimized.
|
Same issue as here: #5 |
This comment has been minimized.
This comment has been minimized.
|
It would make sense to make dkms handle 'broken' modules, given that this affects the mainline kernels from RHEL/CentOS. POLA and all. |
yuzaipiaofei
added
the
enhancement
label
Dec 28, 2016
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
I have the RHEL7.3 build environment to reproduce the installing error,if the issue can be reproduced and make sure it is a dkms bug ,we will find out the workable solution to fix it . |
This comment has been minimized.
This comment has been minimized.
|
@yuzaipiaofei I believe this should be the source https://github.com/openvswitch/ovs/tree/master/datapath Here's the DKMS package spec file: @sspans You might be able to provide something a little more direct about the exact version you are failing with, but it sounds like this should be a generic failure. |
This comment has been minimized.
This comment has been minimized.
|
The failure is triggered by the upstream openvswitch kernel module - it's not dependend on the dkms source tarball. A sample of affected kernels would be:
Modinfo which triggers the issue looks like this:
|
This comment has been minimized.
This comment has been minimized.
|
@superm1 please see issue #5 for a longer description. There are upstream modules in distribution kernels which trigger DKMS failures because the modules lack a version field. Fixing the upstream modules is a noble goal, but would not help for the kernels already out there. |
This comment has been minimized.
This comment has been minimized.
|
@sspans I already stated why the patch in #5 will not be accepted and gave acceptable alternatives, including other changes to DKMS (even though openvswitch really should fix their module). Also, for what it's worth, distributions update kernels more frequently than DKMS, so I don't follow your argument about kernels already in the field, especially since the bug is in openvswitch anyway. |
This comment has been minimized.
This comment has been minimized.
|
I'm pretty sure this will not be changed on the rhel/centos side. What would be an acceptable change to DKMS to deal with this? |
This comment has been minimized.
This comment has been minimized.
|
Before change i also can get below install error openvswitch: depmod... Backing up initramfs-3.10.0-514.el7.x86_64.img to /boot/initramfs-3.10.0-514.el7.x86_64.img.old-dkms DKMS: install completed. |
This comment has been minimized.
This comment has been minimized.
|
apply patch code : diff --git a/dkms b/dkms
|
This comment has been minimized.
This comment has been minimized.
|
Then install the module again : openvswitch:
depmod... Backing up initramfs-3.10.0-514.el7.x86_64.img to /boot/initramfs-3.10.0-514.el7.x86_64.img.old-dkms DKMS: install completed. |
This comment has been minimized.
This comment has been minimized.
|
In my opinion,if the kernel module is built by user or developer, maybe the module source codes are same or changed.
This is my suggestion to fix the issue. Mario & Jared . How do you think this solution @superm1 @jared-dominguez |
This comment has been minimized.
This comment has been minimized.
|
The semantics for "--force" shouldn't be changed since it already is in use. A new parameter is preferable. Perhaps "--force-unversioned"? It should output a warning message too. The new behavior being described here should be restricted to using this --force-unversioned parameter. |
This comment has been minimized.
This comment has been minimized.
|
If this also would be available as a configuration option then our issue would be resolved. |
This comment has been minimized.
This comment has been minimized.
|
@sspans Yes, sorry, that was implied, but again only if a warning message is output. And again, openvswitch really should fix their bug as that's the real issue. |
This comment has been minimized.
This comment has been minimized.
|
After i review the issue again, i found that this issue root cause is the openvswitch dkms package source code version is same as the RHEL7.3 GA kernel module source codes. DKMS will compare the module info and found the new built openvswitch module info is same as the installed one . Current DKMS sanity check policy will refuse the duplicated installation . |
yuzaipiaofei
closed this
May 23, 2017
This comment has been minimized.
This comment has been minimized.
|
Please reopen this issue, you seem to have misunderstood the issue. There are two versions of the openvswitch kernel module, the in-tree version (as shipped by redhat - with no versioning) and the out of tree version (from https://github.com/openvswitch/ovs). The latter has functionality which isn't included in the in-tree version. With dkms as-is it isn't possible to install the out of tree - versioned ovs module, because the in-tree module doesn't have a version number. Please considder merging one of the suggested patches. |
yuzaipiaofei
reopened this
May 23, 2017
This comment has been minimized.
This comment has been minimized.
celesteking
commented
Jun 2, 2017
|
Can we get this fixed finally? Comparing on md5 hash is stupid. |
tonyhutter
referenced this issue
Sep 14, 2018
Closed
Error! Module version for icp.ko.xz is not newer than what is already found in kernel #7786
tonyhutter
added a commit
to tonyhutter/dkms
that referenced
this issue
Sep 17, 2018
This comment has been minimized.
This comment has been minimized.
|
I've posted a fix (including a reproducer script) for this issue in #60. Please take a look at it when you get a chance. |
scaronni
closed this
in
ffc0fee
Oct 8, 2018
This comment has been minimized.
This comment has been minimized.
|
Sounds good! Many thanks |
This comment has been minimized.
This comment has been minimized.
GabeSJones
commented
Oct 10, 2018
|
I don't think the posted fix addresses the original reporter's problem. I am facing a similar predicament. We have made modifications to an in-tree driver in recent 4.1x kernels. We'd like for these changes to be available out-of-tree to users of distributions with much older kernels, so we anticipate distributing them via a DKMS RPM or DEB package. The code has never used MODULE_VERSION. We want to change that upstream, but none of the existing releases of this driver are versioned, so any current distribution that has this driver installed has an unversioned module. Attempting to install a DKMS package with a versioned module results in the error that the original reporter posted, because check_version_sanity() ends up comparing the version of the new module with the srcversion hash of the old module. If, e..g, the existing module has no version, and the new module is version 4.20, you end up with something like: kernels_info = (D461CC2083F4A806A36EBD1) The following ends up comparing 4.20 with D461CC2083F4A806A36EBD1, which seems invalid: Further, in the case where neither module is versioned, the code above compares the two srcversion hashes against each other with something other than equality, which doesn't make any sense. As a result, if I leave the new module unversioned as well, the install may or may not work depending upon whether the srcversion hash on the new module happens to compare favorably to the one on the existing module. The code above only works consistently if both the existing module and the module being installed both have version numbers. |
sspans commentedDec 20, 2016
Installing the openvswitch datapath modules via DKMS fails on redhat/centos 7 because the original modules are tagged with a checksum in the srcversion field:
Resulting failure:
Quick hack which resolves the issue for me: