Description
Description:
When we remove vlan member from vlan we can see error in log:
ERR swss#orchagent: :- update: Failed to get port by bridge port ID ...
It seems there is a race which can cause the scenario, when we receive notifications about FDB FLUSH on port which was already removed.
removeBridgePort (portsorch.cpp) called as a result of "remove vlan member" command, will call flushFDBEntries and at the end of this function ( removeBridgePort ) will set port.m_bridge_port_id = SAI_NULL_OBJECT_ID;
As a result of flushFDBEntries sai will notify FdbOrch with attr oid which will be passed to the function FdbOrch::update( fdborch.cpp) as bridge_port_id.
However, the function getPortByBridgePortId will return false - as m_bridge_port_id was set to SAI_NULL_OBJECT_ID at the end of the function removeBridgePort and the error "Failed to get port by bridge port ID" will appear in log.
Steps to reproduce the issue:
- sudo config vlan add 3
- sudo config vlan member add 3 Ethernet8
- sudo config vlan member del 3 Ethernet8
Describe the results you received:
Error in log: "Failed to get port by bridge port ID"
Describe the results you expected:
No error in log
Output of show version
:
(paste your output here)