[action] [PR:3247] Reset skip error counter on a fabric link if it was down. (#3247) #3281
Build #20240906.11 had test failures
Details
- Failed: 29 (3.22%)
- Passed: 819 (91.00%)
- Other: 52 (5.78%)
- Total: 900
- 40254 of 60723 lines covered (66.29%)
Annotations
Check failure on line 12773 in Build log
azure-pipelines / Azure.sonic-swss
Build log #L12773
Bash exited with code '123'.
Check failure on line 13162 in Build log
azure-pipelines / Azure.sonic-swss
Build log #L13162
Bash exited with code '123'.
Check failure on line 1 in test_pfcwd_shared_egress_acl_table
azure-pipelines / Azure.sonic-swss
test_pfcwd_shared_egress_acl_table
AssertionError: Operation timed out after 600 seconds with result None
Raw output
self = <test_pfcwd_shared_egress_acl_table.TestPfcwdFunc object at 0x7f5a243e0ee0>
setup_teardown_test = None
def test_pfcwd_shared_egress_acl_table(self, setup_teardown_test):
try:
# enable PFC on queues
test_queues = [3, 4]
self.set_ports_pfc(pfc_queues=test_queues)
# start PFCWD on ports and PFC storm
self.start_pfcwd_on_ports()
storm_queue = test_queues
self.set_storm_state(storm_queue)
# verify egress ACLs in asic db
expected_acls = []
for port in self.test_ports:
for queue in storm_queue:
expected_acls.append((self.port_oids[port], queue))
> self.verify_egress_acls(expected_acls)
test_pfcwd_shared_egress_acl_table.py:155:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
test_pfcwd_shared_egress_acl_table.py:137: in verify_egress_acls
wait_for_result(do_verify_egress_acls, polling_config=max_poll)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
polling_function = <function TestPfcwdFunc.verify_egress_acls.<locals>.do_verify_egress_acls at 0x7f5a2576af70>
polling_config = PollingConfig(polling_interval=5, timeout=600, strict=True)
failure_message = None
def wait_for_result(
polling_function: Callable[[], Tuple[bool, Any]],
polling_config: PollingConfig = PollingConfig(),
failure_message: str = None,
) -> Tuple[bool, Any]:
"""Run `polling_function` periodically using the specified `polling_config`.
Args:
polling_function: The function being polled. The function cannot take any arguments and
must return a status which indicates if the function was succesful or not, as well as
some return value.
polling_config: The parameters to use to poll the polling function.
failure_message: The message to print if the call times out. This will only take effect
if the PollingConfig is set to strict.
Returns:
If the polling function succeeds, then this method will return True and the output of the
polling function.
If it does not succeed within the provided timeout, it will return False and whatever the
output of the polling function was on the final attempt.
"""
for _ in range(polling_config.iterations()):
status, result = polling_function()
if status:
return (True, result)
time.sleep(polling_config.polling_interval)
if polling_config.strict:
message = failure_message or f"Operation timed out after {polling_config.timeout} seconds with result {result}"
> assert False, message
E AssertionError: Operation timed out after 600 seconds with result None
dvslib/dvs_common.py:60: AssertionError
Check failure on line 1 in test_Neighbor
azure-pipelines / Azure.sonic-swss
test_Neighbor
AssertionError: Entry still exists: entry={'SAI_NEIGHBOR_ENTRY_ATTR_DST_MAC_ADDRESS': '00:00:00:00:11:11'}, key="{"ip":"192.168.1.100","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}", table="ASIC_STATE:SAI_OBJECT_TYPE_NEIGHBOR_ENTRY"
Raw output
self = <test_mux.TestMuxTunnel object at 0x7fecbbb62070>
dvs = <conftest.DockerVirtualSwitch object at 0x7fecbbb88490>
dvs_route = <dvslib.dvs_route.DVSRoute object at 0x7fecbbaf2520>
setup_vlan = None, setup_mux_cable = None, testlog = None
def test_Neighbor(self, dvs, dvs_route, setup_vlan, setup_mux_cable, testlog):
""" test Neighbor entries and mux state change """
confdb = dvs.get_config_db()
appdb = swsscommon.DBConnector(swsscommon.APPL_DB, dvs.redis_sock, 0)
asicdb = dvs.get_asic_db()
> self.create_and_test_neighbor(confdb, appdb, asicdb, dvs, dvs_route)
test_mux.py:1499:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
test_mux.py:401: in create_and_test_neighbor
self.bulk_neighbor_test(confdb, appdb, asicdb, dvs, dvs_route)
test_mux.py:378: in bulk_neighbor_test
asicdb.wait_for_deleted_entry(self.ASIC_NEIGH_TABLE, neigh_info.ipv4_key)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <dvslib.dvs_database.DVSDatabase object at 0x7fecbbb31280>
table_name = 'ASIC_STATE:SAI_OBJECT_TYPE_NEIGHBOR_ENTRY'
key = '{"ip":"192.168.1.100","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}'
polling_config = PollingConfig(polling_interval=0.01, timeout=20.0, strict=True)
failure_message = None
def wait_for_deleted_entry(
self,
table_name: str,
key: str,
polling_config: PollingConfig = PollingConfig(),
failure_message: str = None,
) -> Dict[str, str]:
"""Wait for no entry to exist at `key` in the specified table.
Args:
table_name: The name of the table being checked.
key: The key to be checked.
polling_config: The parameters to use to poll the db.
failure_message: The message to print if the call times out. This will only take effect
if the PollingConfig is set to strict.
Returns:
The entry stored at `key`. If no entry is found, then an empty Dict is returned.
"""
def access_function():
fv_pairs = self.get_entry(table_name, key)
return (not bool(fv_pairs), fv_pairs)
status, result = wait_for_result(
access_function, self._disable_strict_polling(polling_config)
)
if not status:
message = failure_message or (
f'Entry still exists: entry={result}, key="{key}", table="{table_name}"'
)
> assert not polling_config.strict, message
E AssertionError: Entry still exists: entry={'SAI_NEIGHBOR_ENTRY_ATTR_DST_MAC_ADDRESS': '00:00:00:00:11:11'}, key="{"ip":"192.168.1.100","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}", table="ASIC_STATE:SAI_OBJECT_TYPE_NEIGHBOR_ENTRY"
dvslib/dvs_database.py:373: AssertionError
Check failure on line 1 in test_Fdb
azure-pipelines / Azure.sonic-swss
test_Fdb
AssertionError: Expected keys not found: expected=['{"ip":"fc02:1000::10","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}'], received=('{"ip":"fc02:1001::175","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.208","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.234","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.153","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.143","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::151","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::241","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.105","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.212","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::165","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::144","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::184","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::218","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.130","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::251","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.222","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.180","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::111","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.231","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.141","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.224","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.251","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::119","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::215","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.140","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::147","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.135","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::197","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::234","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.226","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::216","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.233","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::121","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::117","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.126","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.210","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.213","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::235","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::142","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.176","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.229","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::160","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.113","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{
Raw output
self = <test_mux.TestMuxTunnel object at 0x7fecbba39880>
dvs = <conftest.DockerVirtualSwitch object at 0x7fecbbb88490>
dvs_route = <dvslib.dvs_route.DVSRoute object at 0x7fecbbaf2520>, testlog = None
def test_Fdb(self, dvs, dvs_route, testlog):
""" test Fdb entries and mux state change """
appdb = swsscommon.DBConnector(swsscommon.APPL_DB, dvs.redis_sock, 0)
asicdb = dvs.get_asic_db()
> self.create_and_test_fdb(appdb, asicdb, dvs, dvs_route)
test_mux.py:1507:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
test_mux.py:488: in create_and_test_fdb
self.check_neigh_in_asic_db(asicdb, ip_1)
test_mux.py:215: in check_neigh_in_asic_db
nbr_keys = asicdb.wait_for_matching_keys(self.ASIC_NEIGH_TABLE, [expected_key])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <dvslib.dvs_database.DVSDatabase object at 0x7fecbbb31280>
table_name = 'ASIC_STATE:SAI_OBJECT_TYPE_NEIGHBOR_ENTRY'
expected_keys = ['{"ip":"fc02:1000::10","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}']
polling_config = PollingConfig(polling_interval=0.01, timeout=20.0, strict=True)
failure_message = None
def wait_for_matching_keys(
self,
table_name: str,
expected_keys: List[str],
polling_config: PollingConfig = PollingConfig(),
failure_message: str = None,
) -> List[str]:
"""Wait for the specified keys to exist in the table.
Args:
table_name: The name of the table from which to fetch the keys.
expected_keys: The keys we expect to see in the table.
polling_config: The parameters to use to poll the db.
failure_message: The message to print if the call times out. This will only take effect
if the PollingConfig is set to strict.
Returns:
The keys stored in the table. If no keys are found, then an empty List is returned.
"""
def access_function():
keys = self.get_keys(table_name)
return (all(key in keys for key in expected_keys), keys)
status, result = wait_for_result(
access_function, self._disable_strict_polling(polling_config)
)
if not status:
message = failure_message or (
f"Expected keys not found: expected={expected_keys}, received={result}, "
f'table="{table_name}"'
)
> assert not polling_config.strict, message
E AssertionError: Expected keys not found: expected=['{"ip":"fc02:1000::10","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}'], received=('{"ip":"fc02:1001::175","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.208","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.234","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.153","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.143","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::151","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::241","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.105","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.212","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::165","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::144","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::184","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::218","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"192.168.1.130","rif":"oid:0x600000000066a","switch_id":"oid:0x21000000000000"}', '{"ip":"fc02:1001::
Check failure on line 1 in test_Route
azure-pipelines / Azure.sonic-swss
test_Route
AssertionError: Entry not found: key="2.3.4.0/24", table="ROUTE_TABLE"
Raw output
self = <test_mux.TestMuxTunnel object at 0x7fecbbac2340>
dvs = <conftest.DockerVirtualSwitch object at 0x7fecbbb88490>
dvs_route = <dvslib.dvs_route.DVSRoute object at 0x7fecbbaf2520>, testlog = None
def test_Route(self, dvs, dvs_route, testlog):
""" test Route entries and mux state change """
appdb = swsscommon.DBConnector(swsscommon.APPL_DB, dvs.redis_sock, 0)
asicdb = dvs.get_asic_db()
> self.create_and_test_route(appdb, asicdb, dvs, dvs_route)
test_mux.py:1515:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
test_mux.py:538: in create_and_test_route
pdb.wait_for_entry("ROUTE_TABLE", rtprefix)
dvslib/dvs_database.py:164: in wait_for_entry
_, result = wait_for_result(access_function, polling_config, message)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
polling_function = <function DVSDatabase.wait_for_entry.<locals>.access_function at 0x7fecbbab4f70>
polling_config = PollingConfig(polling_interval=0.01, timeout=20.0, strict=True)
failure_message = 'Entry not found: key="2.3.4.0/24", table="ROUTE_TABLE"'
def wait_for_result(
polling_function: Callable[[], Tuple[bool, Any]],
polling_config: PollingConfig = PollingConfig(),
failure_message: str = None,
) -> Tuple[bool, Any]:
"""Run `polling_function` periodically using the specified `polling_config`.
Args:
polling_function: The function being polled. The function cannot take any arguments and
must return a status which indicates if the function was succesful or not, as well as
some return value.
polling_config: The parameters to use to poll the polling function.
failure_message: The message to print if the call times out. This will only take effect
if the PollingConfig is set to strict.
Returns:
If the polling function succeeds, then this method will return True and the output of the
polling function.
If it does not succeed within the provided timeout, it will return False and whatever the
output of the polling function was on the final attempt.
"""
for _ in range(polling_config.iterations()):
status, result = polling_function()
if status:
return (True, result)
time.sleep(polling_config.polling_interval)
if polling_config.strict:
message = failure_message or f"Operation timed out after {polling_config.timeout} seconds with result {result}"
> assert False, message
E AssertionError: Entry not found: key="2.3.4.0/24", table="ROUTE_TABLE"
dvslib/dvs_common.py:60: AssertionError