-
Bug
-
Resolution: Cannot Reproduce
-
None
-
Beryllium
-
None
-
Operating System: All
Platform: All
-
4516
-
Normal
Installing DIDM and Openflowplugin seems to work well the first time after the first fresh start of Karaf. After the initial installation, different exceptions occur on uninstall and reinstall of the same set of Karaf features for DIDM and Openflowplugin causing Karaf to hang.
Steps to reproduce:
1. Download and install Karaf integration distribution (link to download: https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/integration/distribution-karaf/0.4.0-SNAPSHOT/distribution-karaf-0.4.0-20151022.192517-1764.zip)
2. Install DIDM and openflowplugin:
feature:install odl-openflowplugin-all-li
feature:install odl-didm-identification
feature:install odl-didm-identification-api
feature:install odl-didm-drivers-api
feature:install odl-didm-hp3800
3. Uninstall DIDM and openflowplugin:
feature:uninstall odl-didm-hp3800
feature:uninstall odl-didm-drivers-api
feature:uninstall odl-didm-identification
feature:uninstall odl-didm-identification-api
feature:install odl-openflowplugin-all-li
4. Reinstall DIDM and openflowplugin (repeat step 2)
Different exceptions occur during step 3 and 4 (not seen on the the first fresh installation of Karaf).
Example 1: Karaf terminal capture
opendaylight-user@root>feature:install odl-openflowplugin-all-li
opendaylight-user@root>feature:install odl-didm-identification odl-didm-identification-api odl-didm-drivers-api odl-didm-hp3800
opendaylight-user@root>feature:uninstall odl-didm-hp3800 odl-didm-drivers-api odl-didm-identification odl-didm-identification-api odl-openflowplugin-all-li
Uncaught error from thread [opendaylight-cluster-data-akka.actor.default-dispatcher-174] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[opendaylight-cluster-data]
java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.lang.String.substring(String.java:1877)
at java.lang.Class.getSimpleName(Class.java:1172)
at org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(MeteringBehavior.java:86)
at akka.actor.ActorCell$$anonfun$become$1.applyOrElse(ActorCell.scala:534)
at akka.persistence.Recovery$State$class.process(Recovery.scala:30)
at akka.persistence.ProcessorImpl$$anon$2.process(Processor.scala:103)
at akka.persistence.ProcessorImpl$$anon$2.aroundReceive(Processor.scala:114)
at akka.persistence.Recovery$class.aroundReceive(Recovery.scala:265)
at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(Eventsourced.scala:428)
at akka.persistence.Eventsourced$$anon$2.doAroundReceive(Eventsourced.scala:82)
at akka.persistence.Eventsourced$$anon$2.aroundReceive(Eventsourced.scala:78)
at akka.persistence.Eventsourced$class.aroundReceive(Eventsourced.scala:369)
at akka.persistence.UntypedPersistentActor.aroundReceive(Eventsourced.scala:428)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)
at akka.actor.ActorCell.invoke(ActorCell.scala:487)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:254)
at akka.dispatch.Mailbox.run(Mailbox.scala:221)
at akka.dispatch.Mailbox.exec(Mailbox.scala:231)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.pollAndExecAll(ForkJoinPool.java:1253)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1346)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
sdn@cell8-ODLC1:~/distribution-karaf-0.4.0-SNAPSHOT$>
Example 2: Exceptions found in karaf.log
2015-10-22 13:31:59,431 | ERROR | l for user karaf | ExtensibleBundleTracker | 114 - org.opendaylight.controller.config-manager - 0.4.0.SNAPSHOT | Failed to remove bundle org.opendaylight.didm.hp3800.hp-3800-impl_0.2.0.SNAPSHOT [273]
java.lang.IllegalStateException: Error while copying old configuration from ModuleInternalInfo [name=ModuleIdentifier
] to org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.didm.identification.impl.rev150202.DeviceIdentificationManagerModuleFactory@22b7a92f
at org.opendaylight.controller.config.manager.impl.ConfigTransactionControllerImpl.copyExistingModule(ConfigTransactionControllerImpl.java:216)
at org.opendaylight.controller.config.manager.impl.ConfigTransactionControllerImpl.copyExistingModulesAndProcessFactoryDiff(ConfigTransactionControllerImpl.java:113)
at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.beginConfigInternal(ConfigRegistryImpl.java:190)
at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.beginConfig(ConfigRegistryImpl.java:147)