Uploaded image for project: 'OpenFlowPlugin'
  1. OpenFlowPlugin
  2. OPNFLWPLUG-690

He plugin: Statistics collector thread may be blocked forever.

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Resolution: Done
    • None
    • None
    • General
    • None
    • Operating System: All
      Platform: All

    • 5916

    Description

      Version:
      master (49cc69e154249c8cd0942905fa321e6b4e0fb46d)

      Steps to reproduce:
      1. Run controller and openflowplugin-he.
      2. Start mininet, and then stop it.
      3. Repeat step 2 again and again.

      Step 2 may record the following log.

      2016-05-19 19:57:42,171 | WARN | Pool-8-worker-11 | StatRpcMsgManagerImpl | 179 - org.opendaylight.openflowplugin.applications.statistics-manager - 0.3.0.SNAPSHOT | Response Registration for Statistics RPC call fail!
      org.opendaylight.controller.md.sal.dom.api.DOMRpcImplementationNotAvailableException: No local or remote implementation available for rpc AbsoluteSchemaPath

      {path=[(urn:opendaylight:group:statistics?revision=2013-11-11)get-all-group-statistics]}

      at org.opendaylight.controller.remote.rpc.RemoteRpcImplementation$1.onComplete(RemoteRpcImplementation.java:66)[161:org.opendaylight.controller.sal-remoterpc-connector:1.4.0.SNAPSHOT]
      at org.opendaylight.controller.remote.rpc.RemoteRpcImplementation$1.onComplete(RemoteRpcImplementation.java:56)[161:org.opendaylight.controller.sal-remoterpc-connector:1.4.0.SNAPSHOT]
      at akka.dispatch.OnComplete.internal(Future.scala:259)[146:com.typesafe.akka.actor:2.4.4]
      at akka.dispatch.OnComplete.internal(Future.scala:256)[146:com.typesafe.akka.actor:2.4.4]
      at akka.dispatch.japi$CallbackBridge.apply(Future.scala:186)[146:com.typesafe.akka.actor:2.4.4]
      at akka.dispatch.japi$CallbackBridge.apply(Future.scala:183)[146:com.typesafe.akka.actor:2.4.4]
      at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)[142:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8]
      at scala.concurrent.impl.ExecutionContextImpl$AdaptedForkJoinTask.exec(ExecutionContextImpl.scala:121)[142:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8]
      at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[142:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8]
      at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)[142:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8]
      at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[142:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8]
      at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[142:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8]

      If that warning is logged, statistics collector thread is being blocked and no one wakes it up.

      "odl-stat-collector-1-thread-0" #936 prio=5 os_prio=0 tid=0x00007f68ac054000 nid=0x5914 waiting on condition [0x00007f67dbb4f000]
      java.lang.Thread.State: WAITING (parking)
      at sun.misc.Unsafe.park(Native Method)

      • parking to wait for <0x000000008bf40fd8> (a com.google.common.util.concurrent.AbstractFuture$Sync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304)
        at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:285)
        at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)
        at org.opendaylight.openflowplugin.applications.statistics.manager.impl.StatPermCollectorImpl.collectStatCrossNetwork(StatPermCollectorImpl.java:327)
        at org.opendaylight.openflowplugin.applications.statistics.manager.impl.StatPermCollectorImpl.run(StatPermCollectorImpl.java:248)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            Avishnoi Anil Vishnoi
            yasuda Shigeru Yasuda
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: