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
VPN route not always propagated to peer in LabN BGPD CI test #1052
Comments
feels like a timer / list race condition. Attached valgrind reported losses are the same (I think) each time the failure occurs... |
Able to reproduce this about 7% of the time on master (c3f779d). (18 out of 244) After 163 runs unable to reproduce on master prior to pull request #939 merge (commit 57a553f) Retested at point where pull request #939 merge (commit 3f54388) and see fails so this is definitely the source of the problem (9 out of 116 runs). @jbonor any thoughts? |
I think the issue is STAILQ_INSERT_TAIL being called for a wg from within the same queue handler callback (bgp_process_wq) - see pull for how avoided, but root cause is still to be fixed. I suspect issue is items added to the same WG in the last call to bgp_process_main_one won't be processed due to use of STAILQ_FOREACH_SAFE |
Lou has a proposed fix and is testing it. Once it reaches The safe walking is the issue. We need to make sure that RN doesn't show up on multiple work queues. and we need to look at FOREACH_STAIL_SAFE is handled properly in workqueue.c |
Donald to look at workqueue stuff |
The workqueue is only used in 2 places besides bgp:
I believe we are good from the workqueue perspective. |
This issue has been fixed. |
First seen on pull request #1023. as stated there, the speculation is that this was actually introduced by PR #939 .
Topology is CE4<--(bgp unicast safi)-->PE/GW2<--(vpn safi)-->NVA0<--(vpn safi) -->PE/GW3<--(unicast safi) -->CE5
o Scenario:
Add 10 static routes CE4
Add VNC route NVA0
Confirm NVA0 sees GW2 imported CE4 routes (over vpn safi) and CE5 sees 10 unicast routes
Withdraw static routes at CE4
Confirm NVA0 see withdrawals
Readd static route at CE4
Confirm NVA0 see routes
Remove VNC route at NVA0
See all imported routes removed at NVA0 and GW2
Remove static routes
(reverse order of imported routes) Add VNC route NVA0
Add 10 static routes CE4
Confirm GW 2 sees 10 unicast routes and 11 VPN routes (10 GW2 imported + NVA0 learned)
Confirm NVA0 sees 11 VPN routes (10 GW2 imported + NVA0 learned)
Intermittent failure is on step 14
o Data showing issue:
The text was updated successfully, but these errors were encountered: