Comment 1 for bug 1547181

Revision history for this message
Prakash Bailkeri (prakashmb) wrote :

Fix is committed to master and R3.0
Reviewed: https://review.opencontrail.org/17750
Committed: http://github.org/Juniper/contrail-controller/commit/29a78345b9e40ddbe480a528fbbb16c5f1f29ea2
Submitter: Zuul
Branch: master

commit 29a78345b9e40ddbe480a528fbbb16c5f1f29ea2
Author: Prakash Bailkeri <email address hidden>
Date: Wed Feb 24 22:47:27 2016 +0530

Concurrency issue in unregister of static route

There are two issues in delete of static route config from routing instance
1. bgp:StaticRoute task run with instance id of routing instance index. So it
is possible to have multiple bgp:StaticRoute task concurrently. Due to this
RemoveStaticRouteMgr called on BgpServer object corrupts the srt_manager_list_

2. UnregisterMatchCondition is called from bgp:StaticRoute task. Due to multiple
bgp:StaticRoute task running in parallel, BgpConditionListener::UnregisterMatchCondition
corrupts the condition listener datastructure.(TableMap map_).

Fix is to handle unregister of static route from bgp:Config task using task trigger

Added UT to verify static route config with multiple routing instance

Change-Id: I44446dc558b3d7a8440c7e9802d97a8ea61b8caf
Closes-bug: #1547184,1547181

Reviewed: https://review.opencontrail.org/17758
Committed: http://github.org/Juniper/contrail-controller/commit/3a748abd2fd7eb25470ccd9915a30422c2a18368
Submitter: Zuul
Branch: R3.0

commit 3a748abd2fd7eb25470ccd9915a30422c2a18368
Author: Prakash Bailkeri <email address hidden>
Date: Wed Feb 24 22:47:27 2016 +0530

Concurrency issue in unregister of static route

There are two issues in delete of static route config from routing instance
1. bgp:StaticRoute task run with instance id of routing instance index. So it
is possible to have multiple bgp:StaticRoute task concurrently. Due to this
RemoveStaticRouteMgr called on BgpServer object corrupts the srt_manager_list_

2. UnregisterMatchCondition is called from bgp:StaticRoute task. Due to multiple
bgp:StaticRoute task running in parallel, BgpConditionListener::UnregisterMatchCondition
corrupts the condition listener datastructure.(TableMap map_).

Fix is to handle unregister of static route from bgp:Config task using task trigger

Added UT to verify static route config with multiple routing instance

Change-Id: I44446dc558b3d7a8440c7e9802d97a8ea61b8caf
Closes-bug: #1547184,1547181
(cherry picked from commit 29a78345b9e40ddbe480a528fbbb16c5f1f29ea2)