[ 
https://issues.apache.org/jira/browse/KARAF-6345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16975615#comment-16975615
 ] 

Robert Varga edited comment on KARAF-6345 at 1/7/20 12:29 PM:
--------------------------------------------------------------

Just confirmed, karaf-4.2.7 with pax-logging-1.10.1 downgraded works as 
expected.

As for the test scenario (updated as of 7.1.2020):
 * clone [https://github.com/opendaylight/odlparent/] , checkout 5.0.x branch
 * clone [https://github.com/opendaylight/controller/] , checkout stable/sodium 
branch
 * setup .m2/settings.xml with the content of odlparent.git/settings.xml (to 
get ODL snapshots/releases)
 * go to controller.git/karaf and edit pom.xml to point to 
karaf4-parent/5.0.5-SNAPSHOT
 * 'mvn clean install', it should result in a karaf-4.2.6 based distribution 
(with pax-logging downgraded to 1.10.1)
 * unpack target/distribution.opendaylight-karaf-1.13.2-SNAPSHOT.tar.gz
 * run ./bin/karaf
 * issue 'feature:install odl-mdsal-distributed-datastore', it should succeed 
and karaf should not crash

now for the failing case:
 * in odlparent.git issue
{code:java}
git fetch "https://git.opendaylight.org/gerrit/odlparent"; 
refs/changes/86/85786/3 && git checkout FETCH_HEAD{code}

 * rebuild odlparent using
{code:java}
mvn clean install -Pq{code}
note the 'q' profile makes things compile fast, otherwise it takes ~30 minutes

 * rebuild controller.git/karaf
 * unpack target/distribution.opendaylight-karaf-1.13.2-SNAPSHOT.tar.gz
 * run ./bin/karaf
 * issue 'feature:install odl-mdsal-distributed-datastore', karaf should crash 
with
{noformat}
opendaylight-user@root>feature:install odl-mdsal-distributed-datastore          
                                                                                
                                                                                
                                                                             
Uncaught error from thread 
[opendaylight-cluster-data-akka.actor.default-dispatcher-18]: 
org/iq80/leveldb/DBFactory, shutting down JVM since 
'akka.jvm-exit-on-fatal-error' is enabled for 
ActorSystem[opendaylight-cluster-data]
java.lang.NoClassDefFoundError: org/iq80/leveldb/DBFactory
        at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
        at 
java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3137)
        at java.base/java.lang.Class.getDeclaredConstructors(Class.java:2357)
        at akka.util.Reflect$.findConstructor(Reflect.scala:92)
        at 
akka.persistence.Persistence.akka$persistence$Persistence$$createPlugin(Persistence.scala:408)
        at 
akka.persistence.Persistence$PluginHolderExtensionId.createExtension(Persistence.scala:443)
        at 
akka.persistence.Persistence$PluginHolderExtensionId.createExtension(Persistence.scala:433)
        at akka.actor.ActorSystemImpl.registerExtension(ActorSystem.scala:1006)
        at akka.actor.ExtensionId.apply(Extension.scala:79)
        at akka.actor.ExtensionId.apply$(Extension.scala:78)
        at 
akka.persistence.Persistence$PluginHolderExtensionId.apply(Persistence.scala:433)
        at akka.persistence.Persistence.pluginHolderFor(Persistence.scala:391)
        at akka.persistence.Persistence.journalConfigFor(Persistence.scala:338)
        at akka.persistence.Eventsourced.$init$(Eventsourced.scala:97)
        at 
akka.persistence.AbstractPersistentActor.<init>(PersistentActor.scala:455)
        at 
org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.<init>(AbstractUntypedPersistentActor.java:24)
        at 
org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActorWithMetering.<init>(AbstractUntypedPersistentActorWithMetering.java:15)
        at 
org.opendaylight.controller.cluster.datastore.shardmanager.ShardManager.<init>(ShardManager.java:182)
        at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
 Method)
        at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at 
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at 
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at akka.util.Reflect$.instantiate(Reflect.scala:68)
        at 
akka.actor.ArgsReflectConstructor.produce(IndirectActorProducer.scala:101)
        at akka.actor.Props.newActor(Props.scala:212)
        at akka.actor.ActorCell.newActor(ActorCell.scala:648)
        at akka.actor.ActorCell.create(ActorCell.scala:674)
        at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:547)
        at akka.actor.ActorCell.systemInvoke(ActorCell.scala:569)
        at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:293)
        at akka.dispatch.Mailbox.run(Mailbox.scala:228)
        at akka.dispatch.Mailbox.exec(Mailbox.scala:241)
        at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at 
akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at 
akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.ClassNotFoundException: org.iq80.leveldb.DBFactory cannot 
be found by com.typesafe.akka.persistence_2.5.26
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:484)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
        at 
org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 36 more
Uncaught error from thread 
[opendaylight-cluster-data-akka.actor.default-dispatcher-3]: 
org/iq80/leveldb/DBFactory, shutting down JVM since 
'akka.jvm-exit-on-fatal-error' is enabled for 
ActorSystem[opendaylight-cluster-data]
java.lang.NoClassDefFoundError: org/iq80/leveldb/DBFactory
        at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
        at 
java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3137)
        at java.base/java.lang.Class.getDeclaredConstructors(Class.java:2357)
        at akka.util.Reflect$.findConstructor(Reflect.scala:92)
        at 
akka.persistence.Persistence.akka$persistence$Persistence$$createPlugin(Persistence.scala:408)
        at 
akka.persistence.Persistence$PluginHolderExtensionId.createExtension(Persistence.scala:443)
        at 
akka.persistence.Persistence$PluginHolderExtensionId.createExtension(Persistence.scala:433)
        at akka.actor.ActorSystemImpl.registerExtension(ActorSystem.scala:1006)
        at akka.actor.ExtensionId.apply(Extension.scala:79)
        at akka.actor.ExtensionId.apply$(Extension.scala:78)
        at 
akka.persistence.Persistence$PluginHolderExtensionId.apply(Persistence.scala:433)
        at akka.persistence.Persistence.pluginHolderFor(Persistence.scala:391)
        at akka.persistence.Persistence.journalConfigFor(Persistence.scala:338)
        at akka.persistence.Eventsourced.$init$(Eventsourced.scala:97)
        at 
akka.persistence.AbstractPersistentActor.<init>(PersistentActor.scala:455)
        at 
org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.<init>(AbstractUntypedPersistentActor.java:24)
        at 
org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActorWithMetering.<init>(AbstractUntypedPersistentActorWithMetering.java:15)
        at 
org.opendaylight.controller.cluster.datastore.shardmanager.ShardManager.<init>(ShardManager.java:182)
        at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
 Method)
        at 
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at 
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at 
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at akka.util.Reflect$.instantiate(Reflect.scala:68)
        at 
akka.actor.ArgsReflectConstructor.produce(IndirectActorProducer.scala:101)
        at akka.actor.Props.newActor(Props.scala:212)
        at akka.actor.ActorCell.newActor(ActorCell.scala:648)
        at akka.actor.ActorCell.create(ActorCell.scala:674)
        at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:547)
        at akka.actor.ActorCell.systemInvoke(ActorCell.scala:569)
        at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:293)
        at akka.dispatch.Mailbox.run(Mailbox.scala:228)
        at akka.dispatch.Mailbox.exec(Mailbox.scala:241)
        at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at 
akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at 
akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.ClassNotFoundException: org.iq80.leveldb.DBFactory cannot 
be found by com.typesafe.akka.persistence_2.5.26
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:484)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
        at 
org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 36 more

{noformat}

 

 


was (Author: nite):
Just confirmed, karaf-4.2.7 with pax-logging-1.10.1 downgraded works as 
expected.

As for the test scenario (updated as of 7.1.2020):
 * clone [https://github.com/opendaylight/odlparent/] , checkout 5.0.x branch
 * clone [https://github.com/opendaylight/controller/] , checkout stable/sodium 
branch
 * setup .m2/settings.xml with the content of odlparent.git/settings.xml (to 
get ODL snapshots/releases)
 * go to controller.git/karaf and edit pom.xml to point to 
karaf4-parent/5.0.5-SNAPSHOT
 * 'mvn clean install', it should result in a karaf-4.2.6 based distribution 
(with pax-logging downgraded to 1.10.1)
 * unpack target/distribution.opendaylight-karaf-1.13.2-SNAPSHOT.tar.gz
 * run ./bin/karaf
 * issue 'feature:install odl-mdsal-distributed-datastore', it should succeed 
and karaf should not crash

now for the failing case:
 * in odlparent.git issue
{code:java}
git fetch "https://git.opendaylight.org/gerrit/odlparent"; 
refs/changes/86/85786/3 && git checkout FETCH_HEAD{code}

 * rebuild odlparent using
{code:java}
mvn clean install -Pq{code}
note the 'q' profile makes things compile fast, otherwise it takes ~30 minutes

 * rebuild controller.git/karaf
 * unpack target/distribution.opendaylight-karaf-1.13.2-SNAPSHOT.tar.gz
 * run ./bin/karaf
 * issue 'feature:install odl-mdsal-distributed-datastore', karaf should crash 
with
{noformat}
opendaylight-user@root>feature:install odl-mdsal-distributed-datastore
Uncaught error from thread 
[opendaylight-cluster-data-akka.actor.default-dispatcher-18]: 
org/iq80/leveldb/DBFactory, shutting down JVM since 
'akka.jvm-exit-on-fatal-error' is enabled for 
ActorSystem[opendaylight-cluster-data]
java.lang.NoClassDefFoundError: org/iq80/leveldb/DBFactory
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
        at java.lang.Class.getDeclaredConstructors(Class.java:2020)
        at akka.util.Reflect$.findConstructor(Reflect.scala:92)
        at 
akka.persistence.Persistence.akka$persistence$Persistence$$createPlugin(Persistence.scala:408)
        at 
akka.persistence.Persistence$PluginHolderExtensionId.createExtension(Persistence.scala:443)
        at 
akka.persistence.Persistence$PluginHolderExtensionId.createExtension(Persistence.scala:433)
        at akka.actor.ActorSystemImpl.registerExtension(ActorSystem.scala:1006)
        at akka.actor.ExtensionId.apply(Extension.scala:79)
        at akka.actor.ExtensionId.apply$(Extension.scala:78)
        at 
akka.persistence.Persistence$PluginHolderExtensionId.apply(Persistence.scala:433)
        at akka.persistence.Persistence.pluginHolderFor(Persistence.scala:391)
        at akka.persistence.Persistence.journalConfigFor(Persistence.scala:338)
        at akka.persistence.Eventsourced.$init$(Eventsourced.scala:97)
        at 
akka.persistence.AbstractPersistentActor.<init>(PersistentActor.scala:455)
        at 
org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.<init>(AbstractUntypedPersistentActor.java:24)
        at 
org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActorWithMetering.<init>(AbstractUntypedPersistentActorWithMetering.java:15)
        at 
org.opendaylight.controller.cluster.datastore.shardmanager.ShardManager.<init>(ShardManager.java:182)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at akka.util.Reflect$.instantiate(Reflect.scala:68)
        at 
akka.actor.ArgsReflectConstructor.produce(IndirectActorProducer.scala:101)
        at akka.actor.Props.newActor(Props.scala:212)
        at akka.actor.ActorCell.newActor(ActorCell.scala:648)
        at akka.actor.ActorCell.create(ActorCell.scala:674)
        at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:547)
        at akka.actor.ActorCell.systemInvoke(ActorCell.scala:569)
        at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:293)
        at akka.dispatch.Mailbox.run(Mailbox.scala:228)
        at akka.dispatch.Mailbox.exec(Mailbox.scala:241)
        at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at 
akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at 
akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.ClassNotFoundException: org.iq80.leveldb.DBFactory cannot 
be found by com.typesafe.akka.persistence_2.5.25
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:484)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
        at 
org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        ... 36 more
Uncaught error from thread 
[opendaylight-cluster-data-akka.actor.default-dispatcher-2]: 
org/iq80/leveldb/DBFactory, shutting down JVM since 
'akka.jvm-exit-on-fatal-error' is enabled for 
ActorSystem[opendaylight-cluster-data]
java.lang.NoClassDefFoundError: org/iq80/leveldb/DBFactory
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
        at java.lang.Class.getDeclaredConstructors(Class.java:2020)
        at akka.util.Reflect$.findConstructor(Reflect.scala:92)
        at 
akka.persistence.Persistence.akka$persistence$Persistence$$createPlugin(Persistence.scala:408)
        at 
akka.persistence.Persistence$PluginHolderExtensionId.createExtension(Persistence.scala:443)
        at 
akka.persistence.Persistence$PluginHolderExtensionId.createExtension(Persistence.scala:433)
        at akka.actor.ActorSystemImpl.registerExtension(ActorSystem.scala:1006)
        at akka.actor.ExtensionId.apply(Extension.scala:79)
        at akka.actor.ExtensionId.apply$(Extension.scala:78)
        at 
akka.persistence.Persistence$PluginHolderExtensionId.apply(Persistence.scala:433)
        at akka.persistence.Persistence.pluginHolderFor(Persistence.scala:391)
        at akka.persistence.Persistence.journalConfigFor(Persistence.scala:338)
        at akka.persistence.Eventsourced.$init$(Eventsourced.scala:97)
        at 
akka.persistence.AbstractPersistentActor.<init>(PersistentActor.scala:455)
        at 
org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.<init>(AbstractUntypedPersistentActor.java:24)
        at 
org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActorWithMetering.<init>(AbstractUntypedPersistentActorWithMetering.java:15)
        at 
org.opendaylight.controller.cluster.datastore.shardmanager.ShardManager.<init>(ShardManager.java:182)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at akka.util.Reflect$.instantiate(Reflect.scala:68)
        at 
akka.actor.ArgsReflectConstructor.produce(IndirectActorProducer.scala:101)
        at akka.actor.Props.newActor(Props.scala:212)
        at akka.actor.ActorCell.newActor(ActorCell.scala:648)
        at akka.actor.ActorCell.create(ActorCell.scala:674)
        at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:547)
        at akka.actor.ActorCell.systemInvoke(ActorCell.scala:569)
        at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:293)
        at akka.dispatch.Mailbox.run(Mailbox.scala:228)
        at akka.dispatch.Mailbox.exec(Mailbox.scala:241)
        at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at 
akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at 
akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.ClassNotFoundException: org.iq80.leveldb.DBFactory cannot 
be found by com.typesafe.akka.persistence_2.5.25
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:484)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
        at 
org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        ... 36 more
{noformat}

 

 

> Optional imports do not propagate to OSGi framework
> ---------------------------------------------------
>
>                 Key: KARAF-6345
>                 URL: https://issues.apache.org/jira/browse/KARAF-6345
>             Project: Karaf
>          Issue Type: Bug
>          Components: karaf
>    Affects Versions: 4.2.6, 4.2.7
>            Reporter: Robert Varga
>            Assignee: Jean-Baptiste Onofré
>            Priority: Critical
>             Fix For: 4.3.0, 4.2.8
>
>
> Based on 
> [https://lists.apache.org/thread.html/bf9e724cc9715b2a568bac7537a7be4a8df85867a2126bbd14e4e79d@%3Cdev.karaf.apache.org%3E]
> The problem is that:
> {noformat}
> java.lang.NoClassDefFoundError: org/iq80/leveldb/DBFactory
>         at java.lang.Class.getDeclaredConstructors0(Native Method)
>         at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
>         at java.lang.Class.getDeclaredConstructors(Class.java:2020)
>         at akka.util.Reflect$.findConstructor(Reflect.scala:92)
>         at 
> akka.persistence.Persistence.akka$persistence$Persistence$$createPlugin(Persistence.scala:408)
> [snip]
> Caused by: java.lang.ClassNotFoundException: org.iq80.leveldb.DBFactory 
> cannot be found by com.typesafe.akka.persistence_2.5.23
>         at 
> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:484)
>         at 
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
>         at 
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
>         at 
> org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>         ... 32 more{noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to