Uploaded image for project: 'topoprocessing'
  1. topoprocessing
  2. TOPOPROCES-92

Topoprocessing can't handle preexisting request on bundle restarts and requests without pre-loaded model support

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • None
    • unspecified
    • General
    • None
    • Operating System: All
      Platform: All

    • 7755

      When a bundle tree is restarted (e.g. due to a change from config do operational ds and vice versa) and there are topo processing requests present in the DS, the processing fails with NPEs because of missing model support. This applies to any startup with requests present, but a typical problem occurs when a NTmodel support is loaded, request listener picks up a NT-based request, but fails to process the inventory underlay topologies, whose model-supporting is just booting up.
      We need to provide a mechanism to:
      1. gracefully refuse a topology processing request, when required model support is missing
      2. schedule retriggering of refused requests, when required model support gets loaded

      2017-02-07 17:46:37,220 | WARN | n-dispatcher-550 | TopologyRequestHandler | 217 - org.opendaylight.topoprocessing.impl - 0.3.0.SNAPSHOT | Processing new request for topology change failed.
      java.lang.NullPointerException
      at org.opendaylight.topoprocessing.impl.request.TopologyRequestHandler.initFiltration(TopologyRequestHandler.java:369)[217:org.opendaylight.topoprocessing.impl:0.3.0.SNAPSHOT]
      at org.opendaylight.topoprocessing.impl.request.TopologyRequestHandler.processNewRequest(TopologyRequestHandler.java:195)[217:org.opendaylight.topoprocessing.impl:0.3.0.SNAPSHOT]
      at org.opendaylight.topoprocessing.impl.request.TopologyRequestListener.processCreatedData(TopologyRequestListener.java:136)[217:org.opendaylight.topoprocessing.impl:0.3.0.SNAPSHOT]
      at org.opendaylight.topoprocessing.impl.request.TopologyRequestListener.onDataTreeChanged(TopologyRequestListener.java:100)[217:org.opendaylight.topoprocessing.impl:0.3.0.SNAPSHOT]
      at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataChanged(DataTreeChangeListenerActor.java:54)[211:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.handleReceive(DataTreeChangeListenerActor.java:35)[211:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:28)[205:org.opendaylight.controller.sal-clustering-commons:1.5.0.SNAPSHOT]
      at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:165)[178:com.typesafe.akka.actor:2.4.16]
      at akka.actor.Actor$class.aroundReceive(Actor.scala:496)[178:com.typesafe.akka.actor:2.4.16]
      at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:95)[178:com.typesafe.akka.actor:2.4.16]
      at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)[178:com.typesafe.akka.actor:2.4.16]
      at akka.actor.ActorCell.invoke(ActorCell.scala:495)[178:com.typesafe.akka.actor:2.4.16]
      at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)[178:com.typesafe.akka.actor:2.4.16]
      at akka.dispatch.Mailbox.run(Mailbox.scala:224)[178:com.typesafe.akka.actor:2.4.16]
      at akka.dispatch.Mailbox.exec(Mailbox.scala:234)[178:com.typesafe.akka.actor:2.4.16]
      at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[174:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8]
      at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)[174:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8]
      at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[174:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8]
      at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[174:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8]
      2017-02-07 17:46:37,222 | ERROR | n-dispatcher-550 | DataTreeChangeListenerActor | 205 - org.opendaylight.controller.sal-clustering-commons - 1.5.0.SNAPSHOT | Error notifying listener org.opendaylight.topoprocessing.nt.request.NTTopologyRequestListener@4f319383
      java.lang.IllegalStateException: Processing new request for topology change failed.
      at org.opendaylight.topoprocessing.impl.request.TopologyRequestHandler.processNewRequest(TopologyRequestHandler.java:217)[217:org.opendaylight.topoprocessing.impl:0.3.0.SNAPSHOT]
      at org.opendaylight.topoprocessing.impl.request.TopologyRequestListener.processCreatedData(TopologyRequestListener.java:136)[217:org.opendaylight.topoprocessing.impl:0.3.0.SNAPSHOT]
      at org.opendaylight.topoprocessing.impl.request.TopologyRequestListener.onDataTreeChanged(TopologyRequestListener.java:100)[217:org.opendaylight.topoprocessing.impl:0.3.0.SNAPSHOT]
      at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataChanged(DataTreeChangeListenerActor.java:54)[211:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.handleReceive(DataTreeChangeListenerActor.java:35)[211:org.opendaylight.controller.sal-distributed-datastore:1.5.0.SNAPSHOT]
      at org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:28)[205:org.opendaylight.controller.sal-clustering-commons:1.5.0.SNAPSHOT]
      at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:165)[178:com.typesafe.akka.actor:2.4.16]
      at akka.actor.Actor$class.aroundReceive(Actor.scala:496)[178:com.typesafe.akka.actor:2.4.16]
      at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:95)[178:com.typesafe.akka.actor:2.4.16]
      at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)[178:com.typesafe.akka.actor:2.4.16]
      at akka.actor.ActorCell.invoke(ActorCell.scala:495)[178:com.typesafe.akka.actor:2.4.16]
      at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)[178:com.typesafe.akka.actor:2.4.16]
      at akka.dispatch.Mailbox.run(Mailbox.scala:224)[178:com.typesafe.akka.actor:2.4.16]
      at akka.dispatch.Mailbox.exec(Mailbox.scala:234)[178:com.typesafe.akka.actor:2.4.16]
      at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[174:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8]
      at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)[174:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8]
      at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[174:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8]
      at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[174:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8]
      Caused by: java.lang.NullPointerException
      at org.opendaylight.topoprocessing.impl.request.TopologyRequestHandler.initFiltration(TopologyRequestHandler.java:369)[217:org.opendaylight.topoprocessing.impl:0.3.0.SNAPSHOT]
      at org.opendaylight.topoprocessing.impl.request.TopologyRequestHandler.processNewRequest(TopologyRequestHandler.java:195)[217:org.opendaylight.topoprocessing.impl:0.3.0.SNAPSHOT]
      ... 17 more

            Unassigned Unassigned
            mdindoffer Martin Dindoffer
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated: