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