Missing dependency for neutron-server: openvswitch-common
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu Cloud Archive |
Fix Released
|
High
|
Unassigned | ||
Ussuri |
Fix Released
|
High
|
Unassigned | ||
Victoria |
Fix Released
|
High
|
Unassigned | ||
Wallaby |
Fix Released
|
High
|
Unassigned | ||
Xena |
Fix Released
|
High
|
Unassigned | ||
Yoga |
Fix Released
|
Undecided
|
Unassigned | ||
neutron (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Focal |
Fix Released
|
High
|
Unassigned | ||
Jammy |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
Backporting patch that adds openvswitch-common dependency to neutron-server to prior releases of Openstack (U,V,W,X).
[Test Plan]
* deploy Openstack with neutron ml2-ovn
* log into neutron-api unit and check that openvswitch-common is installed
* create a vm and add a floating ip
* check Mac Binding table in southbound database and make note of entries
* delete the vm and floating ip
* corresponding entries in db should be gone
[Regression Potential]
This is not expected to have a regression potential.
=======
The Neutron Server code will in some circumstances call out to the `ovsdb-client` binary for OVN database maintenance. [0]
This change appeared recently but has been backported all the way to OpenStack Train [1].
The neutron-server does currently not depend on openvswitch-common and as such the call will fail with log entries like:
2022-02-08 13:38:23.053 386820 ERROR ovsdbapp.event [req-46b888be-
2022-02-08 13:38:23.053 386820 ERROR ovsdbapp.event Traceback (most recent call last):
2022-02-08 13:38:23.053 386820 ERROR ovsdbapp.event File "/usr/lib/
2022-02-08 13:38:23.053 386820 ERROR ovsdbapp.event match.run(event, row, updates)
2022-02-08 13:38:23.053 386820 ERROR ovsdbapp.event File "/usr/lib/
2022-02-08 13:38:23.053 386820 ERROR ovsdbapp.event self.driver.
2022-02-08 13:38:23.053 386820 ERROR ovsdbapp.event File "/usr/lib/
2022-02-08 13:38:23.053 386820 ERROR ovsdbapp.event return processutils.
2022-02-08 13:38:23.053 386820 ERROR ovsdbapp.event File "/usr/lib/
2022-02-08 13:38:23.053 386820 ERROR ovsdbapp.event obj = subprocess.
2022-02-08 13:38:23.053 386820 ERROR ovsdbapp.event File "/usr/lib/
2022-02-08 13:38:23.053 386820 ERROR ovsdbapp.event subprocess_
2022-02-08 13:38:23.053 386820 ERROR ovsdbapp.event File "/usr/lib/
2022-02-08 13:38:23.053 386820 ERROR ovsdbapp.event self._execute_
2022-02-08 13:38:23.053 386820 ERROR ovsdbapp.event File "/usr/lib/
2022-02-08 13:38:23.053 386820 ERROR ovsdbapp.event raise child_exception
2022-02-08 13:38:23.053 386820 ERROR ovsdbapp.event FileNotFoundError: [Errno 2] No such file or directory: 'ovsdb-client'
2022-02-08 13:38:23.053 386820 ERROR ovsdbapp.event
0: https:/
1: https:/
Changed in neutron (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → High |
Changed in cloud-archive: | |
status: | New → Triaged |
importance: | Undecided → High |
Changed in cloud-archive: | |
status: | Triaged → Fix Committed |
Changed in neutron (Ubuntu Jammy): | |
status: | New → Fix Released |
Changed in neutron (Ubuntu Focal): | |
status: | New → Triaged |
importance: | Undecided → High |
description: | updated |
I think I've hit this in a different code-path (see traceback below), but the same solution is required (neutron-common needs openvswitch- common) .
This change introduced the new call to ovsdb-client: https:/ /review. opendev. org/c/openstack /neutron/ +/822299
2022-04-07 15:52:11.730 69218 ERROR neutron. api.v2. resource Traceback (most recent call last): api.v2. resource File "/usr/lib/ python3/ dist-packages/ tenacity/ __init_ _.py", line 426, in __call__ api.v2. resource result = fn(*args, **kwargs) api.v2. resource File "/usr/lib/ python3/ dist-packages/ neutron/ plugins/ ml2/drivers/ ovn/mech_ driver/ ovsdb/ovn_ client. py", line 1644, in delete_ mac_binding_ entries_ by_mac api.v2. resource return processutils. execute( *cmd, api.v2. resource File "/usr/lib/ python3/ dist-packages/ oslo_concurrenc y/processutils. py", line 395, in execute api.v2. resource obj = subprocess. Popen(cmd, api.v2. resource File "/usr/lib/ python3/ dist-packages/ eventlet/ green/subproces s.py", line 58, in __init__ api.v2. resource subprocess_ orig.Popen. __init_ _(self, args, 0, *argss, **kwds) api.v2. resource File "/usr/lib/ python3. 8/subprocess. py", line 858, in __init__ api.v2. resource self._execute_ child(args, executable, preexec_fn, close_fds, api.v2. resource File "/usr/lib/ python3. 8/subprocess. py", line 1704, in _execute_child api.v2. resource raise child_exception _type(errno_ num, err_msg, err_filename) api.v2. resource FileNotFoundError: [Errno 2] No such file or directory: 'ovsdb-client'
2022-04-07 15:52:11.730 69218 ERROR neutron.
2022-04-07 15:52:11.730 69218 ERROR neutron.
2022-04-07 15:52:11.730 69218 ERROR neutron.
2022-04-07 15:52:11.730 69218 ERROR neutron.
2022-04-07 15:52:11.730 69218 ERROR neutron.
2022-04-07 15:52:11.730 69218 ERROR neutron.
2022-04-07 15:52:11.730 69218 ERROR neutron.
2022-04-07 15:52:11.730 69218 ERROR neutron.
2022-04-07 15:52:11.730 69218 ERROR neutron.
2022-04-07 15:52:11.730 69218 ERROR neutron.
2022-04-07 15:52:11.730 69218 ERROR neutron.
2022-04-07 15:52:11.730 69218 ERROR neutron.
2022-04-07 15:52:11.730 69218 ERROR neutron.