[OPNFLWPLUG-551] controller becomes deadlocked after arp packet floods Created: 22/Sep/15  Updated: 27/Sep/21  Resolved: 01/Jun/17

Status: Resolved
Project: OpenFlowPlugin
Component/s: General
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Tony Huang Assignee: Unassigned
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Linux
Platform: PC


Attachments: Text File file_4335.txt    
External issue ID: 4335

 Description   

Here I have encountered a problem when testing the ODL performance. The following is the way how i did. I wrote a test program sending arp packets to ODL at some rate. when the rate reaches a relative high level, ODL stops replying arp packet, and it seems to be deadlocked. I followed ODL and figure the reason out. Firstly, the QueueHarvester find out that the packets from switch belong to packet-in and forward them to MD-SAL. And then MD-SAL uses distruptor to push notification. Finally packet handler in L2switch decode the packet from MD-SAL and publich the packet to MD-SAL again. Here is the key section. Disruptor uses ring buffer to store packets. If the buffer is full, provider has to wait consumer to pick packet out. When the packets flood, packet handler cannot process in time, so ring buffer in distruptor has no space some time later. After this time QueueHarvester drops all packet because ring buffer is full, while packet handler is also waiting to publich decoded packet, they are deadlocked.



 Comments   
Comment by Tony Huang [ 22/Sep/15 ]

Attachment file_4335.txt has been added with description: Thread [OFmsgHarvester-0], Thread [OFmsgProcessor-1] and Thread [pool-28-thread-1] call stacks

Comment by Michal Rehak [ 12/Nov/15 ]

Hi Tony,
could you retest with Lithium design?

https://wiki.opendaylight.org/view/OpenDaylight_OpenFlow_Plugin::LiProposal_dev_setup

Comment by Jozef Bacigal [ 01/Jun/17 ]

He design is deprecated in carbon release and will be abandoned in nitrogen release.

In carbon and boron release is problem with threads solved by

https://git.opendaylight.org/gerrit/#/c/58100/1

and cherrypicks.

Closing as fixed

Generated at Wed Feb 07 20:32:46 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.