[L2SWITCH-52] config-pusher exception in Helium SR4 Created: 24/Jul/15  Updated: 19/Oct/17  Resolved: 30/Jul/15

Status: Resolved
Project: l2switch
Component/s: General
Affects Version/s: unspecified
Fix Version/s: None

Type: Bug
Reporter: Luis Gomez Assignee: Ryan Goulding
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 4050-2nd-patch-karaf.log    
External issue ID: 4050

 Description   

We see this error while testing Helium SR4:

PRECONDITION:

1) Set following features in org.apache.karaf.features.cfg

featuresBoot=config,standard,region,package,kar,ssh,management,odl-integration-compatible-with-all,odl-l2switch-switch-ui

2) start controller with bin/karaf

ERROR:

2015-07-24 01:32:02,518 | ERROR | config-pusher | ConfigTransactionControllerImpl | 191 - org.opendaylight.controller.config-manager - 0.2.9.Helium-SR4_0 | Commit failed on ModuleIdentifier

{factoryName='arp-handler-impl', instanceName='arp-handler-impl'}

in transaction TransactionIdentifier

{name='ConfigTransaction-105-107'}

java.lang.IllegalArgumentException: Supplied Instance Identifier InstanceIdentifier

{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.l2switch.loopremover.rev140714.StpStatusAwareNodeConnector, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes, org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node, org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector, org.opendaylight.yang.gen.v1.urn.opendaylight.l2switch.loopremover.rev140714.StpStatusAwareNodeConnector]}

is not valid.
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:119)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext.getCodecContextNode(BindingCodecContext.java:108)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext$InstanceIdentifierCodec.serialize(BindingCodecContext.java:308)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext$InstanceIdentifierCodec.serialize(BindingCodecContext.java:303)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry.toYangInstanceIdentifier(BindingNormalizedNodeCodecRegistry.java:79)
at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toNormalized(BindingToNormalizedNodeCodec.java:50)
at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker.registerDataChangeListener(AbstractForwardedDataBroker.java:80)
at org.opendaylight.l2switch.arphandler.core.ProactiveFloodFlowWriter.registerAsDataChangeListener(ProactiveFloodFlowWriter.java:173)
at org.opendaylight.yang.gen.v1.urn.opendaylight.packet.arp.handler.impl.rev140528.ArpHandlerModule.createInstance(ArpHandlerModule.java:51)
at org.opendaylight.yang.gen.v1.urn.opendaylight.packet.arp.handler.impl.rev140528.AbstractArpHandlerModule.getInstance(AbstractArpHandlerModule.java:124)
at sun.reflect.GeneratedMethodAccessor36.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_79]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_79]
at org.opendaylight.controller.config.manager.impl.dependencyresolver.DependencyResolverManager$1.handleInvocation(DependencyResolverManager.java:152)
at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:70)
at com.sun.proxy.$Proxy68.getInstance(Unknown Source)
at org.opendaylight.controller.config.manager.impl.ConfigTransactionControllerImpl.secondPhaseCommit(ConfigTransactionControllerImpl.java:396)
at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.secondPhaseCommit(ConfigRegistryImpl.java:282)
at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.commitConfig(ConfigRegistryImpl.java:229)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_79]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_79]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_79]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_79]
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75)[:1.7.0_79]
at sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_79]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_79]
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279)[:1.7.0_79]
at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:193)[:1.7.0_79]
at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:175)[:1.7.0_79]
at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:117)[:1.7.0_79]
at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:54)[:1.7.0_79]
at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)[:1.7.0_79]
at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)[:1.7.0_79]
at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)[:1.7.0_79]
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)[:1.7.0_79]
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)[:1.7.0_79]
at com.sun.jmx.mbeanserver.MXBeanProxy$InvokeHandler.invoke(MXBeanProxy.java:150)[:1.7.0_79]
at com.sun.jmx.mbeanserver.MXBeanProxy.invoke(MXBeanProxy.java:167)[:1.7.0_79]
at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:252)[:1.7.0_79]
at com.sun.proxy.$Proxy29.commitConfig(Unknown Source)[141:org.opendaylight.controller.config-api:0.2.9.Helium-SR4_0]
at org.opendaylight.controller.config.util.ConfigRegistryJMXClient.commitConfig(ConfigRegistryJMXClient.java:102)[186:org.opendaylight.controller.config-util:0.2.9.Helium-SR4_0]
at org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider.commitTransaction(TransactionProvider.java:110)[194:org.opendaylight.controller.config-netconf-connector:0.2.9.Helium-SR4_0]
at org.opendaylight.controller.netconf.confignetconfconnector.operations.Commit.handleWithNoSubsequentOperations(Commit.java:55)[194:org.opendaylight.controller.config-netconf-connector:0.2.9.Helium-SR4_0]
at org.opendaylight.controller.netconf.util.mapping.AbstractLastNetconfOperation.handle(AbstractLastNetconfOperation.java:33)[193:org.opendaylight.controller.netconf-util:0.2.9.Helium-SR4_0]
at org.opendaylight.controller.netconf.util.mapping.AbstractNetconfOperation.handle(AbstractNetconfOperation.java:105)[193:org.opendaylight.controller.netconf-util:0.2.9.Helium-SR4_0]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.sendRequestGetResponseCheckIsOK(ConfigPusherImpl.java:288)[197:org.opendaylight.controller.config-persister-impl:0.2.9.Helium-SR4_0]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.pushConfig(ConfigPusherImpl.java:247)[197:org.opendaylight.controller.config-persister-impl:0.2.9.Helium-SR4_0]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.pushConfigWithConflictingVersionRetries(ConfigPusherImpl.java:136)[197:org.opendaylight.controller.config-persister-impl:0.2.9.Helium-SR4_0]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.internalPushConfigs(ConfigPusherImpl.java:109)[197:org.opendaylight.controller.config-persister-impl:0.2.9.Helium-SR4_0]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.process(ConfigPusherImpl.java:76)[197:org.opendaylight.controller.config-persister-impl:0.2.9.Helium-SR4_0]
at org.opendaylight.controller.netconf.persist.impl.osgi.ConfigPersisterActivator$InnerCustomizer$1.run(ConfigPersisterActivator.java:178)[197:org.opendaylight.controller.config-persister-impl:0.2.9.Helium-SR4_0]
at java.lang.Thread.run(Thread.java:745)[:1.7.0_79]



 Comments   
Comment by Colin Dixon [ 24/Jul/15 ]

Let's see if this fixes it:
https://git.opendaylight.org/gerrit/24528

Comment by Colin Dixon [ 24/Jul/15 ]

If that doesn't work, my next fix would be to surround this line in a try-catch and a loop with a sleep:
https://github.com/opendaylight/l2switch/blob/master/arphandler/implementation/src/main/java/org/opendaylight/l2switch/arphandler/core/ProactiveFloodFlowWriter.java#L173

Comment by Luis Gomez [ 24/Jul/15 ]

OK, I think I managed to reproduce tne issue consistently using SNAPSHOT distribution:

Just follow bug preconditions, the first time will be OK, then stop and start controller and the issue will pop up.

BR/Luis

Comment by Colin Dixon [ 24/Jul/15 ]

Right now if I use the patch distribution from here:
https://jenkins.opendaylight.org/releng/job/integration-patch-test-stable-helium/10/org.opendaylight.integration$distribution-karaf/artifact/org.opendaylight.integration/distribution-karaf/0.2.4-SNAPSHOT/distribution-karaf-0.2.4-SNAPSHOT.zip

Which is the integration distribution generated from this patch:
https://git.opendaylight.org/gerrit/#/c/24542/

I get two new exceptions, which are different:
2015-07-24 17:13:51,711 | WARN | config-pusher | DataObjectCodecContext | 184 - org.opendaylight.yangtools.binding-data-codec - 0.6.6.SNAPSHOT | Failed to load augmentation prototype for GeneratedTransferObject [packageName=org.opendaylight.yang.gen.v1.urn.opendaylight.l2switch.loopremover.rev140714, name=StpStatusAwareNodeConnector, comment=, annotations=[], implements=[Type (org.opendaylight.yangtools.yang.binding.DataObject), Type (org.opendaylight.yangtools.yang.binding.Augmentation), GeneratedType [packageName=org.opendaylight.yang.gen.v1.urn.opendaylight.l2switch.loopremover.rev140714, name=StpStatusNodeConnector, parent=null, comment=null, annotations=[], enclosedTypes=[], enumerations=[], constants=[Constant [type=Type (org.opendaylight.yangtools.yang.common.QName), name=QNAME, value=org.opendaylight.yangtools.yang.common.QName.create("urn:opendaylight:l2switch:loopremover","2014-07-14","stp-status-node-connector");, definingType=org.opendaylight.yang.gen.v1.urn.opendaylight.l2switch.loopremover.rev140714.StpStatusNodeConnector]], methodSignatures=[MethodSignatureImpl [name=getStatus, comment=, definingType=org.opendaylight.yang.gen.v1.urn.opendaylight.l2switch.loopremover.rev140714.StpStatusNodeConnector, returnType=Enumeration [packageName=org.opendaylight.yang.gen.v1.urn.opendaylight.l2switch.loopremover.rev140714, definingType= null, name=StpStatus, values=[EnumPair [name=Forwarding, value=1], EnumPair [name=Discarding, value=2]]], params=[], annotations=[]]]]], enclosedTypes=[], constants=[], enumerations=[], properties=, methods=[]]
java.lang.ClassNotFoundException: org.opendaylight.yang.gen.v1.urn.opendaylight.l2switch.loopremover.rev140714.StpStatusAwareNodeConnector
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)[:1.7.0_51]
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)[:1.7.0_51]
at java.security.AccessController.doPrivileged(Native Method)[:1.7.0_51]
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)[:1.7.0_51]
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)[:1.7.0_51]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)[:1.7.0_51]
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)[:1.7.0_51]
at org.eclipse.core.runtime.internal.adaptor.ContextFinder.loadClass(ContextFinder.java:131)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)[:1.7.0_51]
at org.opendaylight.yangtools.yang.binding.util.ClassLoaderUtils.loadClass(ClassLoaderUtils.java:139)
at org.opendaylight.yangtools.yang.binding.util.ClassLoaderUtils.loadClassWithTCCL(ClassLoaderUtils.java:155)
at org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy$TCCLClassLoadingStrategy.loadClass(GeneratedClassLoadingStrategy.java:44)
at org.opendaylight.yangtools.sal.binding.generator.impl.ModuleInfoBackedContext.loadClass(ModuleInfoBackedContext.java:72)
at org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy.loadClass(GeneratedClassLoadingStrategy.java:27)
at org.opendaylight.yangtools.binding.data.codec.impl.DataObjectCodecContext.getAugmentationPrototype(DataObjectCodecContext.java:256)
at org.opendaylight.yangtools.binding.data.codec.impl.DataObjectCodecContext.<init>(DataObjectCodecContext.java:109)
at org.opendaylight.yangtools.binding.data.codec.impl.ListNodeCodecContext.<init>(ListNodeCodecContext.java:35)
at org.opendaylight.yangtools.binding.data.codec.impl.DataContainerCodecPrototype.createInstance(DataContainerCodecPrototype.java:133)
at org.opendaylight.yangtools.binding.data.codec.impl.DataContainerCodecPrototype.get(DataContainerCodecPrototype.java:118)
at org.opendaylight.yangtools.binding.data.codec.impl.DataObjectCodecContext.getIdentifierChild(DataObjectCodecContext.java:178)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext.getCodecContextNode(BindingCodecContext.java:107)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext$InstanceIdentifierCodec.serialize(BindingCodecContext.java:308)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext$InstanceIdentifierCodec.serialize(BindingCodecContext.java:303)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry.toYangInstanceIdentifier(BindingNormalizedNodeCodecRegistry.java:79)
at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toNormalized(BindingToNormalizedNodeCodec.java:50)
at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker.registerDataChangeListener(AbstractForwardedDataBroker.java:80)
at org.opendaylight.controller.sal.compatibility.AbstractDataChangeListener.registrationListener(AbstractDataChangeListener.java:115)
at org.opendaylight.controller.sal.compatibility.AbstractDataChangeListener.<init>(AbstractDataChangeListener.java:39)
at org.opendaylight.controller.sal.compatibility.NCDataChangeListener.<init>(NCDataChangeListener.java:30)
at org.opendaylight.controller.sal.compatibility.SalCompatibilityProvider.onSessionInitiated(SalCompatibilityProvider.java:74)
at org.opendaylight.controller.md.sal.binding.util.BindingContextUtils.createProviderContextAndInitialize(BindingContextUtils.java:57)
at org.opendaylight.controller.sal.binding.impl.RootBindingAwareBroker.registerProvider(RootBindingAwareBroker.java:146)
at org.opendaylight.controller.sal.compatibility.ComponentActivator.setBroker(ComponentActivator.java:97)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_51]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_51]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_51]
at org.apache.felix.dm.InvocationUtil.invokeMethod(InvocationUtil.java:111)
at org.apache.felix.dm.InvocationUtil.invokeCallbackMethod(InvocationUtil.java:66)
at org.apache.felix.dm.impl.ComponentImpl.invokeCallbackMethod(ComponentImpl.java:688)
at org.apache.felix.dm.impl.dependencies.ServiceDependencyImpl.invoke(ServiceDependencyImpl.java:704)
at org.apache.felix.dm.impl.dependencies.ServiceDependencyImpl.invokeAdded(ServiceDependencyImpl.java:544)
at org.apache.felix.dm.impl.dependencies.ServiceDependencyImpl.invokeAdded(ServiceDependencyImpl.java:1074)
at org.apache.felix.dm.impl.ComponentImpl.configureServices(ComponentImpl.java:1010)
at org.apache.felix.dm.impl.ComponentImpl.configureService(ComponentImpl.java:839)
at org.apache.felix.dm.impl.ComponentImpl.activateService(ComponentImpl.java:603)
at org.apache.felix.dm.impl.ComponentImpl.access$000(ComponentImpl.java:52)
at org.apache.felix.dm.impl.ComponentImpl$3.run(ComponentImpl.java:156)
at org.apache.felix.dm.impl.SerialExecutor$1.run(SerialExecutor.java:47)
at org.apache.felix.dm.impl.SerialExecutor.scheduleNext(SerialExecutor.java:84)
at org.apache.felix.dm.impl.SerialExecutor.execute(SerialExecutor.java:68)
at org.apache.felix.dm.impl.ComponentImpl.calculateStateChanges(ComponentImpl.java:231)
at org.apache.felix.dm.impl.ComponentImpl.dependencyAvailable(ComponentImpl.java:358)
at org.apache.felix.dm.impl.dependencies.ServiceDependencyImpl.addedService(ServiceDependencyImpl.java:464)
at org.apache.felix.dm.tracker.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1325)
at org.apache.felix.dm.tracker.AbstractTracked.trackAdding(AbstractTracked.java:290)
at org.apache.felix.dm.tracker.AbstractTracked.track(AbstractTracked.java:236)
at org.apache.felix.dm.tracker.ServiceTracker$Tracked.serviceChangedHideAspects(ServiceTracker.java:1206)
at org.apache.felix.dm.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1101)
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:451)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.opendaylight.controller.config.manager.impl.osgi.BeanToOsgiServiceManager$OsgiRegistration.registerToSR(BeanToOsgiServiceManager.java:79)
at org.opendaylight.controller.config.manager.impl.osgi.BeanToOsgiServiceManager$OsgiRegistration.<init>(BeanToOsgiServiceManager.java:68)
at org.opendaylight.controller.config.manager.impl.osgi.BeanToOsgiServiceManager.registerToOsgi(BeanToOsgiServiceManager.java:41)
at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.secondPhaseCommit(ConfigRegistryImpl.java:366)
at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.commitConfig(ConfigRegistryImpl.java:229)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_51]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_51]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_51]
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75)[:1.7.0_51]
at sun.reflect.GeneratedMethodAccessor187.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_51]
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279)[:1.7.0_51]
at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:193)[:1.7.0_51]
at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:175)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:117)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:54)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)[:1.7.0_51]
at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)[:1.7.0_51]
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)[:1.7.0_51]
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MXBeanProxy$InvokeHandler.invoke(MXBeanProxy.java:150)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MXBeanProxy.invoke(MXBeanProxy.java:167)[:1.7.0_51]
at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:252)[:1.7.0_51]
at com.sun.proxy.$Proxy34.commitConfig(Unknown Source)[141:org.opendaylight.controller.config-api:0.2.9.SNAPSHOT]
at org.opendaylight.controller.config.util.ConfigRegistryJMXClient.commitConfig(ConfigRegistryJMXClient.java:102)[186:org.opendaylight.controller.config-util:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider.commitTransaction(TransactionProvider.java:110)[194:org.opendaylight.controller.config-netconf-connector:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.confignetconfconnector.operations.Commit.handleWithNoSubsequentOperations(Commit.java:55)[194:org.opendaylight.controller.config-netconf-connector:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.util.mapping.AbstractLastNetconfOperation.handle(AbstractLastNetconfOperation.java:33)[193:org.opendaylight.controller.netconf-util:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.util.mapping.AbstractNetconfOperation.handle(AbstractNetconfOperation.java:105)[193:org.opendaylight.controller.netconf-util:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.sendRequestGetResponseCheckIsOK(ConfigPusherImpl.java:288)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.pushConfig(ConfigPusherImpl.java:247)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.pushConfigWithConflictingVersionRetries(ConfigPusherImpl.java:136)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.internalPushConfigs(ConfigPusherImpl.java:109)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.process(ConfigPusherImpl.java:76)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.osgi.ConfigPersisterActivator$InnerCustomizer$1.run(ConfigPersisterActivator.java:178)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at java.lang.Thread.run(Thread.java:744)[:1.7.0_51]
2015-07-24 17:13:51,784 | WARN | config-pusher | DataObjectCodecContext | 184 - org.opendaylight.yangtools.binding-data-codec - 0.6.6.SNAPSHOT | Failed to load augmentation prototype for GeneratedTransferObject [packageName=org.opendaylight.yang.gen.v1.urn.opendaylight.address.tracker.rev140617, name=AddressCapableNodeConnector, comment=, annotations=[], implements=[Type (org.opendaylight.yangtools.yang.binding.DataObject), Type (org.opendaylight.yangtools.yang.binding.Augmentation), GeneratedType [packageName=org.opendaylight.yang.gen.v1.urn.opendaylight.address.tracker.rev140617, name=AddressNodeConnector, parent=null, comment=null, annotations=[], enclosedTypes=[], enumerations=[], constants=[Constant [type=Type (org.opendaylight.yangtools.yang.common.QName), name=QNAME, value=org.opendaylight.yangtools.yang.common.QName.create("urn:opendaylight:address-tracker","2014-06-17","address-node-connector");, definingType=org.opendaylight.yang.gen.v1.urn.opendaylight.address.tracker.rev140617.AddressNodeConnector]], methodSignatures=[MethodSignatureImpl [name=getAddresses, comment=null, definingType=org.opendaylight.yang.gen.v1.urn.opendaylight.address.tracker.rev140617.AddressNodeConnector, returnType=Type (java.util.List), params=[], annotations=[]]]]], enclosedTypes=[], constants=[], enumerations=[], properties=, methods=[]]
java.lang.ClassNotFoundException: org.opendaylight.yang.gen.v1.urn.opendaylight.address.tracker.rev140617.AddressCapableNodeConnector
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)[:1.7.0_51]
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)[:1.7.0_51]
at java.security.AccessController.doPrivileged(Native Method)[:1.7.0_51]
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)[:1.7.0_51]
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)[:1.7.0_51]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)[:1.7.0_51]
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)[:1.7.0_51]
at org.eclipse.core.runtime.internal.adaptor.ContextFinder.loadClass(ContextFinder.java:131)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)[:1.7.0_51]
at org.opendaylight.yangtools.yang.binding.util.ClassLoaderUtils.loadClass(ClassLoaderUtils.java:139)
at org.opendaylight.yangtools.yang.binding.util.ClassLoaderUtils.loadClassWithTCCL(ClassLoaderUtils.java:155)
at org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy$TCCLClassLoadingStrategy.loadClass(GeneratedClassLoadingStrategy.java:44)
at org.opendaylight.yangtools.sal.binding.generator.impl.ModuleInfoBackedContext.loadClass(ModuleInfoBackedContext.java:72)
at org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy.loadClass(GeneratedClassLoadingStrategy.java:27)
at org.opendaylight.yangtools.binding.data.codec.impl.DataObjectCodecContext.getAugmentationPrototype(DataObjectCodecContext.java:256)
at org.opendaylight.yangtools.binding.data.codec.impl.DataObjectCodecContext.<init>(DataObjectCodecContext.java:109)
at org.opendaylight.yangtools.binding.data.codec.impl.ListNodeCodecContext.<init>(ListNodeCodecContext.java:35)
at org.opendaylight.yangtools.binding.data.codec.impl.DataContainerCodecPrototype.createInstance(DataContainerCodecPrototype.java:133)
at org.opendaylight.yangtools.binding.data.codec.impl.DataContainerCodecPrototype.get(DataContainerCodecPrototype.java:118)
at org.opendaylight.yangtools.binding.data.codec.impl.DataObjectCodecContext.getIdentifierChild(DataObjectCodecContext.java:178)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext.getCodecContextNode(BindingCodecContext.java:107)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext$InstanceIdentifierCodec.serialize(BindingCodecContext.java:308)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext$InstanceIdentifierCodec.serialize(BindingCodecContext.java:303)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry.toYangInstanceIdentifier(BindingNormalizedNodeCodecRegistry.java:79)
at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toNormalized(BindingToNormalizedNodeCodec.java:50)
at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker.registerDataChangeListener(AbstractForwardedDataBroker.java:80)
at org.opendaylight.controller.sal.compatibility.AbstractDataChangeListener.registrationListener(AbstractDataChangeListener.java:115)
at org.opendaylight.controller.sal.compatibility.AbstractDataChangeListener.<init>(AbstractDataChangeListener.java:39)
at org.opendaylight.controller.sal.compatibility.NCDataChangeListener.<init>(NCDataChangeListener.java:30)
at org.opendaylight.controller.sal.compatibility.SalCompatibilityProvider.onSessionInitiated(SalCompatibilityProvider.java:74)
at org.opendaylight.controller.md.sal.binding.util.BindingContextUtils.createProviderContextAndInitialize(BindingContextUtils.java:57)
at org.opendaylight.controller.sal.binding.impl.RootBindingAwareBroker.registerProvider(RootBindingAwareBroker.java:146)
at org.opendaylight.controller.sal.compatibility.ComponentActivator.setBroker(ComponentActivator.java:97)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_51]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_51]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_51]
at org.apache.felix.dm.InvocationUtil.invokeMethod(InvocationUtil.java:111)
at org.apache.felix.dm.InvocationUtil.invokeCallbackMethod(InvocationUtil.java:66)
at org.apache.felix.dm.impl.ComponentImpl.invokeCallbackMethod(ComponentImpl.java:688)
at org.apache.felix.dm.impl.dependencies.ServiceDependencyImpl.invoke(ServiceDependencyImpl.java:704)
at org.apache.felix.dm.impl.dependencies.ServiceDependencyImpl.invokeAdded(ServiceDependencyImpl.java:544)
at org.apache.felix.dm.impl.dependencies.ServiceDependencyImpl.invokeAdded(ServiceDependencyImpl.java:1074)
at org.apache.felix.dm.impl.ComponentImpl.configureServices(ComponentImpl.java:1010)
at org.apache.felix.dm.impl.ComponentImpl.configureService(ComponentImpl.java:839)
at org.apache.felix.dm.impl.ComponentImpl.activateService(ComponentImpl.java:603)
at org.apache.felix.dm.impl.ComponentImpl.access$000(ComponentImpl.java:52)
at org.apache.felix.dm.impl.ComponentImpl$3.run(ComponentImpl.java:156)
at org.apache.felix.dm.impl.SerialExecutor$1.run(SerialExecutor.java:47)
at org.apache.felix.dm.impl.SerialExecutor.scheduleNext(SerialExecutor.java:84)
at org.apache.felix.dm.impl.SerialExecutor.execute(SerialExecutor.java:68)
at org.apache.felix.dm.impl.ComponentImpl.calculateStateChanges(ComponentImpl.java:231)
at org.apache.felix.dm.impl.ComponentImpl.dependencyAvailable(ComponentImpl.java:358)
at org.apache.felix.dm.impl.dependencies.ServiceDependencyImpl.addedService(ServiceDependencyImpl.java:464)
at org.apache.felix.dm.tracker.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1325)
at org.apache.felix.dm.tracker.AbstractTracked.trackAdding(AbstractTracked.java:290)
at org.apache.felix.dm.tracker.AbstractTracked.track(AbstractTracked.java:236)
at org.apache.felix.dm.tracker.ServiceTracker$Tracked.serviceChangedHideAspects(ServiceTracker.java:1206)
at org.apache.felix.dm.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1101)
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:451)[org.eclipse.osgi-3.8.2.v20130124-134944.jar:]
at org.opendaylight.controller.config.manager.impl.osgi.BeanToOsgiServiceManager$OsgiRegistration.registerToSR(BeanToOsgiServiceManager.java:79)
at org.opendaylight.controller.config.manager.impl.osgi.BeanToOsgiServiceManager$OsgiRegistration.<init>(BeanToOsgiServiceManager.java:68)
at org.opendaylight.controller.config.manager.impl.osgi.BeanToOsgiServiceManager.registerToOsgi(BeanToOsgiServiceManager.java:41)
at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.secondPhaseCommit(ConfigRegistryImpl.java:366)
at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.commitConfig(ConfigRegistryImpl.java:229)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_51]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_51]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_51]
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75)[:1.7.0_51]
at sun.reflect.GeneratedMethodAccessor187.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_51]
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279)[:1.7.0_51]
at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:193)[:1.7.0_51]
at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:175)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:117)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:54)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)[:1.7.0_51]
at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)[:1.7.0_51]
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)[:1.7.0_51]
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MXBeanProxy$InvokeHandler.invoke(MXBeanProxy.java:150)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MXBeanProxy.invoke(MXBeanProxy.java:167)[:1.7.0_51]
at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:252)[:1.7.0_51]
at com.sun.proxy.$Proxy34.commitConfig(Unknown Source)[141:org.opendaylight.controller.config-api:0.2.9.SNAPSHOT]
at org.opendaylight.controller.config.util.ConfigRegistryJMXClient.commitConfig(ConfigRegistryJMXClient.java:102)[186:org.opendaylight.controller.config-util:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider.commitTransaction(TransactionProvider.java:110)[194:org.opendaylight.controller.config-netconf-connector:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.confignetconfconnector.operations.Commit.handleWithNoSubsequentOperations(Commit.java:55)[194:org.opendaylight.controller.config-netconf-connector:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.util.mapping.AbstractLastNetconfOperation.handle(AbstractLastNetconfOperation.java:33)[193:org.opendaylight.controller.netconf-util:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.util.mapping.AbstractNetconfOperation.handle(AbstractNetconfOperation.java:105)[193:org.opendaylight.controller.netconf-util:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.sendRequestGetResponseCheckIsOK(ConfigPusherImpl.java:288)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.pushConfig(ConfigPusherImpl.java:247)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.pushConfigWithConflictingVersionRetries(ConfigPusherImpl.java:136)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.internalPushConfigs(ConfigPusherImpl.java:109)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.process(ConfigPusherImpl.java:76)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.osgi.ConfigPersisterActivator$InnerCustomizer$1.run(ConfigPersisterActivator.java:178)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at java.lang.Thread.run(Thread.java:744)[:1.7.0_51]

Comment by Colin Dixon [ 24/Jul/15 ]

As a note, when I get the ClassNotFound version, RESTCONF continues to work.

Comment by Colin Dixon [ 24/Jul/15 ]

Attachment 4050-2nd-patch-karaf.log has been added with description: 4050-2nd-patch-karaf.log

Comment by Colin Dixon [ 24/Jul/15 ]

The previous attachment is logs showing the error that Luis and I both see when testing the "patch" distribution for my 2nd patch. The key exception is:

2015-07-24 17:53:34,615 | ERROR | config-pusher | ConfigTransactionControllerImpl | 191 - org.opendaylight.controller.config-manager - 0.2.9.SNAPSHOT | Commit failed on ModuleIdentifier

{factoryName='host-tracker-impl', instanceName='host-tracker-impl'} in transaction TransactionIdentifier{name='ConfigTransaction-105-107'}
java.lang.IllegalArgumentException: Supplied Instance Identifier InstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.address.tracker.rev140617.address.node.connector.Addresses, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes, org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node, org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector, org.opendaylight.yang.gen.v1.urn.opendaylight.address.tracker.rev140617.AddressCapableNodeConnector, org.opendaylight.yang.gen.v1.urn.opendaylight.address.tracker.rev140617.address.node.connector.Addresses]} is not valid.
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:119)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext.getCodecContextNode(BindingCodecContext.java:108)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext$InstanceIdentifierCodec.serialize(BindingCodecContext.java:308)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext$InstanceIdentifierCodec.serialize(BindingCodecContext.java:303)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry.toYangInstanceIdentifier(BindingNormalizedNodeCodecRegistry.java:79)
at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toNormalized(BindingToNormalizedNodeCodec.java:50)
at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker.registerDataChangeListener(AbstractForwardedDataBroker.java:80)
at org.opendaylight.l2switch.hosttracker.plugin.internal.HostTrackerImpl.registerAsDataChangeListener(HostTrackerImpl.java:92)
at org.opendaylight.yang.gen.v1.urn.opendaylight.l2switch.host.tracker.impl.rev140528.HostTrackerModule.createInstance(HostTrackerModule.java:37)
at org.opendaylight.yang.gen.v1.urn.opendaylight.l2switch.host.tracker.impl.rev140528.AbstractHostTrackerModule.getInstance(AbstractHostTrackerModule.java:87)
at sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_51]
at org.opendaylight.controller.config.manager.impl.dependencyresolver.DependencyResolverManager$1.handleInvocation(DependencyResolverManager.java:152)
at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:70)
at com.sun.proxy.$Proxy92.getInstance(Unknown Source)
at org.opendaylight.controller.config.manager.impl.ConfigTransactionControllerImpl.secondPhaseCommit(ConfigTransactionControllerImpl.java:396)
at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.secondPhaseCommit(ConfigRegistryImpl.java:282)
at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.commitConfig(ConfigRegistryImpl.java:229)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_51]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_51]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_51]
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75)[:1.7.0_51]
at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_51]
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279)[:1.7.0_51]
at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:193)[:1.7.0_51]
at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:175)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:117)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:54)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)[:1.7.0_51]
at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)[:1.7.0_51]
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)[:1.7.0_51]
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MXBeanProxy$InvokeHandler.invoke(MXBeanProxy.java:150)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MXBeanProxy.invoke(MXBeanProxy.java:167)[:1.7.0_51]
at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:252)[:1.7.0_51]
at com.sun.proxy.$Proxy59.commitConfig(Unknown Source)[141:org.opendaylight.controller.config-api:0.2.9.SNAPSHOT]
at org.opendaylight.controller.config.util.ConfigRegistryJMXClient.commitConfig(ConfigRegistryJMXClient.java:102)[186:org.opendaylight.controller.config-util:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider.commitTransaction(TransactionProvider.java:110)[194:org.opendaylight.controller.config-netconf-connector:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.confignetconfconnector.operations.Commit.handleWithNoSubsequentOperations(Commit.java:55)[194:org.opendaylight.controller.config-netconf-connector:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.util.mapping.AbstractLastNetconfOperation.handle(AbstractLastNetconfOperation.java:33)[193:org.opendaylight.controller.netconf-util:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.util.mapping.AbstractNetconfOperation.handle(AbstractNetconfOperation.java:105)[193:org.opendaylight.controller.netconf-util:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.sendRequestGetResponseCheckIsOK(ConfigPusherImpl.java:288)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.pushConfig(ConfigPusherImpl.java:247)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.pushConfigWithConflictingVersionRetries(ConfigPusherImpl.java:136)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.internalPushConfigs(ConfigPusherImpl.java:109)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.process(ConfigPusherImpl.java:76)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.osgi.ConfigPersisterActivator$InnerCustomizer$1.run(ConfigPersisterActivator.java:178)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at java.lang.Thread.run(Thread.java:744)[:1.7.0_51]
2015-07-24 17:53:34,623 | ERROR | config-pusher | ConfigRegistryImpl | 191 - org.opendaylight.controller.config-manager - 0.2.9.SNAPSHOT | Configuration Transaction failed on 2PC, server is unhealthy
java.lang.IllegalStateException: Error - getInstance() failed for ModuleIdentifier{factoryName='host-tracker-impl', instanceName='host-tracker-impl'}

in transaction TransactionIdentifier

{name='ConfigTransaction-105-107'}

at org.opendaylight.controller.config.manager.impl.ConfigTransactionControllerImpl.secondPhaseCommit(ConfigTransactionControllerImpl.java:402)
at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.secondPhaseCommit(ConfigRegistryImpl.java:282)
at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.commitConfig(ConfigRegistryImpl.java:229)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_51]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_51]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_51]
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75)[:1.7.0_51]
at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_51]
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279)[:1.7.0_51]
at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:193)[:1.7.0_51]
at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:175)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:117)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:54)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)[:1.7.0_51]
at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)[:1.7.0_51]
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)[:1.7.0_51]
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MXBeanProxy$InvokeHandler.invoke(MXBeanProxy.java:150)[:1.7.0_51]
at com.sun.jmx.mbeanserver.MXBeanProxy.invoke(MXBeanProxy.java:167)[:1.7.0_51]
at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:252)[:1.7.0_51]
at com.sun.proxy.$Proxy59.commitConfig(Unknown Source)[141:org.opendaylight.controller.config-api:0.2.9.SNAPSHOT]
at org.opendaylight.controller.config.util.ConfigRegistryJMXClient.commitConfig(ConfigRegistryJMXClient.java:102)[186:org.opendaylight.controller.config-util:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider.commitTransaction(TransactionProvider.java:110)[194:org.opendaylight.controller.config-netconf-connector:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.confignetconfconnector.operations.Commit.handleWithNoSubsequentOperations(Commit.java:55)[194:org.opendaylight.controller.config-netconf-connector:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.util.mapping.AbstractLastNetconfOperation.handle(AbstractLastNetconfOperation.java:33)[193:org.opendaylight.controller.netconf-util:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.util.mapping.AbstractNetconfOperation.handle(AbstractNetconfOperation.java:105)[193:org.opendaylight.controller.netconf-util:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.sendRequestGetResponseCheckIsOK(ConfigPusherImpl.java:288)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.pushConfig(ConfigPusherImpl.java:247)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.pushConfigWithConflictingVersionRetries(ConfigPusherImpl.java:136)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.internalPushConfigs(ConfigPusherImpl.java:109)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.ConfigPusherImpl.process(ConfigPusherImpl.java:76)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at org.opendaylight.controller.netconf.persist.impl.osgi.ConfigPersisterActivator$InnerCustomizer$1.run(ConfigPersisterActivator.java:178)[197:org.opendaylight.controller.config-persister-impl:0.2.9.SNAPSHOT]
at java.lang.Thread.run(Thread.java:744)[:1.7.0_51]
Caused by: java.lang.IllegalArgumentException: Supplied Instance Identifier InstanceIdentifier

{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.address.tracker.rev140617.address.node.connector.Addresses, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes, org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node, org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector, org.opendaylight.yang.gen.v1.urn.opendaylight.address.tracker.rev140617.AddressCapableNodeConnector, org.opendaylight.yang.gen.v1.urn.opendaylight.address.tracker.rev140617.address.node.connector.Addresses]}

is not valid.
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:119)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext.getCodecContextNode(BindingCodecContext.java:108)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext$InstanceIdentifierCodec.serialize(BindingCodecContext.java:308)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext$InstanceIdentifierCodec.serialize(BindingCodecContext.java:303)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry.toYangInstanceIdentifier(BindingNormalizedNodeCodecRegistry.java:79)
at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toNormalized(BindingToNormalizedNodeCodec.java:50)
at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker.registerDataChangeListener(AbstractForwardedDataBroker.java:80)
at org.opendaylight.l2switch.hosttracker.plugin.internal.HostTrackerImpl.registerAsDataChangeListener(HostTrackerImpl.java:92)
at org.opendaylight.yang.gen.v1.urn.opendaylight.l2switch.host.tracker.impl.rev140528.HostTrackerModule.createInstance(HostTrackerModule.java:37)
at org.opendaylight.yang.gen.v1.urn.opendaylight.l2switch.host.tracker.impl.rev140528.AbstractHostTrackerModule.getInstance(AbstractHostTrackerModule.java:87)
at sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_51]
at org.opendaylight.controller.config.manager.impl.dependencyresolver.DependencyResolverManager$1.handleInvocation(DependencyResolverManager.java:152)
at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:70)
at com.sun.proxy.$Proxy92.getInstance(Unknown Source)
at org.opendaylight.controller.config.manager.impl.ConfigTransactionControllerImpl.secondPhaseCommit(ConfigTransactionControllerImpl.java:396)
... 36 more

Comment by Colin Dixon [ 27/Jul/15 ]

Even after adding a required capability for the model that defines StpStatusAwareNodeConnector (which should have made it immediately available) and waiting for up to 120 second while trying to get the data change listener to come up (this patch: https://git.opendaylight.org/gerrit/#/c/24547/), I'm still seeing this.

This seems like it has to be a bug in the config subsystem, since I have this line in the intial config for the arphandler:
<capability>urn:opendaylight:l2switch:loopremover?module=stp-status-aware-node-connector&revision=2014-07-14</capability>

java.lang.IllegalArgumentException: Supplied Instance Identifier InstanceIdentifier

{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.l2switch.loopremover.rev140714.StpStatusAwareNodeConnector, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes, org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node, org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector, org.opendaylight.yang.gen.v1.urn.opendaylight.l2switch.loopremover.rev140714.StpStatusAwareNodeConnector]}

is not valid. Last valid node was ListNodeCodecContext [interface org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector]
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:119)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext.getCodecContextNode(BindingCodecContext.java:109)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext$InstanceIdentifierCodec.serialize(BindingCodecContext.java:309)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingCodecContext$InstanceIdentifierCodec.serialize(BindingCodecContext.java:304)
at org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry.toYangInstanceIdentifier(BindingNormalizedNodeCodecRegistry.java:79)
at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toNormalized(BindingToNormalizedNodeCodec.java:50)
at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker.registerDataChangeListener(AbstractForwardedDataBroker.java:80)
at org.opendaylight.l2switch.arphandler.core.ProactiveFloodFlowWriter.registerAsDataChangeListener(ProactiveFloodFlowWriter.java:189)
at org.opendaylight.yang.gen.v1.urn.opendaylight.packet.arp.handler.impl.rev140528.ArpHandlerModule.createInstance(ArpHandlerModule.java:51)
at org.opendaylight.yang.gen.v1.urn.opendaylight.packet.arp.handler.impl.rev140528.AbstractArpHandlerModule.getInstance(AbstractArpHandlerModule.java:124)

Comment by Colin Dixon [ 27/Jul/15 ]

Luis seems to be have found the patch causing the issue. Though it may just be exposing a bug elsewhere. I rebuilt the sal-dom-broker project without this patch:
https://git.opendaylight.org/gerrit/#/c/20907/

The result is interesting. It took nearly 9 minutes to load odl-integration-compatible-with-all and odl-l2switch-switch-ui (vs. only a few minutes before), but when it came up, things worked.

I repeated that by shutting down the controller (that took forever as well) and then rebooted it (again forever), but everything worked. That does give us a very solid lead to go investigate.

Comment by Colin Dixon [ 30/Jul/15 ]

https://git.opendaylight.org/gerrit/#/c/24589/

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