Bug 1947287

Summary: [OVS] Moving network between bonds with different MTU fails
Product: Red Hat Enterprise Linux 8 Reporter: Ales Musil <amusil>
Component: nmstateAssignee: Fernando F. Mancera <ferferna>
Status: CLOSED ERRATA QA Contact: Mingyu Shi <mshi>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 8.4CC: ferferna, fge, jiji, jishi, mburman, mperina, network-qe, till
Target Milestone: betaKeywords: Regression, Triaged, ZStream
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: nmstate-1.1.0-0.1.el8 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of:
: 1961912 (view as bug list) Environment:
Last Closed: 2021-11-09 17:43:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1961912    
Attachments:
Description Flags
Reproducer
none
Simplified reproducer none

Description Ales Musil 2021-04-08 07:23:31 UTC
Created attachment 1770162 [details]
Reproducer

Description of problem:
Moving ovs network from bondA to bondB and at the same time changing MTU of all components fails after a while. 

Version-Release number of selected component (if applicable):
nmstate-1.0.2-6.el8.noarch
nispor-1.0.1-4.el8.x86_64
NetworkManager-1.32.0-0.1.el8.x86_64


How reproducible:
100%

Steps to Reproduce:
1. Run reproducer script


Actual results:
2021-04-08 07:19:22,677 root         DEBUG    Async action: Waiting activation of dummy_bond0 dummy finished
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/libnmstate/nmstate.py", line 53, in plugin_context
    yield plugins
  File "/usr/lib/python3.6/site-packages/libnmstate/netapplier.py", line 78, in apply
    _apply_ifaces_state(plugins, net_state, verify_change, save_to_disk)
  File "/usr/lib/python3.6/site-packages/libnmstate/netapplier.py", line 116, in _apply_ifaces_state
    plugin.apply_changes(net_state, save_to_disk)
  File "/usr/lib/python3.6/site-packages/libnmstate/nm/plugin.py", line 204, in apply_changes
    NmProfiles(self.context).apply_config(net_state, save_to_disk)
  File "/usr/lib/python3.6/site-packages/libnmstate/nm/profiles.py", line 89, in apply_config
    self._ctx.wait_all_finish()
  File "/usr/lib/python3.6/site-packages/libnmstate/nm/context.py", line 213, in wait_all_finish
    raise tmp_error
libnmstate.error.NmstateLibnmError: Activate profile uuid:3a359cd0-d68a-4c7a-ae50-f97b47390142 iface:net type: ovs-interface failed: reason=<enum NM_ACTIVE_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED of type NM.ActiveConnectionStateReason> <enum NM_DEVICE_STATE_REASON_DEPENDENCY_FAILED of type NM.DeviceStateReason>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/libnmstate/nm/checkpoint.py", line 93, in _refresh_checkpoint_timeout
    self._dbuspath, self._timeout, cancellable, cb, cb_data
TypeError: Argument 1 does not allow None as a value
^CTraceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/libnmstate/nmstate.py", line 53, in plugin_context
    yield plugins
  File "/usr/lib/python3.6/site-packages/libnmstate/netapplier.py", line 78, in apply
    _apply_ifaces_state(plugins, net_state, verify_change, save_to_disk)
  File "/usr/lib/python3.6/site-packages/libnmstate/netapplier.py", line 116, in _apply_ifaces_state
    plugin.apply_changes(net_state, save_to_disk)
  File "/usr/lib/python3.6/site-packages/libnmstate/nm/plugin.py", line 204, in apply_changes
    NmProfiles(self.context).apply_config(net_state, save_to_disk)
  File "/usr/lib/python3.6/site-packages/libnmstate/nm/profiles.py", line 89, in apply_config
    self._ctx.wait_all_finish()
  File "/usr/lib/python3.6/site-packages/libnmstate/nm/context.py", line 213, in wait_all_finish
    raise tmp_error
libnmstate.error.NmstateLibnmError: Activate profile uuid:3a359cd0-d68a-4c7a-ae50-f97b47390142 iface:net type: ovs-interface failed: reason=<enum NM_ACTIVE_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED of type NM.ActiveConnectionStateReason> <enum NM_DEVICE_STATE_REASON_DEPENDENCY_FAILED of type NM.DeviceStateReason>


Expected results:
It should pass

Additional info:
The same flow was working without any issue on 0.3

Comment 1 Fernando F. Mancera 2021-05-05 12:47:02 UTC
Upstream PR: https://github.com/nmstate/nmstate/pull/1582

In addition, I've created a simplified reproducer. Please check it out, thanks!

Comment 2 Fernando F. Mancera 2021-05-05 12:48:12 UTC
Created attachment 1779798 [details]
Simplified reproducer

Comment 3 Fernando F. Mancera 2021-05-11 08:07:24 UTC
Patch merged!

Comment 4 Mingyu Shi 2021-05-12 02:47:40 UTC
Pretested with versions:
nmstate-1.1.0-0.20210511.1358git3463c8e.el8.noarch
nispor-1.0.1-4.el8.x86_64
NetworkManager-1.32.0-0.2.el8.x86_64
Linux mshi-rhel-850-20210328d2 4.18.0-301.1.el8.x86_64 #1 SMP Mon Mar 29 15:21:06 EDT 2021 x86_64 x86_64 x86_64 GNU/Linux

Run the reproducer successfully.

Comment 12 Mingyu Shi 2021-06-06 15:12:32 UTC
Verified with versions:
nmstate-1.1.0-0.1.el8.noarch
nispor-1.1.0-1.el8.x86_64
NetworkManager-1.32.0-0.4.el8.x86_64
openvswitch2.13-2.13.0-105.el8fdp.x86_64

Run the reproducer, PASS.

Comment 15 errata-xmlrpc 2021-11-09 17:43:40 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 (nmstate bug fix and enhancement update), 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-2021:4157