[YANGTOOLS-540] java.lang.IllegalArgumentException: Unsupported modification APPEARED Created: 04/Nov/15  Updated: 10/Apr/22  Resolved: 05/Nov/15

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

Type: Bug
Reporter: Anil Vishnoi Assignee: Robert Varga
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: Text File karaf.log    
External issue ID: 4578

 Description   

When i restart the ovsdb controller i see following exception. After this exception i am not able to access the network-topology shard, it keep throwing exception with the reason "Found primary shard member-1-shard-topology-config but it's not initialized yet. Please try again later". Attached karaf log has all the detailed exceptions.

2015-11-04 22:48:40,171 | WARN | lt-dispatcher-17 | ShardManager | 150 - org.opendaylight.controller.sal-distributed-datastore - 1.3.0.SNAPSHOT | Supervisor Strategy caught unexpected exception - resuming
java.lang.IllegalArgumentException: Unsupported modification APPEARED
at org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates$NodeIterator.next(DataTreeCandidates.java:124)[66:org.opendaylight.yangtools.yang-data-api:0.8.0.SNAPSHOT]
at org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates.applyToModification(DataTreeCandidates.java:60)[66:org.opendaylight.yangtools.yang-data-api:0.8.0.SNAPSHOT]
at org.opendaylight.controller.cluster.datastore.ShardRecoveryCoordinator.appendRecoveredLogEntry(ShardRecoveryCoordinator.java:68)[150:org.opendaylight.controller.sal-distributed-datastore:1.3.0.SNAPSHOT]
at org.opendaylight.controller.cluster.raft.RaftActorRecoverySupport.batchRecoveredLogEntry(RaftActorRecoverySupport.java:187)[147:org.opendaylight.controller.sal-akka-raft:1.3.0.SNAPSHOT]
at org.opendaylight.controller.cluster.raft.RaftActorRecoverySupport.onRecoveredApplyLogEntries(RaftActorRecoverySupport.java:167)[147:org.opendaylight.controller.sal-akka-raft:1.3.0.SNAPSHOT]
at org.opendaylight.controller.cluster.raft.RaftActorRecoverySupport.handleRecoveryMessage(RaftActorRecoverySupport.java:69)[147:org.opendaylight.controller.sal-akka-raft:1.3.0.SNAPSHOT]
at org.opendaylight.controller.cluster.raft.RaftActor.handleRecover(RaftActor.java:171)[147:org.opendaylight.controller.sal-akka-raft:1.3.0.SNAPSHOT]
at org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.onReceiveRecover(AbstractUntypedPersistentActor.java:48)[146:org.opendaylight.controller.sal-clustering-commons:1.3.0.SNAPSHOT]
at org.opendaylight.controller.cluster.datastore.Shard.onReceiveRecover(Shard.java:205)[150:org.opendaylight.controller.sal-distributed-datastore:1.3.0.SNAPSHOT]
at akka.persistence.UntypedPersistentActor$$anonfun$receiveRecover$1.applyOrElse(Eventsourced.scala:433)[140:com.typesafe.akka.persistence.experimental:2.3.14]
at scala.runtime.AbstractPartialFunction$mcVL$sp.apply$mcVL$sp(AbstractPartialFunction.scala:33)[132:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at scala.runtime.AbstractPartialFunction$mcVL$sp.apply(AbstractPartialFunction.scala:33)[132:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at scala.runtime.AbstractPartialFunction$mcVL$sp.apply(AbstractPartialFunction.scala:25)[132:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at akka.persistence.Eventsourced$$anonfun$akka$persistence$Eventsourced$$recoveryBehavior$1.applyOrElse(Eventsourced.scala:168)[140:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.Recovery$class.runReceive(Recovery.scala:48)[140:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.UntypedPersistentActor.runReceive(Eventsourced.scala:428)[140:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.Recovery$State$$anonfun$processPersistent$1.apply(Recovery.scala:33)[140:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.Recovery$State$$anonfun$processPersistent$1.apply(Recovery.scala:33)[140:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.Recovery$class.withCurrentPersistent(Recovery.scala:185)[140:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.UntypedPersistentActor.withCurrentPersistent(Eventsourced.scala:428)[140:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.Recovery$State$class.processPersistent(Recovery.scala:33)[140:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.Recovery$$anon$1.processPersistent(Recovery.scala:104)[140:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.Recovery$$anon$1.aroundReceive(Recovery.scala:110)[140:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.Recovery$class.aroundReceive(Recovery.scala:265)[140:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(Eventsourced.scala:428)[140:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.Eventsourced$$anon$1.aroundReceive(Eventsourced.scala:35)[140:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.Eventsourced$class.aroundReceive(Eventsourced.scala:369)[140:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.persistence.UntypedPersistentActor.aroundReceive(Eventsourced.scala:428)[140:com.typesafe.akka.persistence.experimental:2.3.14]
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)[135:com.typesafe.akka.actor:2.3.14]
at akka.actor.ActorCell.invoke(ActorCell.scala:487)[135:com.typesafe.akka.actor:2.3.14]
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)[135:com.typesafe.akka.actor:2.3.14]
at akka.dispatch.Mailbox.run(Mailbox.scala:220)[135:com.typesafe.akka.actor:2.3.14]
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397)[135:com.typesafe.akka.actor:2.3.14]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[132:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)[132:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[132:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[132:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
2015-11-04 22:48:40,183 | WARN | lt-dispatcher-18 | OneForOneStrategy | 136 - com.typesafe.akka.slf4j - 2.3.14 | Unsupported modification APPEARED



 Comments   
Comment by Anil Vishnoi [ 04/Nov/15 ]

Attachment karaf.log has been added with description: karaf log

Comment by Anil Vishnoi [ 04/Nov/15 ]

It's very easy to recreate.

1) Clone ovsdb repo and build it
2) run the distribution (./karaf/target/assembly/bin/)
3) connect the ovsdb switch to the controller (make sure no bridge exist)
ovs-vsctl set-manager <controller-ip>:6640
Once you connect it, controller will create couple of bridges and also install few rules on it.
4) restart the controller
5) try to access the network-topology shard through restconf, it waits for long time and eventually fails. You can see relevant exception in the karaf log.

This happen consistently in my environment.

Comment by Robert Varga [ 04/Nov/15 ]

https://git.opendaylight.org/gerrit/29272

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