[regression] We lost 11 % of packages after OVS restart: test_ovs_restart_with_iperf_traffic
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Mirantis OpenStack | Status tracked in 10.0.x | |||||
10.0.x |
Invalid
|
High
|
Olga Klochkova |
Bug Description
Detailed bug description:
Automated test for OVS restart failed because we lost too many traffic in iperf test during the restart of OVS agents.
Steps to reproduce:
1. Run iperf server on server2
2. Run iperf client on server 1
3. Check that packet losses < 1%
4. Disable ovs-agents on all controllers,
restart service neutron-
on all computes, and enable them back.
5. Check that all ovs-agents are in alive state
6. Check that iperf traffic wasn't interrupted during ovs restart,
and not more than 10% datagrams are lost
Expected results:
We shouldn't lost more than 10% of traffic
Actual result:
We lost more than 10%.
Reproducibility:
100 %
Workaround:
We don't know the workaround.
Impact:
Users will lost connectivity during the OVS restart and it takes more time to recover network services in case of any failures / maintenance.
Additional information:
AssertionError: 11.0% datagrams lost. Should be < 10% assert 11.0 < 10
Stacktrace
self = <mos_tests.
@pytest.
@pytest.
def test_ovs_
"""Checks that iperf traffic is not interrupted during ovs restart
Steps:
1. Run iperf server on server2
2. Run iperf client on server 1
3. Check that packet losses < 1%
4. Disable ovs-agents on all controllers,
5. Check that all ovs-agents are in alive state
6. Check that iperf traffic wasn't interrupted during ovs restart,
"""
# Launch iperf server on server2
res = self.launch_
err_msg = 'Failed to start the iperf server on vm result: {}'.format(
res)
assert not res['exit_code'], err_msg
# Launch iperf client on server1
res = self.launch_
err_msg = 'Failed to start the iperf client on vm result: {}'.format(
res)
assert not res['exit_code'], err_msg
# Check iperf traffic before restart
lost = self.get_
err_msg = "Packet losses more than 0%. Actual value is {0}%".format(
lost)
assert lost == 0, err_msg
# Launch client in background and restart agents
res = self.launch_
err_msg = 'Failed to start the iperf client on vm result: {}'.format(
res)
assert not res['exit_code'], err_msg
cmd = 'cat ~/iperf_client.log'
def get_lost():
result = self.run_
return self.get_
lost = wait(get_lost, timeout_seconds=5 * 60, sleep_seconds=5,
err_msg = "{0}% datagrams lost. Should be < 10%".format(lost)
> assert lost < 10, err_msg
E AssertionError: 11.0% datagrams lost. Should be < 10%
E assert 11.0 < 10
mos_tests/
Changed in mos: | |
assignee: | nobody → MOS Neutron (mos-neutron) |
milestone: | none → 9.0 |
importance: | Undecided → High |
status: | New → Confirmed |
tags: | added: area-neutron |
summary: |
- We lost 11 % of packages after OVS restart: + [regression] We lost 11 % of packages after OVS restart: test_ovs_restart_with_iperf_traffic |
Changed in mos: | |
assignee: | Kristina Kuznetsova (kkuznetsova) → Olga Klochkova (oklochkova) |
Kristina, could you please fix the test case?
Thank you!