-
Notifications
You must be signed in to change notification settings - Fork 390
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Root cause of the crash: The BgpPeer is attempted to be deleted with active secondary path referring to it. The secondary paths are not deleted as deleted bgp.l3vpn.0 routes are not notified. Note. These routes are present in the changes list of DBTablePartition but the DBPartition Change list is empty. So no DBTable task was scheduled to notify them. This issue can be caused by static route task. It runs with instance ID of rtinstance->index() There are two problems: 1. Routing instance Index is not allocated when static route mgr is constructed. So all tasks run with instance ID -1. So they can all run in parallel. Since these tasks add/delete/notify entries in DBTabel, They can edit same dbpartition change list. 2. Even if we fix it with correct index, they will have different instance ID and still can run in parallel. Proposed Fix: Run static route task with instance of 0. Also, note that task policy of control-node ensures that DBTable task and staticRoute task doesn't run in parallel. This will ensure required mutual exclusion in editing the change list of DBPartition Added a test to add mutliple l3vpn routes and two static route config on different routing instance. Change-Id: I47166c2a7c98052c76cf2044d13a646fbe588baa Closes-Bug: 1547178
- Loading branch information
Showing
2 changed files
with
262 additions
and
4 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