[ovs-dev] [PATCH V2 2/2] rhel: Add post installation check for kernel modules
Guru Shetty
guru at ovn.org
Fri Jan 12 19:06:21 UTC 2018
On 12 January 2018 at 10:16, Gregory Rose <gvrose8192 at gmail.com> wrote:
> On 1/12/2018 9:37 AM, Guru Shetty wrote:
>
>
>
> On 12 January 2018 at 08:37, Greg Rose <gvrose8192 at gmail.com> wrote:
>
>> A bug in RHEL 7.2 has been found in which a customer who installed
>> a RHEL 7.2 openvswitch kernel module rpm with a slightly different
>> minor build number than the running kernel found that the kernel
>> modules were installed to the wrong directory.
>>
>> After the installation the new openvswitch kernel modules were
>> installed to:
>> /lib/modules/3.10.0-327.22.2.el7.x86_64/extra/openvswitch
>>
>> But the running kernel was 3.10.0-327.el7.x86_64 and after the
>> installation was complete the kernel modules in the installed
>> directory were not linked to the "weak-updates" directory in
>> the running kernel. So a critical bug was encountered in
>> which the in-tree openvswitch kernel module was loaded instead
>> of the one the customer explicitly installed with the rpm.
>>
>> This patch replicates ./extra/openvswitch directory with kernel
>> modules, if for the currently running kernel there is neither
>> a ./extra/openvswitch nor ./weak-update/openvswitch directory.
>>
>> Signed-off-by: Greg Rose <gvrose8192 at gmail.com>
>>
>> ---
>>
>> V2 - Incorporate feedback from V1
>> ---
>> rhel/openvswitch.spec.in | 26 ++++++++++++++++++++++++++
>> 1 file changed, 26 insertions(+)
>>
>> diff --git a/rhel/openvswitch.spec.in b/rhel/openvswitch.spec.in
>> index e510d35..b5b5122 100644
>> --- a/rhel/openvswitch.spec.in
>> +++ b/rhel/openvswitch.spec.in
>> @@ -169,6 +169,32 @@ fi
>> /sbin/chkconfig --add openvswitch
>> /sbin/chkconfig openvswitch on
>>
>> +# In some cases a kernel module rpm will have a different minor build
>> +# version than the currently running kernel. In this case the kernel
>> +# modules will be installed but not to the kernel modules directory
>> +# of the currently running kernel. Check and copy modules if
>> +# necessary.
>> +# This is a bug that has only been found to occur on RHEL 7.2.
>> +if [[ ! -d /lib/modules/$(uname -r)/extra/openvswitch && \
>> + ! -d /lib/modules/$(uname -r)/weak-updates/openvswitch ]]; then
>>
>
> This check may not be good enough. If we are doing a upgrade of OVS on the
> system (say from 2.7 to 2.9) and previously we had something in
> /lib/modules/$(uname -r)/weak-updates/openvswitch then we are no longer
> going to add the newer version there.
>
>
> But that would assure that a previous attempt to install the openvswitch
> kernel modules rpm had succeeded, which means this system doesn't have the
> bug that is prompting this patch. That means the newly installed kernel
> modules have been placed in the right kernel modules directory. So the
> test is correct.
>
If this patch gets accepted and we install OVS 2.8 with this and next try
to upgrade to OVS 2.9, the above logic does not work anymore. Correct?
>
>
>
>
>> + found="false"
>> + for i in `ls -t /lib/modules`
>> + do
>> + if [ -d /lib/modules/$i/extra/openvswitch ]; then
>>
> This will not help either. There is a possibility of multiple kernels
> installed and it looks like we will choose one randomly. We should only
> look at the path where the current rpm actually installed our files.
>
>
> I tried it on a system with multiple installed kernels and it does work
> because the sort by time will pick the most recently installed kernel
> modules directory which would be the one where the just installed kernel
> modules rpm had gone to (erroneously I should add).
>
>
>
>> + mkdir -p /lib/modules/$(uname -r)/extra
>> + cp -r --preserve "/lib/modules/$i/extra/openvswitch" \
>> + /lib/modules/$(uname -r)/extra
>> + found="true"
>> + break
>> + fi
>> + done
>> + if [ "$found" != "true" ]; then
>> + echo "Error in openvswitch kernel modules installation"
>> + else
>> + /usr/sbin/depmod -a
>> + fi
>> +fi
>> +
>> %post selinux-policy
>> /usr/sbin/semodule -i %{_datadir}/selinux/packages/%{name}/openvswitch-custom.pp
>> &> /dev/null || :
>>
>> --
>> 1.8.3.1
>>
>> _______________________________________________
>> dev mailing list
>> dev at openvswitch.org
>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>>
>
>
>
More information about the dev
mailing list