paused ovn-chassis unit attempts to run ovs-vsctl command
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
charm-ovn-chassis |
New
|
Undecided
|
Unassigned |
Bug Description
I'm not certain this is a bug but I need to at least document it somewhere.
The neutron-openvswitch smoke test starts ovn-chassis in a paused state. After neutron-openvswitch gets paused later on in the test, ovn-chassis then attempts to run an ovs-vsctl command (while paused) that fails because it can't connect to the database unix:/var/
This only occurs with this change:
https:/
And specifically due to this code removal:
@@ -423,9 +424,6 @@ def resource_map():
)
if not use_dpdk():
- drop_config.
- elif ovs_has_
- drop_config.
(Note: drop_config.
The neutron-openvswitch smoke test fails with:
...
2020-12-17 22:52:13 [INFO] Connected (version 2.0, client OpenSSH_7.6p1)
2020-12-17 22:52:13 [INFO] Authentication (publickey) successful!
2020-12-17 22:52:13 [INFO] Running ping -M do -s 1414 -c 1 192.168.0.1 on instance
2020-12-17 22:52:14 [INFO] ok
2020-12-17 22:52:14 [INFO] -------
2020-12-17 22:52:14 [INFO] Ran 1 test in 394.044s
2020-12-17 22:52:14 [INFO] OK
2020-12-17 22:52:14 [INFO] ## Running Test zaza.openstack.
2020-12-17 22:52:15 [WARNING] unknown delta type: id
2020-12-17 22:52:15 [WARNING] unknown delta type: id
2020-12-17 22:52:15 [INFO] test_ovs_
2020-12-17 22:52:15 [INFO] Test migration of existing Neutron ML2+OVS deployment to OVN.
2020-12-17 22:52:15 [INFO] ...
2020-12-17 22:52:15 [INFO] Performing migration steps.
2020-12-17 22:52:15 [INFO] Pausing neutron-openvswitch units
2020-12-17 22:52:15 [WARNING] unknown delta type: id
2020-12-17 22:52:15 [WARNING] unknown delta type: id
2020-12-17 22:54:18 [INFO] Pausing neutron-gateway units
2020-12-17 22:54:19 [WARNING] unknown delta type: id
2020-12-17 22:54:19 [INFO] No neutron-gateway in deployment, skip pausing it.
2020-12-17 22:54:19 [INFO] Adding relation neutron-
2020-12-17 22:54:19 [WARNING] unknown delta type: id
2020-12-17 22:54:20 [WARNING] unknown delta type: id
2020-12-17 22:54:20 [INFO] Waiting for at least one unit with agent status "executing"
2020-12-17 22:54:20 [INFO] ERROR
2020-12-17 22:54:20 [INFO] =======
2020-12-17 22:54:20 [INFO] ERROR: test_ovs_
2020-12-17 22:54:20 [INFO] Test migration of existing Neutron ML2+OVS deployment to OVN.
2020-12-17 22:54:20 [INFO] -------
2020-12-17 22:54:20 [INFO] Traceback (most recent call last):
2020-12-17 22:54:20 [INFO] File "/home/
2020-12-17 22:54:20 [INFO] self._add_
2020-12-17 22:54:20 [INFO] File "/home/
2020-12-17 22:54:20 [INFO] File "/home/
2020-12-17 22:54:20 [INFO] File "/home/
2020-12-17 22:54:20 [INFO] return task.result()
2020-12-17 22:54:20 [INFO] return await f(*args, **kwargs)
2020-12-17 22:54:20 [INFO] await model.block_until(
2020-12-17 22:54:20 [INFO] await utils.block_
2020-12-17 22:54:20 [INFO] await asyncio.
2020-12-17 22:54:20 [INFO] while not all(c() for c in conditions):
2020-12-17 22:54:20 [INFO] while not all(c() for c in conditions):
2020-12-17 22:54:20 [INFO] return _disconnected() or all(c() for c in conditions)
2020-12-17 22:54:20 [INFO] lambda: one_agent_
2020-12-17 22:54:20 [INFO] check_model_
2020-12-17 22:54:20 [INFO] File "/home/
2020-12-17 22:54:20 [INFO] zaza.model.
2020-12-17 22:54:20 [INFO] FAILED
2020-12-17 22:54:20 [INFO] (errors=1)
2020-12-17 22:54:20 [ERROR] {'migrate-ovn': 'zaza-017192566
2020-12-17 22:54:20 [ERROR] Model migrate-ovn (zaza-017192566596)
2020-12-17 22:54:20 [WARNING] unknown delta type: id
2020-12-17 22:54:20 [ERROR] Applications in error state: ovn-chassis
Traceback (most recent call last):
File "/home/
sys.
File "/home/
func_
File "/home/
run_
File "/home/
So it fails due to the hard error of ovn-chassis units.
Specifically the test fails at: https:/
Where:
ubuntu@
Model Controller Cloud/Region Version SLA Timestamp
zaza-017192566596 coreycb-serverstack serverstack/
App Version Status Scale Charm Store Rev OS Notes
neutron-openvswitch 16.2.0 maintenance 0 neutron-openvswitch local 0 ubuntu
nova-compute 21.1.0 active 2 nova-compute jujucharms 518 ubuntu
ovn-chassis 20.03.1 error 2 ovn-chassis jujucharms 43 ubuntu
Unit Workload Agent Machine Public address Ports Message
nova-compute/0* active idle 8 10.5.0.37 Unit is ready
neutron-
ovn-chassis/0* error idle 10.5.0.37 hook failed: "config-changed"
nova-compute/1 active idle 9 10.5.0.29 Unit is ready
neutron-
ovn-chassis/1 error idle 10.5.0.29 hook failed: "config-changed"
Machine State DNS Inst id Series AZ Message
8 started 10.5.0.37 4a37f83f-
9 started 10.5.0.29 a36e09e0-
ubuntu@
...
2020-12-17 22:54:14 ERROR juju-log Hook error:
Traceback (most recent call last):
File "/var/lib/
bus.
File "/var/lib/
_invoke(
File "/var/lib/
handler.
File "/var/lib/
self.
File "/var/lib/
for cn, req in instance.
File "lib/charms/
return {self.get_
File "lib/charms/
for row in ch_ovsdb.
File "/var/lib/
output = utils._run(*cmd)
File "/var/lib/
return subprocess.
File "/usr/lib/
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/lib/
raise CalledProcessEr
subprocess.
2020-12-17 22:54:14 ERROR juju.worker.
where:
ubuntu@
ovs-vsctl: unix:/var/
Should a paused ovn-chassis be running hooks? I'm not sure what the expectation is. It seems like it shouldn't be running this command while paused.
See neutron-
ovn-chassis:
charm: cs:~openstack-
options:
# start new units paused to allow unit by unit OVS to OVN migration
Note that correspondingly this happens right around pausing of neutron-
ubuntu@
...
2020-12-17 22:44:58 WARNING juju-log Support for use of upstream ``apt_pkg`` module in conjunctionwith charm-helpers is deprecated since 2019-06-25
2020-12-17 22:54:25 WARNING juju-log Unit is pause or upgrading. Skipping config_changed
summary: |
- paused ovn-chassis unit attempts to + paused ovn-chassis unit attempts to run ovs-vsctl command |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
neutron-openvswitch has this in it's config-changed:
@hooks. hook('neutron- plugin- relation- changed' ) hook('config- changed' ) on_change( restart_ map()) paused_ set():
@hooks.
@restart_
def config_changed():
# if we are paused, delay doing any config changed hooks.
# It is forced on the resume.
if is_unit_
log("Unit is pause or upgrading. Skipping config_changed", "WARN")
return