Details
-
Bug
-
Status: Resolved
-
Resolution: Done
-
None
-
None
-
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 finishedjava.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))