From 91089e86c4f4547876bc4fb98fe5ba6e69e9fb42 Mon Sep 17 00:00:00 2001 From: Praveen K V Date: Sat, 28 Nov 2015 22:24:42 +0530 Subject: [PATCH] Add task exclusion between KSync and Flow processing Flow setup and KSync task run in parallel, its possible that flow_entry_map_ can be manipulated by both tasks in parallel. In this case following scenario has happend, 1. The flow found in flow_entry_map_ was deleted and DEL operation was sent to VRouter 2. In "Allocate" routine, a flow-entry was found from flow_entry_map_. 3. VRouter DEL processing complete and the flow-entry is freed 4. The flow-entry found in (2) is freed and contents modified Agent must have exclusion between KSync and Flow-setup till parallel access between the two task is handled correctly. Change-Id: Ib13a3c13222826accd398f8f45c8c105328c9070 Fixes-Bug: #1520797 --- src/vnsw/agent/cmn/agent.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/vnsw/agent/cmn/agent.cc b/src/vnsw/agent/cmn/agent.cc index 49daa2bddad..42751b6a420 100644 --- a/src/vnsw/agent/cmn/agent.cc +++ b/src/vnsw/agent/cmn/agent.cc @@ -173,6 +173,8 @@ void Agent::SetAgentTaskPolicy() { "Agent::StatsCollector", "db::DBTable", "Agent::PktFlowResponder", + kTaskFlowEvent, + kTaskFlowUpdate, AGENT_INIT_TASKNAME }; SetTaskPolicyOne("Agent::KSync", ksync_exclude_list,