Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Root cause: StaticRoute task runs with instance ID of rtinstance->index() which allows multiple static route tasks to run in parallel. There are 3 major issues related to this concurrency 1. StaticRoute task adds/deletes/updates routes to DBtable. So concurrent tasks could potentially operate on same DBTablePartition. Possibly corrupt the chagne_list 2. RemoveStaticRouteMgr called on BgpServer object corrupts the srt_manager_list_ 3. Concurrent call to BgpConditionListener::UnregisterMatchCondition can corrupt the condition listener datastructure.(TableMap map_). Proposed Fix: Run static route task with instance of 0. Also, note that task policy of control-node ensures that 1. DBTable task and staticRoute task doesn't run in parallel. 2. bgp:Config task and StaticRoute tasks are mutually exclusive Change-Id: Ib5ee4060ea90947a8261f33fa194219205702163 Closes-Bug: 1547178
- Loading branch information