Please open a bug. If it's reproducible, it would be helpful to enable
debug for org.opendaylight.controller.cluster.datastore.entityownership on
each node and provide the log files.

On Wed, Mar 1, 2017 at 4:34 AM, Sivasamy Kaliappan <sivasa...@gmail.com>
wrote:

> All,
>
> We have a 3 node cluster and an entity A defined. On startup all the nodes
> in cluster creates the entity and register the same. Following is the
> sequence of events:
>
>    1. During cluster startup an owner for the entity A is elected and all
>    listeners are informed
>    2. A leader for entity ownership shard is elected (different from
>    entity leader)
>    3. After this election I am seeing below data store exception in the
>    newly elected shard leader
>    4. After this exception I am getting an owner changed event where
>    hasOwner=false. i.e currently there no owner for this entity and it remains
>    in this state forever
>    5. org.opendaylight.controller.cluster.datastore.Shard.finishCommit()
>    method has a comment that during edge cases data store will throw
>    IllegalStateException
>
> Is this behavior expected? What should we do when there is no owner for
> the entity in the cluster?
>
> No Owner Event:
>
> 2017-01-27 22:13:25,920 | INFO  | lt-dispatcher-16 |
> EntityOwnerChangeListener           | 283 - com.aaa.odl - 0.1.0.SNAPSHOT |
> ownershipChanged:request,handleOwnershipChanged: EntityOwnershipChanged
> [entity=Entity{type='controller', id=/(urn:opendaylight:params:
> xml:ns:yang:controller:md:sal:core:general-entity?revision=
> 2015-08-20)entity/entity[{(urn:opendaylight:params:xml:
> ns:yang:controller:md:sal:core:general-entity?revision=2015-08-20)name=controller}]},
> wasOwner=false, isOwner=false, hasOwner=false, inJeopardy=false] event
> received for entity Entity{type='controller', id=/(urn:opendaylight:params:
> xml:ns:yang:controller:md:sal:core:general-entity?revision=
> 2015-08-20)entity/entity[{(urn:opendaylight:params:xml:
> ns:yang:controller:md:sal:core:general-entity?revision=
> 2015-08-20)name=controller}]}
>
>
> Exception:
>
> *2017-01-27 22:13:25,787 | WARN  | lt-dispatcher-17 | EntityOwnershipShard
>             | 140 - org.opendaylight.controller.sal-akka-raft -
> 1.3.3.Beryllium-SR3 | member-2-shard-entity-ownership-operational: commit
> failed for transaction member-2-txn-2-1485584005749 - retrying as foreign
> candidate*
> *java.util.concurrent.ExecutionException: java.lang.IllegalStateException:
> Store tree
> org.opendaylight.yangtools.yang.data.api.schema.tree.spi.MaterializedContainerNode@3316bc82
> and candidate base
> org.opendaylight.yangtools.yang.data.api.schema.tree.spi.MaterializedContainerNode@7a30a559
> differ.*
> *        at
> com.google.common.util.concurrent.Futures$ImmediateFailedFuture.get(Futures.java:190)[37:com.google.guava:18.0.0]*
> *        at
> org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator$CohortEntry.commit(ShardCommitCoordinator.java:670)[143:org.opendaylight.controller.sal-distributed-datastore:1.3.3.Beryllium-SR3]*
> *        at
> org.opendaylight.controller.cluster.datastore.Shard.finishCommit(Shard.java:352)[143:org.opendaylight.controller.sal-distributed-datastore:1.3.3.Beryllium-SR3]*
> *        at
> org.opendaylight.controller.cluster.datastore.Shard.finishCommit(Shard.java:420)[143:org.opendaylight.controller.sal-distributed-datastore:1.3.3.Beryllium-SR3]*
> *        at
> org.opendaylight.controller.cluster.datastore.Shard.applyState(Shard.java:668)[143:org.opendaylight.controller.sal-distributed-datastore:1.3.3.Beryllium-SR3]*
> *        at
> org.opendaylight.controller.cluster.raft.RaftActor.handleCommand(RaftActor.java:225)[140:org.opendaylight.controller.sal-akka-raft:1.3.3.Beryllium-SR3]*
> *        at
> org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.onReceiveCommand(AbstractUntypedPersistentActor.java:36)[139:org.opendaylight.controller.sal-clustering-commons:1.3.3.Beryllium-SR3]*
> *        at
> org.opendaylight.controller.cluster.datastore.Shard.onReceiveCommand(Shard.java:276)[143:org.opendaylight.controller.sal-distributed-datastore:1.3.3.Beryllium-SR3]*
> *        at
> org.opendaylight.controller.cluster.datastore.entityownership.EntityOwnershipShard.onReceiveCommand(EntityOwnershipShard.java:137)[143:org.opendaylight.controller.sal-distributed-datastore:1.3.3.Beryllium-SR3]*
> *        at
> akka.persistence.UntypedPersistentActor.onReceive(Eventsourced.scala:430)[133:com.typesafe.akka.persistence.experimental:2.3.14]*
> *        at
> org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(MeteringBehavior.java:97)[139:org.opendaylight.controller.sal-clustering-commons:1.3.3.Beryllium-SR3]*
> *        at
> akka.actor.ActorCell$$anonfun$become$1.applyOrElse(ActorCell.scala:534)[128:com.typesafe.akka.actor:2.3.14]*
> *        at
> akka.persistence.Recovery$State$class.process(Recovery.scala:30)[133:com.typesafe.akka.persistence.experimental:2.3.14]*
> *        at
> akka.persistence.ProcessorImpl$$anon$2.process(Processor.scala:103)[133:com.typesafe.akka.persistence.experimental:2.3.14]*
> *        at
> akka.persistence.ProcessorImpl$$anon$2.aroundReceive(Processor.scala:114)[133:com.typesafe.akka.persistence.experimental:2.3.14]*
> *        at
> akka.persistence.Recovery$class.aroundReceive(Recovery.scala:265)[133:com.typesafe.akka.persistence.experimental:2.3.14]*
> *        at
> akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(Eventsourced.scala:428)[133:com.typesafe.akka.persistence.experimental:2.3.14]*
> *        at
> akka.persistence.Eventsourced$$anon$2.doAroundReceive(Eventsourced.scala:82)[133:com.typesafe.akka.persistence.experimental:2.3.14]*
> *        at
> akka.persistence.Eventsourced$$anon$2.aroundReceive(Eventsourced.scala:78)[133:com.typesafe.akka.persistence.experimental:2.3.14]*
> *        at
> akka.persistence.Eventsourced$class.aroundReceive(Eventsourced.scala:369)[133:com.typesafe.akka.persistence.experimental:2.3.14]*
> *        at
> akka.persistence.UntypedPersistentActor.aroundReceive(Eventsourced.scala:428)[133:com.typesafe.akka.persistence.experimental:2.3.14]*
> *        at
> akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)[128:com.typesafe.akka.actor:2.3.14]*
> *        at
> akka.actor.ActorCell.invoke(ActorCell.scala:487)[128:com.typesafe.akka.actor:2.3.14]*
> *        at
> akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)[128:com.typesafe.akka.actor:2.3.14]*
> *        at
> akka.dispatch.Mailbox.run(Mailbox.scala:220)[128:com.typesafe.akka.actor:2.3.14]*
> *        at
> akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397)[128:com.typesafe.akka.actor:2.3.14]*
> *        at
> scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[125:org.scala-lang.scala-library:2.11.7.v20150622-112736-1fbce4612c]*
> *        at
> scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)[125:org.scala-lang.scala-library:2.11.7.v20150622-112736-1fbce4612c]*
> *        at
> scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[125:org.scala-lang.scala-library:2.11.7.v20150622-112736-1fbce4612c]*
> *        at
> scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[125:org.scala-lang.scala-library:2.11.7.v20150622-112736-1fbce4612c]*
> *Caused by: java.lang.IllegalStateException: Store tree
> org.opendaylight.yangtools.yang.data.api.schema.tree.spi.MaterializedContainerNode@3316bc82
> and candidate base
> org.opendaylight.yangtools.yang.data.api.schema.tree.spi.MaterializedContainerNode@7a30a559
> differ.*
> *        at
> org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTree.commit(InMemoryDataTree.java:119)[57:org.opendaylight.yangtools.yang-data-impl:0.8.3.Beryllium-SR3]*
> *        at
> org.opendaylight.controller.cluster.datastore.SimpleShardDataTreeCohort.commit(SimpleShardDataTreeCohort.java:106)[143:org.opendaylight.controller.sal-distributed-datastore:1.3.3.Beryllium-SR3]*
> *        ... 29 more*
>
> Thanks
>
> _______________________________________________
> controller-dev mailing list
> controller-dev@lists.opendaylight.org
> https://lists.opendaylight.org/mailman/listinfo/controller-dev
>
>
_______________________________________________
controller-dev mailing list
controller-dev@lists.opendaylight.org
https://lists.opendaylight.org/mailman/listinfo/controller-dev

Reply via email to