[NETCONF-89] ERROR: CommitFutures NetconfDeviceTopologyAdapter RpcError [message=Optimistic lock failed., severity=ERROR, errorType=APPLICATION, Created: 22/Oct/15  Updated: 15/Mar/19  Resolved: 13/Oct/17

Status: Resolved
Project: netconf
Component/s: netconf
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Carol Sanders Assignee: Unassigned
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 4518

 Description   

Timeout error when attempting to update a netconf device.
"Timeout 1 minute exceeded. The last error was: Status code is not 2xx"

Steps to reproduce
1. Add Netconf device using REST POST
${resp} Post ${ALIAS} ${urlSuffix} ${body}
Log Response ${resp}

2. Update Netconf device using REST PUT
${resp}= Put ${ALIAS} ${urlSuffix} ${body}
Log Response ${resp}

2015-10-09 07:04:50,671 | ERROR | CommitFutures-4 | NetconfDeviceTopologyAdapter | 239 - org.opendaylight.controller.sal-netconf-connector - 1.2.1.Lithium-SR1 | RemoteDevice

{vyatta}

: TransactionChain(org.opendaylight.controller.md.sal.binding.impl.BindingDOMTransactionChainAdapter@783424b0) DOM-CHAIN-7-0 FAILED!
OptimisticLockFailedException

{message=Optimistic lock failed., errorList=[RpcError [message=Optimistic lock failed., severity=ERROR, errorType=APPLICATION, tag=resource-denied, applicationTag=null, info=null, cause=org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException: Node was deleted by other transaction.]]}

at org.opendaylight.controller.cluster.datastore.SimpleShardDataTreeCohort.canCommit(SimpleShardDataTreeCohort.java:54)[207:org.opendaylight.controller.sal-distributed-datastore:1.2.1.Lithium-SR1]
at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator$CohortEntry.canCommit(ShardCommitCoordinator.java:610)[207:org.opendaylight.controller.sal-distributed-datastore:1.2.1.Lithium-SR1]
at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.doCanCommit(ShardCommitCoordinator.java:323)[207:org.opendaylight.controller.sal-distributed-datastore:1.2.1.Lithium-SR1]
at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleCanCommit(ShardCommitCoordinator.java:284)[207:org.opendaylight.controller.sal-distributed-datastore:1.2.1.Lithium-SR1]
at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleReadyLocalTransaction(ShardCommitCoordinator.java:256)[207:org.opendaylight.controller.sal-distributed-datastore:1.2.1.Lithium-SR1]
at org.opendaylight.controller.cluster.datastore.Shard.handleReadyLocalTransaction(Shard.java:467)[207:org.opendaylight.controller.sal-distributed-datastore:1.2.1.Lithium-SR1]
at org.opendaylight.controller.cluster.datastore.Shard.onReceiveCommand(Shard.java:236)[207:org.opendaylight.controller.sal-distributed-datastore:1.2.1.Lithium-SR1]
at akka.persistence.UntypedPersistentActor.onReceive(Eventsourced.scala:430)[197:com.typesafe.akka.persistence.experimental:2.3.10]
at org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(MeteringBehavior.java:97)[199:org.opendaylight.controller.sal-clustering-commons:1.2.1.Lithium-SR1]
at akka.actor.ActorCell$$anonfun$become$1.applyOrElse(ActorCell.scala:534)[192:com.typesafe.akka.actor:2.3.10]
at akka.persistence.Recovery$State$class.process(Recovery.scala:30)[197:com.typesafe.akka.persistence.experimental:2.3.10]
at akka.persistence.ProcessorImpl$$anon$2.process(Processor.scala:103)[197:com.typesafe.akka.persistence.experimental:2.3.10]
at akka.persistence.ProcessorImpl$$anon$2.aroundReceive(Processor.scala:114)[197:com.typesafe.akka.persistence.experimental:2.3.10]
at akka.persistence.Recovery$class.aroundReceive(Recovery.scala:265)[197:com.typesafe.akka.persistence.experimental:2.3.10]
at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(Eventsourced.scala:428)[197:com.typesafe.akka.persistence.experimental:2.3.10]
at akka.persistence.Eventsourced$$anon$2.doAroundReceive(Eventsourced.scala:82)[197:com.typesafe.akka.persistence.experimental:2.3.10]
at akka.persistence.Eventsourced$$anon$2.aroundReceive(Eventsourced.scala:78)[197:com.typesafe.akka.persistence.experimental:2.3.10]
at akka.persistence.Eventsourced$class.aroundReceive(Eventsourced.scala:369)[197:com.typesafe.akka.persistence.experimental:2.3.10]
at akka.persistence.UntypedPersistentActor.aroundReceive(Eventsourced.scala:428)[197:com.typesafe.akka.persistence.experimental:2.3.10]
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)[192:com.typesafe.akka.actor:2.3.10]
at akka.actor.ActorCell.invoke(ActorCell.scala:487)[192:com.typesafe.akka.actor:2.3.10]
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:254)[192:com.typesafe.akka.actor:2.3.10]
at akka.dispatch.Mailbox.run(Mailbox.scala:221)[192:com.typesafe.akka.actor:2.3.10]
at akka.dispatch.Mailbox.exec(Mailbox.scala:231)[192:com.typesafe.akka.actor:2.3.10]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[189:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)[189:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[189:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[189:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
Caused by: org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException: Node was deleted by other transaction.
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkWriteApplicable(SchemaAwareApplyOperation.java:170)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:127)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:205)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkMergeApplicable(AbstractNodeContainerModificationStrategy.java:213)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:130)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:205)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkMergeApplicable(AbstractNodeContainerModificationStrategy.java:213)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:130)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:205)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkMergeApplicable(AbstractNodeContainerModificationStrategy.java:213)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:130)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:205)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkMergeApplicable(AbstractNodeContainerModificationStrategy.java:213)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:130)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:205)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:189)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:124)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.RootModificationApplyOperation.checkApplicable(RootModificationApplyOperation.java:72)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractDataTreeTip.validate(AbstractDataTreeTip.java:38)[91:org.opendaylight.yangtools.yang-data-impl:0.7.1.Lithium-SR1]
at org.opendaylight.controller.cluster.datastore.SimpleShardDataTreeCohort.canCommit(SimpleShardDataTreeCohort.java:48)[207:org.opendaylight.controller.sal-distributed-datastore:1.2.1.Lithium-SR1]
... 27 more



 Comments   
Comment by Tony Tkacik [ 26/Oct/15 ]

> Steps to reproduce
> 1. Add Netconf device using REST POST
> ${resp} Post ${ALIAS} ${urlSuffix} ${body}
> Log Response ${resp}
>
> 2. Update Netconf device using REST PUT
> ${resp}= Put ${ALIAS} ${urlSuffix} ${body}
> Log Response ${resp}

@Carol, this steps to reproduce are in Robot framework?

Could you provide actual HTTP POST and PUT requests with which you observed error?

Comment by Tomas Cere [ 24/Nov/15 ]

We need actual steps to reproduce with content that is being sent and how, instead of excerpts from robot framework scripts

Comment by Tomas Cere [ 13/Oct/17 ]

no movement in 2 years from the reporter, please reopen when you have actual steps to reproduce

Generated at Wed Feb 07 20:14:09 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.