[MDSAL-334] org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException: Optimistic lock failed Created: 05/Apr/18  Updated: 13/Nov/18  Resolved: 13/Nov/18

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

Type: Bug Priority: Medium
Reporter: Paul Greenberg Assignee: Unassigned
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Release: Oxygen

Encountered the following error during startup:

2018-04-05 09:41:48,839 | WARN  | rd-dispatcher-36 | ShardDataTree                    | 224 - org.opendaylight.controller.sal-distributed-datastore - 1.7.0 | member-1-shard-topology-operational: Store Tx member-1-datastore-operational-fe-1-txn-6-0: Conflicting modification for path /(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology.
2018-04-05 09:41:48,843 | ERROR | lt-dispatcher-23 | LocalThreePhaseCommitCohort      | 224 - org.opendaylight.controller.sal-distributed-datastore - 1.7.0 | Failed to prepare transaction member-1-datastore-operational-fe-1-txn-6-0 on backend
org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException: Optimistic lock failed.
    at org.opendaylight.controller.cluster.datastore.ShardDataTree.lambda$processNextPendingTransaction$0(ShardDataTree.java:740) ~[224:org.opendaylight.controller.sal-distributed-datastore:1.7.0]
    at org.opendaylight.controller.cluster.datastore.ShardDataTree.processNextPending(ShardDataTree.java:778) [224:org.opendaylight.controller.sal-distributed-datastore:1.7.0]
    at org.opendaylight.controller.cluster.datastore.ShardDataTree.processNextPendingTransaction(ShardDataTree.java:725) [224:org.opendaylight.controller.sal-distributed-datastore:1.7.0]
    at org.opendaylight.controller.cluster.datastore.ShardDataTree.startCanCommit(ShardDataTree.java:808) [224:org.opendaylight.controller.sal-distributed-datastore:1.7.0]
    at org.opendaylight.controller.cluster.datastore.SimpleShardDataTreeCohort.canCommit(SimpleShardDataTreeCohort.java:84) [224:org.opendaylight.controller.sal-distributed-datastore:1.7.0]
    at org.opendaylight.controller.cluster.datastore.CohortEntry.canCommit(CohortEntry.java:97) [224:org.opendaylight.controller.sal-distributed-datastore:1.7.0]
    at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleCanCommit(ShardCommitCoordinator.java:236) [224:org.opendaylight.controller.sal-distributed-datastore:1.7.0]
    at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleReadyLocalTransaction(ShardCommitCoordinator.java:200) [224:org.opendaylight.controller.sal-distributed-datastore:1.7.0]
    at org.opendaylight.controller.cluster.datastore.Shard.handleReadyLocalTransaction(Shard.java:731) [224:org.opendaylight.controller.sal-distributed-datastore:1.7.0]
    at org.opendaylight.controller.cluster.datastore.Shard.handleNonRaftCommand(Shard.java:333) [224:org.opendaylight.controller.sal-distributed-datastore:1.7.0]
    at org.opendaylight.controller.cluster.raft.RaftActor.handleCommand(RaftActor.java:270) [209:org.opendaylight.controller.sal-akka-raft:1.7.0]
    at org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.onReceiveCommand(AbstractUntypedPersistentActor.java:44) [217:org.opendaylight.controller.sal-clustering-commons:1.7.0]
    at akka.persistence.UntypedPersistentActor.onReceive(PersistentActor.scala:274) [86:com.typesafe.akka.persistence:2.5.4]
    at org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(MeteringBehavior.java:104) [217:org.opendaylight.controller.sal-clustering-commons:1.7.0]
    at akka.actor.ActorCell$$anonfun$become$1.applyOrElse(ActorCell.scala:545) [83:com.typesafe.akka.actor:2.5.4]
    at akka.actor.Actor.aroundReceive(Actor.scala:514) [83:com.typesafe.akka.actor:2.5.4]
    at akka.actor.Actor.aroundReceive$(Actor.scala:512) [83:com.typesafe.akka.actor:2.5.4]
    at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(PersistentActor.scala:272) [86:com.typesafe.akka.persistence:2.5.4]
    at akka.persistence.Eventsourced$$anon$1.stateReceive(Eventsourced.scala:663) [86:com.typesafe.akka.persistence:2.5.4]
    at akka.persistence.Eventsourced.aroundReceive(Eventsourced.scala:183) [86:com.typesafe.akka.persistence:2.5.4]
    at akka.persistence.Eventsourced.aroundReceive$(Eventsourced.scala:182) [86:com.typesafe.akka.persistence:2.5.4]
    at akka.persistence.UntypedPersistentActor.aroundReceive(PersistentActor.scala:272) [86:com.typesafe.akka.persistence:2.5.4]
    at akka.actor.ActorCell.receiveMessage(ActorCell.scala:527) [83:com.typesafe.akka.actor:2.5.4]
    at akka.actor.ActorCell.invoke(ActorCell.scala:496) [83:com.typesafe.akka.actor:2.5.4]
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257) [83:com.typesafe.akka.actor:2.5.4]
    at akka.dispatch.Mailbox.run(Mailbox.scala:224) [83:com.typesafe.akka.actor:2.5.4]
    at akka.dispatch.Mailbox.exec(Mailbox.scala:234) [83:com.typesafe.akka.actor:2.5.4]
    at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [83:com.typesafe.akka.actor:2.5.4]
    at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [83:com.typesafe.akka.actor:2.5.4]
    at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [83:com.typesafe.akka.actor:2.5.4]
    at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [83:com.typesafe.akka.actor:2.5.4]
