[SFC-196] Karaf4 exceptions in SFC distribution Created: 05/Jun/17  Updated: 30/May/18  Resolved: 30/May/18

Status: Verified
Project: sfc
Component/s: General
Affects Version/s: unspecified
Fix Version/s: Nitrogen

Type: Bug
Reporter: Brady Johnson Assignee: Brady Johnson
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issue Links:
Blocks
blocks ODLPARENT-23 Milestone: Upgrade karaf to 4.0.1 or ... Resolved
is blocked by OPNFLWJAVA-84 Karaf4 NullPointerException at org.op... Resolved
External issue ID: 8594

 Description   

While switching SFC Nitrogen over to Karaf4 (https://git.opendaylight.org/gerrit/#/c/58236), I get the below exceptions in these modules:

Blueprint
OpenflowPlugin
OVSDB

2017-06-01 19:08:12,259 | ERROR | rint Extender: 3 | Futures$CombinedFuture | 70 - com.google.guava - 18.0.0 | input future failed.
java.lang.NullPointerException
at org.opendaylight.openflowjava.protocol.impl.core.SwitchConnectionProviderImpl.createAndConfigureServer(SwitchConnectionProviderImpl.java:145)
at org.opendaylight.openflowjava.protocol.impl.core.SwitchConnectionProviderImpl.startup(SwitchConnectionProviderImpl.java:112)
at Proxyfb9788b2_4f93_4b0b_ae36_2782ee5d5246.startup(Unknown Source)
at Proxy1afd4363_9565_4d97_8bb4_d77bdd0a05f7.startup(Unknown Source)
at org.opendaylight.openflowplugin.impl.OpenFlowPluginProviderImpl.lambda$startSwitchConnections$0(OpenFlowPluginProviderImpl.java:150)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)[:1.8.0_121]
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)[:1.8.0_121]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)[:1.8.0_121]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)[:1.8.0_121]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)[:1.8.0_121]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)[:1.8.0_121]
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)[:1.8.0_121]
at org.opendaylight.openflowplugin.impl.OpenFlowPluginProviderImpl.startSwitchConnections(OpenFlowPluginProviderImpl.java:151)
at org.opendaylight.openflowplugin.impl.OpenFlowPluginProviderImpl.initialize(OpenFlowPluginProviderImpl.java:232)
at org.opendaylight.openflowplugin.impl.OpenFlowPluginProviderFactoryImpl.newInstance(OpenFlowPluginProviderFactoryImpl.java:106)
at Proxy650ae58a_73fb_4bba_9280_96323ba7be9a.newInstance(Unknown Source)
at Proxy335da150_f5cb_4de8_8aed_eda6fe18de98.newInstance(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_121]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_121]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_121]
at java.lang.reflect.Method.invoke(Method.java:498)[:1.8.0_121]
at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:299)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:980)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BeanRecipe.getInstanceFromFactory(BeanRecipe.java:295)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:278)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:830)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:811)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[12:org.apache.aries.blueprint.core:1.7.1]
at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121]
at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:62)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:106)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.ServiceRecipe.createService(ServiceRecipe.java:285)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.ServiceRecipe.internalGetService(ServiceRecipe.java:252)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.ServiceRecipe.internalCreate(ServiceRecipe.java:149)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[12:org.apache.aries.blueprint.core:1.7.1]
at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121]
at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:255)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:186)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:724)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:411)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:276)[12:org.apache.aries.blueprint.core:1.7.1]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_121]
at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121]
at org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)[12:org.apache.aries.blueprint.core:1.7.1]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_121]
at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)[:1.8.0_121]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)[:1.8.0_121]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_121]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_121]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]

2017-06-01 19:08:12,282 | WARN | rint Extender: 3 | OpenFlowPluginProviderImpl | 297 - org.opendaylight.openflowplugin.impl - 0.5.0.SNAPSHOT | Some switchConnectionProviders failed to start.
java.lang.NullPointerException
at org.opendaylight.openflowjava.protocol.impl.core.SwitchConnectionProviderImpl.createAndConfigureServer(SwitchConnectionProviderImpl.java:145)
at org.opendaylight.openflowjava.protocol.impl.core.SwitchConnectionProviderImpl.startup(SwitchConnectionProviderImpl.java:112)
at Proxyfb9788b2_4f93_4b0b_ae36_2782ee5d5246.startup(Unknown Source)
at Proxy1afd4363_9565_4d97_8bb4_d77bdd0a05f7.startup(Unknown Source)
at org.opendaylight.openflowplugin.impl.OpenFlowPluginProviderImpl.lambda$startSwitchConnections$0(OpenFlowPluginProviderImpl.java:150)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)[:1.8.0_121]
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)[:1.8.0_121]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)[:1.8.0_121]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)[:1.8.0_121]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)[:1.8.0_121]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)[:1.8.0_121]
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)[:1.8.0_121]
at org.opendaylight.openflowplugin.impl.OpenFlowPluginProviderImpl.startSwitchConnections(OpenFlowPluginProviderImpl.java:151)
at org.opendaylight.openflowplugin.impl.OpenFlowPluginProviderImpl.initialize(OpenFlowPluginProviderImpl.java:232)
at org.opendaylight.openflowplugin.impl.OpenFlowPluginProviderFactoryImpl.newInstance(OpenFlowPluginProviderFactoryImpl.java:106)
at Proxy650ae58a_73fb_4bba_9280_96323ba7be9a.newInstance(Unknown Source)
at Proxy335da150_f5cb_4de8_8aed_eda6fe18de98.newInstance(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_121]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_121]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_121]
at java.lang.reflect.Method.invoke(Method.java:498)[:1.8.0_121]
at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:299)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:980)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BeanRecipe.getInstanceFromFactory(BeanRecipe.java:295)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:278)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:830)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:811)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[12:org.apache.aries.blueprint.core:1.7.1]
at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121]
at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:62)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:106)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.ServiceRecipe.createService(ServiceRecipe.java:285)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.ServiceRecipe.internalGetService(ServiceRecipe.java:252)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.ServiceRecipe.internalCreate(ServiceRecipe.java:149)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[12:org.apache.aries.blueprint.core:1.7.1]
at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121]
at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:255)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:186)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:724)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:411)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:276)[12:org.apache.aries.blueprint.core:1.7.1]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_121]
at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121]
at org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)[12:org.apache.aries.blueprint.core:1.7.1]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_121]
at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)[:1.8.0_121]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)[:1.8.0_121]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_121]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_121]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]

