-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
test/test-network/systemd-networkd-tests.py fails on CentOS 7.5 #10617
Comments
I think it'd be better if the test failed to start in this case. I mean, only the test knows in what environment it's supposed to work so it can check whether all the requirements are met before it tries to do anything. Regarding systemd/systemd-centos-ci#21 (comment), it's basically the same issue in the sense that the test expects some modules to be installed on a machine. It should skip the tests if the necessary modules are absent. |
@mrc0mmand Could you give us corresponding journal logs? |
In theory the output of the test should be enough to figure out what's going on given that generally almost nobody will have access to a machine where the test is run so I'd say that the test should be clever enough to dump the logs when it fails for us to look at. |
@yuwata https://paste.fedoraproject.org/paste/torYK6GqJ9YuWuG9rAxxOg/ I guess the CI could dump the journal along with the test results for easier debugging. Just an idea, though. |
vrf ,vcan , ipvlan networkd not able to create links which is missing kernel modules.
tos throughput 'throughput, delay, reliability and cost.
umm try with some other value |
@ssahani regarding the modules, it's CentOS 7 where the kernel is far from the latest ( Regarding the throughput, I'm not sure I understand what you meant by saying that some other value should be used. Could you elaborate? |
I agree we should do that . Specially cloud platform we don't have all modules.
I guess 0x08 is interpreted as throughput . I found this from kernel source . So whenever 0x08 is there ip rule interpreting as |
I changed
Judging by the output of
Apparently, |
By the way, |
I was wondering where # Deprecated values dropped upstream
# Kept in RHEL for backwards-compatibility
0x00 default
0x10 lowdelay
0x08 throughput
0x04 reliability
# This value overlap with ECT, do not use it!
0x02 mincost
# These values seems do not want to die, Cisco likes them by a strange reason.
0x20 priority
0x40 immediate
0x60 flash
0x80 flash-override
0xa0 critical
0xc0 internet
0xe0 network The simplest way to fix it would be to just modify the regular expression used in the test :-) It would be even better if |
Just to sum up, |
BTW, we require kernel 3.13... Lines 35 to 36 in 99f68ef
|
@yuwata as we saw yesterday, the bonding options added in |
@evverx exactly. |
Depending on the content of /etc/iproute2/rt_dsfield, ip can print either `0x08` or `throughput` as was shown in systemd#10617 (comment).
Depending on the content of /etc/iproute2/rt_dsfield, ip can print either `0x08` or `throughput` as was shown in systemd#10617 (comment).
I've just opened #10625 addressing the "throughput" issue. I'll leave the "modules" stuff to someone else who knows how the modules are called :-) |
@evverx thanks how about something like this and we skip the test
|
@ssahani I considered something like this. More precisely, I was going to send a kludgy patch using diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py
index 82d10ddc4..adb372d60 100755
--- a/test/test-network/systemd-networkd-tests.py
+++ b/test/test-network/systemd-networkd-tests.py
@@ -22,6 +22,9 @@ dnsmasq_config_file='/var/run/networkd-ci/test-dnsmasq.conf'
dnsmasq_pid_file='/var/run/networkd-ci/test-test-dnsmasq.pid'
dnsmasq_log_file='/var/run/networkd-ci/test-dnsmasq-log-file'
+def is_module_available(module_name):
+ return not subprocess.call(["modprobe", module_name])
+
def setUpModule():
os.makedirs(network_unit_file_path, exist_ok=True)
@@ -218,7 +221,7 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities):
self.start_networkd()
- self.assertTrue(self.link_exits('ipvlan99'))
+ self.assertTrue(self.link_exits('ipvlan99') or not is_module_available('ipvlan'))
def test_veth(self):
self.copy_unit_to_networkd_unit_path('25-veth.netdev')
@@ -253,14 +256,14 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities):
self.start_networkd()
- self.assertTrue(self.link_exits('vrf99'))
+ self.assertTrue(self.link_exits('vrf99') or not is_module_available('vrf'))
def test_vcan(self):
self.copy_unit_to_networkd_unit_path('25-vcan.netdev')
self.start_networkd()
- self.assertTrue(self.link_exits('vcan99'))
+ self.assertTrue(self.link_exits('vcan99') or not is_module_available('vcan'))
def test_geneve(self):
self.copy_unit_to_networkd_unit_path('25-geneve.netdev') I don't like it, I have to say, but it fixes the issue in hand just fine. |
@mrc0mmand I've just updated #10625. It would be great if you could give it a try. |
looks nice ! |
Depending on the content of /etc/iproute2/rt_dsfield, ip can print either `0x08` or `throughput` as was shown in systemd/systemd#10617 (comment). (cherry picked from commit f7bdd56)
…s aren't available Closes systemd/systemd#10617. (cherry picked from commit 7a0a37b)
systemd version the issue has been seen with
Used distribution
Right now the
test/test-network/systemd-networkd-tests.py
has four failing test cases on CentOS:Full log: https://paste.fedoraproject.org/paste/wFNPam5PpMMfIbzKGALCDg/
I'm sorry for the noise in #10612 - that was actually mistake on my side, as the test probably doesn't like being run on a machine with
an active DHCPsame subnet as used in the test.@ssahani could you please a look into it?
The text was updated successfully, but these errors were encountered: