Bug 1468240

Summary: vdsm should be aware of new bond options in new kernel and should take action upon the change to make the new options as vdsm defaults
Product: Red Hat Enterprise Virtualization Manager Reporter: Oved Ourfali <oourfali>
Component: vdsmAssignee: Leon Goldberg <lgoldber>
Status: CLOSED ERRATA QA Contact: Michael Burman <mburman>
Severity: high Docs Contact:
Priority: high    
Version: 3.6.10CC: bazulay, bugs, lgoldber, lsurette, mburman, srevivo, ycui, ykaul, ylavi
Target Milestone: ovirt-3.6.12Keywords: Regression, ZStream
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1458549 Environment:
Last Closed: 2017-07-27 17:38:42 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Network RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1458549    
Bug Blocks:    

Description Oved Ourfali 2017-07-06 12:44:59 UTC
+++ This bug was initially created as a clone of Bug #1458549 +++

Description of problem:
[RFE] - vdsm should be aware of new bond options in new kernel and should take action upon the change to make the new options as vdsm defaults. 

Unless running the next command after the kernel update we will end up with the next scenario:
vdsm-tool dump-bonding-options
systemctl restart vdsmd supervdsmd.service

Can't update bond with IOError: [Errno 13] Permission denied error on rhel 7.4 with latest kernel.

It's not possible to update the bond with another bond mode on rhel 7.4.

2017-06-04 11:37:42,359+0300 ERROR (jsonrpc/0) [jsonrpc.JsonRpcServer] Internal server error (__init__:623)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/yajsonrpc/__init__.py", line 618, in _handle_request
    res = method(**params)
  File "/usr/lib/python2.7/site-packages/vdsm/rpc/Bridge.py", line 202, in _dynamicMethod
    result = fn(*methodArgs)
  File "/usr/share/vdsm/API.py", line 1433, in setupNetworks
    supervdsm.getProxy().setupNetworks(networks, bondings, options)
  File "/usr/lib/python2.7/site-packages/vdsm/supervdsm.py", line 53, in __call__
    return callMethod()
  File "/usr/lib/python2.7/site-packages/vdsm/supervdsm.py", line 51, in <lambda>
    **kwargs)
  File "<string>", line 2, in setupNetworks
  File "/usr/lib64/python2.7/multiprocessing/managers.py", line 773, in _callmethod
    raise convert_to_error(kind, result)
IOError: [Errno 13] Permission denied

I think that the main problem starts because when creating the bond in the setup networks UI, for example mode 4 or 1, it reported as an custom bond mode, which isn't correct(behave different on previous version). vdsm thinks some bond options are not it's defualt and it's why the bond is a custom bond. 
And after the bond creation, when choosing another bond mode from the list we failing with error on vdsm side.
But, if trying to update the bond with custom bond mode, just switch from 1 to 4, it works. 


Version-Release number of selected component (if applicable):
vdsm-4.20.0-963.git4e2eee6.el7.centos.x86_64
3.10.0-675.el7.x86_64
rhel 7.4

How reproducible:
100%

Steps to Reproduce:
1. Create default bond mode in the setup networks UI on rhel 7.4 
2. Edit the bond and choose from the list, mode 1
3. Update the custom mode field with mode=1

Actual results:
1. Problem starts, bond reported as custom bond mode(regression), vdsm see difference in the default bond options, which changed after kernel update.
2. Failed with vdsm error
3. Works

Expected results:
1. Bond shouldn't be reported as custom bond mode if wasn't selected as custom bond mode. vdsm should recognize new bond options in the kernel and make them as default ones.
2. Should work as expected. 

Additional info:
- Attaching screenshots
- This behaviour happens for all bond modes and it's a regression. 
vdsm see difference between his default bond options and the new kernel bond options and bond created as custom bond mode.

--- Additional comment from Dan Kenigsberg on 2017-06-04 05:22:36 EDT ---

Vdsm needs to support 7.4 kernel. This is an obvious bug. We need to update our defaults.

But I don't see where is the RFE here.

--- Additional comment from Red Hat Bugzilla Rules Engine on 2017-06-04 05:22:42 EDT ---

This bug report has Keywords: Regression or TestBlocker.
Since no regressions or test blockers are allowed between releases, it is also being identified as a blocker for this release. Please resolve ASAP.

Comment 3 Michael Burman 2017-07-13 07:50:21 UTC
Verified on - vdsm-4.17.42-1.el7ev.noarch

Comment 4 Michael Burman 2017-07-13 07:50:46 UTC
Verified on - vdsm-4.17.42-2.el7ev.noarch

Comment 6 errata-xmlrpc 2017-07-27 17:38:42 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:1824