[CONTROLLER-34] ForwardingRulesManager.updateNodeFlowsDB() is not thread-safety. Created: 12/Sep/13  Updated: 05/May/15  Resolved: 05/May/15

Status: Resolved
Project: controller
Component/s: adsal
Affects Version/s: 0.4.0
Fix Version/s: None

Type: Improvement
Reporter: Takayuki Kawagishi Assignee: Alessandro Boch
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File frm-concurrent.txt    

 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.



 Comments   
Comment by Takayuki Kawagishi [ 12/Sep/13 ]

Attachment frm-concurrent.txt has been added with description: stack trace

Comment by Takayuki Kawagishi [ 18/Oct/13 ]

There is no reply to this issue.
Could anyone please check this ?

Comment by Alessandro Boch [ 31/Oct/13 ]

My apologies for getting to this so late.
I am starting working on a fix now.

(In reply to Takayuki Kawagishi from comment #1)
> There is no reply to this issue.
> Could anyone please check this ?

Comment by Carol Sanders [ 05/May/15 ]

This bug is part of the project to Move all ADSAL associated component bugs to ADSAL.

Generated at Wed Feb 07 19:52:01 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.