-
Notifications
You must be signed in to change notification settings - Fork 236
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
When multiple OVSDB updates have been received since the last northd run it's possible that the IDL tracks changes for database entities that were added _and also_ removed from the last time the northd processing engine run. In some cases, those may appear as being simultaneously "new" and "deleted". Currently, the only tables for which this can be a problem are NB.Load_Balancer and NB.Load_Balancer_Group. Skip these "transient records" to avoid adding soon to be deleted rows to the tracked_lb_data->crupdated_lbs records. These are used to build 'northd' I-P engine state in northd_handle_lb_data_changes(). We also avoid crashing if "unexpected" deletes are reported by the IDL. This is likely due to a bug in the IDL [0] but it's easy to avoid on the northd side. This commit also adds a test case which _might_ detect the issue when run under valgrind. The test case can't always detect the problem because a prerequisite for a Load Balancer to be "transient" is that the IDL processes the update that removes it from the NB Load_Balancer table and from the Load_Balancer_Group row that was referring to it in the following order: Load_Balancer_Group table update first and then Load_Balancer deletion. The order is controlled by the way 'struct shash' hashes records (table names in this case) and that's arch and/or compiler dependent. [0] https://issues.redhat.com/browse/FDP-193 Fixes: a24eed5 ("northd: Add initial I-P for load balancer and load balancer groups") Reported-at: https://issues.redhat.com/browse/FDP-181 Signed-off-by: Dumitru Ceara <dceara@redhat.com> Acked-by: Numan Siddique <numans@ovn.org>
- Loading branch information
Showing
3 changed files
with
97 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters