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

Aled Sage commented on BROOKLYN-627:
------------------------------------

See [https://github.com/apache/brooklyn-server/pull/1099]

> kubernetes-client bundle initialisation fails
> ---------------------------------------------
>
>                 Key: BROOKLYN-627
>                 URL: https://issues.apache.org/jira/browse/BROOKLYN-627
>             Project: Brooklyn
>          Issue Type: Bug
>    Affects Versions: 1.1.0-SNAPSHOT
>            Reporter: Aled Sage
>            Priority: Major
>
> Since merging [https://github.com/apache/brooklyn-server/pull/1090,] i.e. not 
> yet in any official Brooklyn release.)
> During startup, I've once seen this error with the rpm build on CentOS 7 
> (it's non-deterministic):
> {noformat}
> 2020-05-11T11:15:05,661 - ERROR 354 i.f.kubernetes-client [tures-3-thread-1] 
> bundle io.fabric8.kubernetes-client:4.9.0 
> (354)[io.fabric8.kubernetes.client.osgi.ManagedKubernetesClient(3)] :  Error 
> during instantiation of th
> e implementation object
> java.lang.reflect.InvocationTargetException: null
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
> Method) ~[?:1.8.0_252]
>         at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>  ~[?:1.8.0_252]
>         at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>  ~[?:1.8.0_252]
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
> ~[?:1.8.0_252]
>         at 
> org.apache.felix.scr.impl.inject.ComponentConstructor.newInstance(ComponentConstructor.java:309)
>  ~[?:?]
>         at 
> org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:277)
>  ~[?:?]
>         at 
> org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:114)
>  ~[?:?]
>         at 
> org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:982)
>  ~[?:?]
>         at 
> org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:955)
>  ~[?:?]
>         at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:756)
>  ~[?:?]
>         at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:666)
>  ~[?:?]
>         at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:432)
>  ~[?:?]
>         at 
> org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:665)
>  ~[?:?]
>         at 
> org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:338)
>  ~[?:?]
>         at 
> org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:382) ~[?:?]
>         at org.apache.felix.scr.impl.Activator.access$200(Activator.java:49) 
> ~[?:?]
>         at 
> org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:264) 
> ~[?:?]
>         at 
> org.apache.felix.scr.impl.AbstractExtender.createExtension(AbstractExtender.java:196)
>  ~[?:?]
>         at 
> org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:169)
>  ~[?:?]
>         at 
> org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:49)
>  ~[?:?]
>         at 
> org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:482)
>  ~[osgi.core-6.0.0.jar:?]
>         at 
> org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:415)
>  ~[osgi.core-6.0.0.jar:?]
>         at 
> org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) 
> ~[osgi.core-6.0.0.jar:?]
>         at 
> org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:444)
>  ~[osgi.core-6.0.0.jar:?]
>         at 
> org.apache.felix.framework.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:915)
>  ~[?:?]
>         at 
> org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:834)
>  ~[?:?]
>         at 
> org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:516)
>  ~[?:?]
>         at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4579) 
> ~[?:?]
>         at org.apache.felix.framework.Felix.startBundle(Felix.java:2174) 
> ~[?:?]
>         at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998) 
> ~[?:?]
>         at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:984) 
> ~[?:?]
>         at 
> org.apache.karaf.features.internal.service.BundleInstallSupportImpl.startBundle(BundleInstallSupportImpl.java:165)
>  ~[?:?]
>         at 
> org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1153)
>  ~[?:?]
>         at 
> org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:1036)
>  ~[?:?]
>         at 
> org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1062)
>  ~[?:?]
>         at 
> org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:998)
>  ~[?:?]
>         at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
> [?:1.8.0_252]
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  [?:1.8.0_252]
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  [?:1.8.0_252]
>         at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]
> Caused by: java.lang.NoClassDefFoundError: okhttp3/Interceptor
>         at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_252]
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:756) 
> ~[?:1.8.0_252]
>         at 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.defineClass(BundleWiringImpl.java:2410)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2194)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1607)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)
>  ~[?:?]
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:351) 
> ~[?:1.8.0_252]
>         at 
> org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1414)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1660)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1590)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)
>  ~[?:?]
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:351) 
> ~[?:1.8.0_252]
>         at 
> io.fabric8.kubernetes.client.utils.HttpClientUtils.createHttpClient(HttpClientUtils.java:118)
>  ~[?:?]
>         at 
> io.fabric8.kubernetes.client.utils.HttpClientUtils.createHttpClient(HttpClientUtils.java:65)
>  ~[?:?]
>         at io.fabric8.kubernetes.client.BaseClient.<init>(BaseClient.java:51) 
> ~[?:?]
>         at io.fabric8.kubernetes.client.BaseClient.<init>(BaseClient.java:43) 
> ~[?:?]
>         at 
> io.fabric8.kubernetes.client.osgi.ManagedKubernetesClient.<init>(ManagedKubernetesClient.java:141)
>  ~[?:?]
>         ... 40 more
> Caused by: java.lang.ClassNotFoundException: okhttp3.Interceptor not found by 
> wrap_file__opt_amp-5.5.0-SNAPSHOT_system_com_squareup_okhttp3_logging-interceptor_3.12.6_logging-interceptor-3.12.6.jar
>  [373]
>         at 
> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1639)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)
>  ~[?:?]
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:351) 
> ~[?:1.8.0_252]
>         at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_252]
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:756) 
> ~[?:1.8.0_252]
>         at 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.defineClass(BundleWiringImpl.java:2410)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2194)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1607)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)
>  ~[?:?]
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:351) 
> ~[?:1.8.0_252]
>         at 
> org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1414)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1660)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1590)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80)
>  ~[?:?]
>         at 
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)
>  ~[?:?]
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:351) 
> ~[?:1.8.0_252]
>         at 
> io.fabric8.kubernetes.client.utils.HttpClientUtils.createHttpClient(HttpClientUtils.java:118)
>  ~[?:?]
>         at 
> io.fabric8.kubernetes.client.utils.HttpClientUtils.createHttpClient(HttpClientUtils.java:65)
>  ~[?:?]
>         at io.fabric8.kubernetes.client.BaseClient.<init>(BaseClient.java:51) 
> ~[?:?]
>         at io.fabric8.kubernetes.client.BaseClient.<init>(BaseClient.java:43) 
> ~[?:?]
>         at 
> io.fabric8.kubernetes.client.osgi.ManagedKubernetesClient.<init>(ManagedKubernetesClient.java:141)
>  ~[?:?]
>         ... 40 more {noformat}
> Looking at {{okhttp3.logging-interceptor}}, its import-package is optional: 
> {{okhttp3;resolution:=optional}}. I'm guess that means the bundle can start 
> before {{okhttp3}} bundle has been wrapped/started (hence the class not being 
> available).
> It's getting called during the bundle startup of 
> {{io.fabric8.kubernetes-client}} because that bundle declares services. 
> {{io.fabric8.kubernetes.client.utils.HttpClientUtils.createHttpClient:118}} 
> references {{okhttp3.logging.HttpLoggingInterceptor}}, which triggers all 
> this class loading.
> But later in the startup log, there's no mention of rewiring 
> {{okhttp3.logging-interceptor}} (which I'd expect if {{okhttp3}} package 
> subsequently becomes available.
> Requires further investigation!



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

Reply via email to