2017-06-01 19:13:58,232 | INFO | DBConnNotifSer-1 | ServiceRecipe | 12 - org.apache.aries.blueprint.core - 1.7.1 | Unable to create a proxy object for the service .component-1 defined in bundle org.opendaylight.controller.sal-binding-broker-impl/1.6.0.SNAPSHOT with id. Returning the original object instead.
org.apache.aries.proxy.UnableToProxyException: java.lang.ClassFormatError: Duplicate interface name in class file Proxy6e855a6b_461a_4e31_8357_dde357a7212d
at org.apache.aries.proxy.impl.interfaces.ProxyClassLoader.createProxyClass(ProxyClassLoader.java:165)
at org.apache.aries.proxy.impl.interfaces.InterfaceProxyGenerator.getProxyInstance(InterfaceProxyGenerator.java:97)
at org.apache.aries.proxy.impl.AsmProxyManager.createNewProxy(AsmProxyManager.java:80)
at org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingInterceptingProxy(AbstractProxyManager.java:75)
at org.apache.aries.proxy.impl.AbstractProxyManager.createInterceptingProxy(AbstractProxyManager.java:53)
at org.apache.aries.blueprint.container.ServiceRecipe$TriggerServiceFactory.getService(ServiceRecipe.java:569)[12:org.apache.aries.blueprint.core:1.7.1]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_121]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:496)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:619)[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe.getServiceSecurely(AbstractServiceReferenceRecipe.java:235)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.ReferenceRecipe.getService(ReferenceRecipe.java:246)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.ReferenceRecipe.access$000(ReferenceRecipe.java:56)[12:org.apache.aries.blueprint.core:1.7.1]
at org.apache.aries.blueprint.container.ReferenceRecipe$ServiceDispatcher.call(ReferenceRecipe.java:306)[12:org.apache.aries.blueprint.core:1.7.1]
at Proxy1b555e87_bde0_4dff_b35e_897952a689f6.fromYangInstanceIdentifier(Unknown Source)
at org.opendaylight.ovsdb.southbound.InstanceIdentifierCodec.bindingDeserializer(InstanceIdentifierCodec.java:74)[308:org.opendaylight.ovsdb.southbound-impl:1.5.0.SNAPSHOT]
at org.opendaylight.ovsdb.southbound.InstanceIdentifierCodec.bindingDeserializerOrNull(InstanceIdentifierCodec.java:83)[308:org.opendaylight.ovsdb.southbound-impl:1.5.0.SNAPSHOT]
at org.opendaylight.ovsdb.southbound.SouthboundMapper.getInstanceIdentifier(SouthboundMapper.java:513)[308:org.opendaylight.ovsdb.southbound-impl:1.5.0.SNAPSHOT]
at org.opendaylight.ovsdb.southbound.OvsdbConnectionManager.getEntityFromConnectionInstance(OvsdbConnectionManager.java:513)[308:org.opendaylight.ovsdb.southbound-impl:1.5.0.SNAPSHOT]
at org.opendaylight.ovsdb.southbound.OvsdbConnectionManager.registerEntityForOwnership(OvsdbConnectionManager.java:531)[308:org.opendaylight.ovsdb.southbound-impl:1.5.0.SNAPSHOT]
at org.opendaylight.ovsdb.southbound.OvsdbConnectionManager.connected(OvsdbConnectionManager.java:115)[308:org.opendaylight.ovsdb.southbound-impl:1.5.0.SNAPSHOT]
at org.opendaylight.ovsdb.lib.impl.OvsdbConnectionService.lambda$notifyListenerForPassiveConnection$4(OvsdbConnectionService.java:527)[304:org.opendaylight.ovsdb.library:1.5.0.SNAPSHOT]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_121]
at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_121]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_121]
at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]
Caused by: java.lang.ClassFormatError: Duplicate interface name in class file Proxy6e855a6b_461a_4e31_8357_dde357a7212d
at java.lang.ClassLoader.defineClass1(Native Method)[:1.8.0_121]
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)[:1.8.0_121]
at org.apache.aries.proxy.impl.interfaces.ProxyClassLoader.createProxyClass(ProxyClassLoader.java:157)
... 30 more



 Comments   
Comment by Michael Vorburger [ 08/Jun/17 ]

Brady, I think it's great idea to have such "umbrella" type bugs for Karaf 4 specific exceptions seen in logs particular per a given distribution distribution (because there will be differences depending on installed features); seeing this one from you here for SFC just inspired me to create a similar one for netvirt, watch new NETVIRT-719.

It probably makes it easier to then have specific sub-issues for each kind of exception, and link them as "Depends on" to these kind of "umbrella" bugs:

> I get the below exceptions in these modules:
> Blueprint

That UnableToProxyException: java.lang.ClassFormatError: Duplicate interface name is the CONTROLLER-1540 old story... BUT the current working assumption is that this does not appear in Karaf 4 anymore, only in "old" Karaf 3 ones; I'm myself currently not seeing it in the netvirt K4 distribution anymore (but can see it in K3 of the same). Are you 100% sure you're still seeing that in SFC on k4, or could you have seen this in an older log? Is is reproducible, and happens directly on boot? (Maybe it's some sort of version mess up, with something in SFC still pulling an older version of Apache Aries?! Just a hunch.)

> OpenflowPlugin

FYI I've just filed new OPNFLWJAVA-84 in the openflowjava project about the same NPE.

> OVSDB

That's the UnableToProxyException, not OVSDB, agreed?

Comment by Michael Vorburger [ 08/Jun/17 ]

>> OVSDB
> That's the UnableToProxyException, not OVSDB, agreed?

In NETVIRT-719 logs I AM however hitting OVSDB-414 (but you don't show that, above).

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