Hi all,
I met a problem in beryllium-sr2 that FlowCapableInventoryProvider thread died 
for the queue, exactly it was a LinkedBlockingQueue, had been full. The max 
size was defined as QUEUE_DEPTH which was 500, however, that class might enter 
a dead loop which firstly took a task and then put another task in the same 
thread. I caught the stack of karaf and pasted in the below. Could you give me 
some help to identify this problem? By the way, could you tell me why 
FlowCapableInventoryProvider cannot be found in the github while it is really 
existed in the release of beryllium-sr2?
Karaf stack:

"FlowCapableInventoryProvider" #893 daemon prio=5 os_prio=0 
tid=0x00007efcb1cb9000 nid=0x6c03 waiting on condition [0x00007efc19888000]

java.lang.Thread.State: WAITING (parking) 

at sun.misc.Unsafe.park(Native Method)

parking to wait for <0x00007efebbe2ed78> (a 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) 

at 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)

at 
java.util.concurrent.LinkedBlockingDeque.putLast(LinkedBlockingDeque.java:396)

at java.util.concurrent.LinkedBlockingDeque.put(LinkedBlockingDeque.java:649) 

at 
org.opendaylight.openflowplugin.applications.inventory.manager.FlowCapableInventoryProvider.enqueue(FlowCapableInventoryProvider.java:73)

at 
org.opendaylight.openflowplugin.applications.inventory.manager.NodeChangeCommiter.enqueueWriteNodeDataTx(NodeChangeCommiter.java:174)

at 
org.opendaylight.openflowplugin.applications.inventory.manager.NodeChangeCommiter.access$100(NodeChangeCommiter.java:37)

at 
org.opendaylight.openflowplugin.applications.inventory.manager.NodeChangeCommiter$4$1.onSuccess(NodeChangeCommiter.java:156)

at 
org.opendaylight.openflowplugin.applications.inventory.manager.NodeChangeCommiter$4$1.onSuccess(NodeChangeCommiter.java:153)

at com.google.common.util.concurrent.Futures$6.run(Futures.java:1319) 

at 
com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:457)

at 
com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)
 

at com.google.common.util.concurrent.ExecutionList.add(ExecutionList.java:101) 

at 
com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:170)
 

at 
com.google.common.util.concurrent.ForwardingListenableFuture.addListener(ForwardingListenableFuture.java:47)

at com.google.common.util.concurrent.Futures.addCallback(Futures.java:1322) 

at com.google.common.util.concurrent.Futures.addCallback(Futures.java:1258) 

at 
org.opendaylight.openflowplugin.applications.inventory.manager.NodeChangeCommiter$4.applyOperation(NodeChangeCommiter.java:153)

at 
org.opendaylight.openflowplugin.applications.inventory.manager.FlowCapableInventoryProvider.createCustomizedTransaction(FlowCapableInventoryProvider.java:184)

at 
org.opendaylight.openflowplugin.applications.inventory.manager.FlowCapableInventoryProvider.submitOperations(FlowCapableInventoryProvider.java:125)

at 
org.opendaylight.openflowplugin.applications.inventory.manager.FlowCapableInventoryProvider.run(FlowCapableInventoryProvider.java:96)

at java.lang.Thread.run(Thread.java:745)


Thanks very much.
John
_______________________________________________
controller-dev mailing list
controller-dev@lists.opendaylight.org
https://lists.opendaylight.org/mailman/listinfo/controller-dev

Reply via email to