On Fri, Jan 12, 2018 at 08:37:44AM -0800, Greg Rose 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.
I think this needs to be reworded because I thought something has changed in 7.2 to introduce this problem when it seems a bug in the way kmod is being handled in kmod package reproduces in RHEL 7.2. > > 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. I think the same comment I did for RHEL-6 works for RHEL-7, all you need is to run /sbin/weak-modules --add-module in the %post section. Don't forget to run again in %postun to remove the symlinks as the module will not exist. fbl > > Signed-off-by: Greg Rose <[email protected]> > > --- > > 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 > + found="false" > + for i in `ls -t /lib/modules` > + do > + if [ -d /lib/modules/$i/extra/openvswitch ]; then > + 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 > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev -- Flavio _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
