Comment 12 for bug 1630011

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/29096
Committed: http://github.org/Juniper/contrail-controller/commit/8acab1fc4111777e2f0b899586c569f5adf483a3
Submitter: Zuul (<email address hidden>)
Branch: R3.0.3.x

commit 8acab1fc4111777e2f0b899586c569f5adf483a3
Author: Manish Singh <email address hidden>
Date: Thu Nov 3 12:43:35 2016 +0530

Agent crash @ FlowMgmtEntry::Delete

Problem:
Note that Flow management module and controller update module run in parallel.
In BGP service flows, to identify flow mgmt tree, CN info is needed.
When a bgp service flow is getting added keys are extracted and then flow is
added. Both these routines use GetCNIndex to identify which bgp service flow
mgmt tree to use. This can cause issue as extraction of keys may have taken some
index but by the time flow node gets added in tree CN which has been picked up
is down. In turn GetCNIndex will return invalid index and flow node does not get
added. Because of CN delete, flow delete request would have been pushed. On
serving delete request key is found but flow node is absent. This results in
crash.

Solution:
During addition of flow node use CN index from key instead of calling
GetCNIndex.

Change-Id: Ifd9adac9cdb4a03e621cf62eff009e3e55d882a5
Closes-bug: #1630011
(cherry picked from commit ea23d2128217d6939b1b03f70197dc1023818b87)