Caused by: org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException: Node was created by other transaction.
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkWriteApplicable(SchemaAwareApplyOperation.java:182) ~[336:org.opendaylight.yangtools.yang-data-impl:2.0.1]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:135) ~[336:org.opendaylight.yangtools.yang-data-impl:2.0.1]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.StructuralContainerModificationStrategy.checkApplicable(StructuralContainerModificationStrategy.java:101) ~[336:org.opendaylight.yangtools.yang-data-impl:2.0.1]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:307) ~[336:org.opendaylight.yangtools.yang-data-impl:2.0.1]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:290) ~[336:org.opendaylight.yangtools.yang-data-impl:2.0.1]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:132) ~[336:org.opendaylight.yangtools.yang-data-impl:2.0.1]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.RootModificationApplyOperation.checkApplicable(RootModificationApplyOperation.java:72) ~[336:org.opendaylight.yangtools.yang-data-impl:2.0.1]
    at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractDataTreeTip.validate(AbstractDataTreeTip.java:35) ~[336:org.opendaylight.yangtools.yang-data-impl:2.0.1]
    at org.opendaylight.controller.cluster.datastore.ShardDataTree.lambda$processNextPendingTransaction$0(ShardDataTree.java:732) ~[224:org.opendaylight.controller.sal-distributed-datastore:1.7.0]
    ... 30 more


 Comments   
Comment by Robert Varga [ 05/Apr/18 ]

This is not a MD-SAL issue but rather a problem with some plugin. What are the steps to reproduce?

Comment by Paul Greenberg [ 05/Apr/18 ]

rovarga, download and untar Oxygen release.

Perform plugin install:

feature:install --no-auto-refresh --verbose \
  odl-yanglib \
  odl-restconf-all odl-restconf-nb-rfc8040-all \
  features-dlux features-dluxapps \
  features-openflowplugin odl-openflowplugin-nxm-extensions \
  features-l2switch odl-l2switch-all southbound-features \
  features-of-config odl-of-config-all \
  features-netconf odl-netconf-monitoring \
  odl-netconf-topology odl-netconf-connector-all \
  odl-bgpcep-bgp

Next, log out, stop and start ODL. Log back in.

log:display
Comment by Robert Varga [ 22/May/18 ]

What are the steps to reproduce? Especially, what features are installed?

Comment by Robert Varga [ 13/Nov/18 ]

No steps to reproduce, closing this.

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