New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integration test failure: test_ovs_member_interfaces_not_excluded #4350
Comments
|
@slyon Does anything here look out of the ordinary from a netplan perspective? I think this is a bug outside of cloud-init, but I'm not sure where to file it. |
This smells like systemd dependency issue to me, we can see some
Can we please get the output of The |
So I tried building a Netplan integration test around it: seems to pass. But then again... Netplan's tests are calling Can we try to trace the exact sequence of services being started by systemd in this scenario? diff --git a/tests/integration/ovs.py b/tests/integration/ovs.py
index 958800cd..c6bdad8e 100644
--- a/tests/integration/ovs.py
+++ b/tests/integration/ovs.py
@@ -604,6 +607,35 @@ class _CommonTests():
self.assertIn(b'netplan=true', before['external-ids-%s' % tbl])
self.assertIn(b'netplan=true', after['external-ids-%s' % tbl])
+ def test_cloudinit_member_interface_not_excluded(self):
+ '''
+ https://github.com/canonical/cloud-init/issues/4350
+ '''
+ self.setup_eth('ra-only', True)
+ self.addCleanup(subprocess.call, ['ovs-vsctl', '-t', '5', '--if-exists', 'del-br', 'ovs-br'])
+ with open(self.config, 'w') as f:
+ f.write('''network:
+ bridges:
+ ovs-br:
+ dhcp6: true
+ interfaces:
+ - %(ec)s
+ macaddress: 52:54:00:d9:08:1c
+ mtu: 1500
+ openvswitch: {}
+ ethernets:
+ %(ec)s:
+ mtu: 1500
+ version: 2''' % {'ec': self.dev_e_client})
+ self.generate_and_settle([self.dev_e_client, self.state_dhcp6('ovs-br')])
+ # Basic verification that the interfaces/ports are set up in OVS
+ out = subprocess.check_output(['ovs-vsctl', '-t', '5', 'show'], text=True)
+ self.assertIn(' Bridge ovs-br', out)
+ self.assertIn(''' Port ovs-br
+ Interface ovs-br
+ type: internal''', out)
+ self.assert_iface_up(self.dev_e_client)
+
@unittest.skip("For debugging only")
def test_zzz_ovs_debugging(self): # Runs as the last test, to collect all logs
"""Display OVS logs of the previous tests"""
|
@slyon , thanks for the response. Sorry for the delay; I was out on PTO last week. Here's the output requested:
and
Do you know of a good way to generate this? I know of some systemd-analyze commands (e.g., plot), but I'm not sure the best thing to use. Are you looking for a runtime dependency graph? |
tests/integration_tests/bugs/test_lp1898997.py::TestInterfaceListingWithOpenvSwitch::test_ovs_member_interfaces_not_excluded is currently failing on Ubuntu Lunar under LXD VMs.
in unexpectedly returning an empty string causing the assert on the line after to fail.
The test config indicates that ovs-br interface should get a dhcp4 address, yet it is not getting one:
A journal snippet shows networkd failing to find the
ovs-br
device:Aug 15 15:36:12 cloudinit-0815-152252wjsu05rn systemd-networkd[309]: /run/systemd/network/10-netplan-enp5s0.network: ovs-br NetDev could not be found, ignoring assignment
If I manually run
netplan apply
everything works as expected.I couldn't find anything out of place in the cloud-init logs:
and the problem that originally caused #3792 is not happening here.
tests/integration_tests/bugs/test_lp1912844.py::test_get_interfaces_by_mac_doesnt_traceback
is failing similarly. The call in the test works fine, but the interface isn't coming up so pycloudlib thinks the instance is down.Since the issue appears to be unrelated to cloud-init, I suggest we skip/xfail the tests until the root cause is fixed.
The text was updated successfully, but these errors were encountered: