Currently mirror metadata is stored in index table using flow index
as key. Before the Flow eviction, the addition and deletion of this meta
data to Index table is always from Agent and hence no parallel
manipulation of Index table. After eviction, the metadata deletion from
index table can happen in parallel and hence leading to memory
corruption/leak in index table manipulation.
The right fix is making the index table SMP ready. As a stop gap fix,
the mirror metada data pointer is stored in the flow entry itself
directly.
Reviewed: https:/ /review. opencontrail. org/20712 github. org/Juniper/ contrail- vrouter/ commit/ 063ab3dfea324e5 26894bdf41908ea 0a13b37ab4
Committed: http://
Submitter: Zuul
Branch: R3.0
commit 063ab3dfea324e5 26894bdf41908ea 0a13b37ab4
Author: Divakar <email address hidden>
Date: Fri May 27 15:58:31 2016 +0530
Keeping the mirror metadata entry in Flow entry
Currently mirror metadata is stored in index table using flow index
as key. Before the Flow eviction, the addition and deletion of this meta
data to Index table is always from Agent and hence no parallel
manipulation of Index table. After eviction, the metadata deletion from
index table can happen in parallel and hence leading to memory
corruption/leak in index table manipulation.
The right fix is making the index table SMP ready. As a stop gap fix,
the mirror metada data pointer is stored in the flow entry itself
directly.
Change-Id: I4c98af36646c33 89996575af8eac3 e98b3ffdca2
closes-bug: #1572397