Details
-
Improvement
-
Status: Resolved
-
Resolution: Done
-
0.4.0
-
None
-
None
-
Operating System: All
Platform: All
Description
We are writing a code which call ForwardingRulesManager API by multiple threads at same time.
But, when our code call uninstallFlowEntry() by multiple threads at same time in cluster mode, ConcurrentModificationException occurred in updateNodeFlowsDB(). It seems that it occurred due to accessing same ArrayList<FlowEntryInstall> object at same time. (I attached stack trace.)
And I saw ForwardingRulesManager.java, but it seems that a execlusive controll for common resources(nodeDB, groupDB and so on) is not implemented in ForwardingRulesManager.updateNodeFlowsDB() and other methods of ForwardingRulesManager. There may be same probelms in other methods of ForwardingRulesManager.java.
please let me know, if you have any questions.