[NETVIRT-1235] Prefix-To-Interface datastore is not cleaned up incase of Dual stack testcases Created: 30/Apr/18 Updated: 03/Oct/18 Resolved: 03/Oct/18 |
|
| Status: | Resolved |
| Project: | netvirt |
| Component/s: | General |
| Affects Version/s: | Oxygen |
| Fix Version/s: | Fluorine |
| Type: | Bug | Priority: | Medium |
| Reporter: | Akash Sahu | Assignee: | Akash Sahu |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Openstack Pike with ODl stable oxygen |
||
| Issue Links: |
|
||||||||
| Description |
|
4 Dual-Stack test cases have a bug where, when Dual stack VM is deleted, one of the primary-adj entry remains stale in prefix-to-interface. Analysis:
In oxygen dual-stack coming into picture, I see challenge in managing prefix-to-interface. The reason being , prefix-to-interface is managed via VpnInterface Op listener like before(Boron).
But in Boron , prefix-to-interface always had only one primary adj stored , it was manageable through VpnInterfaceOp listener. When adj count becomes 1 , we deleted the entire VpnInterface Op entry for the port. It used to trigger remove() of VpnInterfaceOp listener. In that , we removed prefix-to-interface and updated the vpn-to-dpn-list.
But challenge in Oxygen is , we have 2 primary adj stored in VpnInterfaceOp DS. When VM is deleted , 2 FIB entries are removed. In cleanupOpDataForFib() , when we remove first primary adj from VpnInterfaceOp DS , it triggers update in VpnInterfaceOp listener. We ignore update of VpnInterfaceOp. When 2^nd^ / final primary adj is removed , we delete the VpnInterfaceOp entry. This leads to removal of prefix-to-interface for 2^nd^ primary adj. First primary adj , always remains stale.
|