Uploaded image for project: 'netconf'
  1. netconf
  2. NETCONF-127

Netconf device on clustered setup has "Write Once Read Many" configuration

    XMLWordPrintable

Details

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

    • 4968

    Description

      Tested and found on latest Beryllium.

      After configuring a Netconf device on a clustered setup (see https://jenkins.opendaylight.org/sandbox/job/netconf-csit-3node-clustering-only-beryllium/ for a sandbox example) it is possible to write the configuration data exactly once. When an attempt to modify the data is subsequently made, weird things start to happen:

      {"errors":{"error":[{"error-type":"application","error-tag":"operation-failed","error-message":"Transaction commit failed","error-info":"java.util.concurrent.ExecutionException: java.lang.NullPointerException\n\tat com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299)\n\tat com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286)\n\tat com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)\n\tat com.google.common.util.concurrent.ForwardingFuture.get(ForwardingFuture.java:63)\n\tat com.google.common.util.concurrent.AbstractCheckedFuture.checkedGet(AbstractCheckedFuture.java:78)\n\tat org.opendaylight.netconf.sal.restconf.impl.RestconfImpl.updateConfigurationData(RestconfImpl.java:723)\n\tat org.opendaylight.netconf.sal.restconf.impl.StatisticsRestconfServiceWrapper.updateConfigurationData(StatisticsRestconfServiceWrapper.java:133)\n\tat org.opendaylight.netconf.sal.rest.impl.RestconfCompositeWrapper.updateConfigurationData(RestconfCompositeWrapper.java:82)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:606)\n\tat com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)\n\tat com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseO...

      (this appeared on the console)

      — snip —

      2016-01-14 15:14:13,108 | ERROR | lt-dispatcher-15 | OneForOneStrategy | 149 - com.typesafe.akka.slf4j - 2.3.14 | RemoteDevice

      {netconf-test-device}: Transaction org.opendaylight.netconf.sal.connect.netconf.sal.tx.WriteCandidateTx@526966bc already finished
      java.lang.IllegalStateException: RemoteDevice{netconf-test-device}

      : Transaction org.opendaylight.netconf.sal.connect.netconf.sal.tx.WriteCandidateTx@526966bc already finished
      at com.google.common.base.Preconditions.checkState(Preconditions.java:197)[39:com.google.guava:18.0.0]
      at org.opendaylight.netconf.sal.connect.netconf.sal.tx.AbstractWriteTx.checkNotFinished(AbstractWriteTx.java:58)[228:org.opendaylight.netconf.sal-netconf-connector:1.3.0.SNAPSHOT]
      at org.opendaylight.netconf.sal.connect.netconf.sal.tx.AbstractWriteTx.checkEditable(AbstractWriteTx.java:172)[228:org.opendaylight.netconf.sal-netconf-connector:1.3.0.SNAPSHOT]
      at org.opendaylight.netconf.sal.connect.netconf.sal.tx.AbstractWriteTx.put(AbstractWriteTx.java:103)[228:org.opendaylight.netconf.sal-netconf-connector:1.3.0.SNAPSHOT]
      at org.opendaylight.netconf.topology.pipeline.NetconfDeviceMasterDataBroker.put(NetconfDeviceMasterDataBroker.java:149)[230:org.opendaylight.netconf.topology:1.0.0.SNAPSHOT]
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_85]
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_85]
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_85]
      at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_85]
      at akka.actor.TypedActor$MethodCall.apply(TypedActor.scala:147)[148:com.typesafe.akka.actor:2.3.14]
      at akka.actor.TypedActor$TypedActor$$anonfun$receive$1$$anonfun$applyOrElse$2.apply(TypedActor.scala:307)[148:com.typesafe.akka.actor:2.3.14]
      at akka.actor.TypedActor$TypedActor.withContext(TypedActor.scala:299)[148:com.typesafe.akka.actor:2.3.14]
      at akka.actor.TypedActor$TypedActor$$anonfun$receive$1.applyOrElse(TypedActor.scala:306)[148:com.typesafe.akka.actor:2.3.14]
      at akka.actor.Actor$class.aroundReceive(Actor.scala:467)[148:com.typesafe.akka.actor:2.3.14]
      at akka.actor.TypedActor$TypedActor.aroundReceive(TypedActor.scala:246)[148:com.typesafe.akka.actor:2.3.14]
      at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)[148:com.typesafe.akka.actor:2.3.14]
      at akka.actor.ActorCell.invoke(ActorCell.scala:487)[148:com.typesafe.akka.actor:2.3.14]
      at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)[148:com.typesafe.akka.actor:2.3.14]
      at akka.dispatch.Mailbox.run(Mailbox.scala:220)[148:com.typesafe.akka.actor:2.3.14]
      at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397)[148:com.typesafe.akka.actor:2.3.14]
      at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:262)[145:org.scala-lang.scala-library:2.10.1.v20130302-092018-VFINAL-33e32179fd]
      at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975)[145:org.scala-lang.scala-library:2.10.1.v20130302-092018-VFINAL-33e32179fd]
      at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1478)[145:org.scala-lang.scala-library:2.10.1.v20130302-092018-VFINAL-33e32179fd]
      at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)[145:org.scala-lang.scala-library:2.10.1.v20130302-092018-VFINAL-33e32179fd]
      2016-01-14 15:14:13,117 | ERROR | lt-dispatcher-15 | OneForOneStrategy | 149 - com.typesafe.akka.slf4j - 2.3.14 |
      java.lang.NullPointerException
      at org.opendaylight.netconf.topology.pipeline.NetconfDeviceMasterDataBroker.submit(NetconfDeviceMasterDataBroker.java:175)[230:org.opendaylight.netconf.topology:1.0.0.SNAPSHOT]
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_85]
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_85]
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_85]
      at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_85]
      at akka.actor.TypedActor$MethodCall.apply(TypedActor.scala:145)[148:com.typesafe.akka.actor:2.3.14]
      at akka.actor.TypedActor$TypedActor$$anonfun$receive$1$$anonfun$applyOrElse$2.apply(TypedActor.scala:311)[148:com.typesafe.akka.actor:2.3.14]
      at akka.actor.TypedActor$TypedActor.withContext(TypedActor.scala:299)[148:com.typesafe.akka.actor:2.3.14]
      at akka.actor.TypedActor$TypedActor$$anonfun$receive$1.applyOrElse(TypedActor.scala:306)[148:com.typesafe.akka.actor:2.3.14]
      at akka.actor.Actor$class.aroundReceive(Actor.scala:467)[148:com.typesafe.akka.actor:2.3.14]
      at akka.actor.TypedActor$TypedActor.aroundReceive(TypedActor.scala:246)[148:com.typesafe.akka.actor:2.3.14]
      at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)[148:com.typesafe.akka.actor:2.3.14]
      at akka.actor.ActorCell.invoke(ActorCell.scala:487)[148:com.typesafe.akka.actor:2.3.14]
      at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)[148:com.typesafe.akka.actor:2.3.14]
      at akka.dispatch.Mailbox.run(Mailbox.scala:220)[148:com.typesafe.akka.actor:2.3.14]
      at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397)[148:com.typesafe.akka.actor:2.3.14]
      at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:262)[145:org.scala-lang.scala-library:2.10.1.v20130302-092018-VFINAL-33e32179fd]
      at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975)[145:org.scala-lang.scala-library:2.10.1.v20130302-092018-VFINAL-33e32179fd]
      at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1478)[145:org.scala-lang.scala-library:2.10.1.v20130302-092018-VFINAL-33e32179fd]
      at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)[145:org.scala-lang.scala-library:2.10.1.v20130302-092018-VFINAL-33e32179fd]

      (this was found in the logs of the node that was used to configure the device (and which was NOT used to modify the data in the device))

      Attachments

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

        Activity

          People

            tcere Tomas Cere
            jbehran@cisco.com Jozef Behran
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: