[NBBGP] After running sync method, it removes all of previously exposed ips

Bug #2078778 reported by Michel Nederlof
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ovn-bgp-agent
New
Undecided
Michel Nederlof

Bug Description

Sometimes, when the sync interval is running the `sync` method, it clears out all routes of a specific exposed vrf.

For now we've increased the sync interval to a extremely high number (e.g. 3 months or so), but this problem is really hard to debug.

Restarting ovn-bgp-agent normally fixes the issue (or waiting for the next sync interval).

Revision history for this message
Michel Nederlof (mnederlof) wrote :

Our current working theory right now, is that during processing of the events (in the match_fn methods), it calls some functionality in the agent, that causes the agent to believe some logical switch is not exported (yet).

We found at least one case where this could be happening namely in this call stack:
- event -> agent.is_ls_provider -> _get_provider_ls_info

there, if logical switch is not in self.ovn_provider_ls it will populate it with information it receives from other helper methods.

If the sync is just starting (and has not gone through wiring the devices) this dictionary is empty, and that method would fill it with None, as that is the result from this call stack:
- _get_provider_ls_info -> _get_ls_localnet_info -> _get_bridge_for_localnet_port

which relies on information from self.ovn_bridge_mappings (which is also reset during a sync)

I will provide a patch, that should resolve this.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to ovn-bgp-agent (master)

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/ovn-bgp-agent/+/927791

Changed in ovn-bgp-agent:
assignee: nobody → Michel Nederlof (mnederlof)
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.