[YANGTOOLS-215] Exception after try read augmentation Created: 16/Jul/14 Updated: 10/Apr/22 Resolved: 28/Jul/14 |
|
| Status: | Resolved |
| Project: | yangtools |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | ||
| Reporter: | Robert Gallas | Assignee: | Tony Tkacik |
| Resolution: | Won't Do | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: Windows |
||
| External issue ID: | 1375 |
| Description |
|
In previous code due to classloader issue I have to read augmented path prior to using augmentation. Code is proprietary. Log snapshot provided. now trying to read augmented path thorws exception. Code to use to read: Exception: at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toNormalizedAugmented(BindingToNormalizedNodeCodec.java:304) ~[na:na] at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toNormalized(BindingToNormalizedNodeCodec.java:78) ~[na:na] at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedTransaction.doRead(AbstractForwardedTransaction.java:59) ~[na:na] at org.opendaylight.controller.md.sal.binding.impl.ForwardedBackwardsCompatibleDataBroker$ForwardedBackwardsCompatibleTransacion.readOperationalData(ForwardedBackwardsCompatibleDataBroker.java:294) ~[na:na] at org.opendaylight.controller.md.sal.binding.impl.ForwardedBackwardsCompatibleDataBroker$ForwardedBackwardsCompatibleTransacion.readOperationalData(ForwardedBackwardsCompatibleDataBroker.java:188) ~[na:na] at org.opendaylight.controller.md.sal.binding.impl.ForwardedBackwardsCompatibleDataBroker.readOperationalData(ForwardedBackwardsCompatibleDataBroker.java:86) ~[na:na] at org.opendaylight.controller.md.sal.binding.util.AbstractBindingSalConsumerInstance.readOperationalData(AbstractBindingSalConsumerInstance.java:98) ~[na:na] at org.opendaylight.controller.XXXX.device.app.impl.handlers.ServiceXXXXListener.init(ServiceXXXXListener.java:35) ~[na:na] at org.opendaylight.controller.XXXX.device.app.impl.XXXXDeviceAppImpl.onSessionInitiated(XXXXDeviceAppImpl.java:54) ~[na:na] at org.opendaylight.controller.md.sal.binding.util.BindingContextUtils.createProviderContextAndInitialize(BindingContextUtils.java:57) ~[na:na] at org.opendaylight.controller.sal.binding.impl.RootBindingAwareBroker.registerProvider(RootBindingAwareBroker.java:146) ~[na:na] at org.opendaylight.controller.config.yang.XXXX.device.app.impl.XXXXDeviceAppImplModule.createInstance(XXXXDeviceAppImplModule.java:58) ~[na:na] at org.opendaylight.controller.config.yang.XXXX.device.app.impl.AbstractXXXXDeviceAppImplModule.getInstance(AbstractXXXXDeviceAppImplModule.java:86) ~[na:na] at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_25] at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_25] at org.opendaylight.controller.config.manager.impl.dependencyresolver.DependencyResolverManager$1.handleInvocation(DependencyResolverManager.java:152) ~[na:na] at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:70) ~[na:na] at com.sun.proxy.$Proxy8.getInstance(Unknown Source) ~[na:na] at org.opendaylight.controller.config.manager.impl.ConfigTransactionControllerImpl.secondPhaseCommit(ConfigTransactionControllerImpl.java:396) ~[na:na] at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.secondPhaseCommit(ConfigRegistryImpl.java:282) ~[na:na] at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.commitConfig(ConfigRegistryImpl.java:229) ~[na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_25] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_25] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_25] at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_25] at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75) ~[na:1.7.0_25] at sun.reflect.GeneratedMethodAccessor155.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_25] at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_25] at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:193) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:175) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:117) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:54) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252) ~[na:1.7.0_25] at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.MXBeanProxy$InvokeHandler.invoke(MXBeanProxy.java:150) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.MXBeanProxy.invoke(MXBeanProxy.java:167) ~[na:1.7.0_25] at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:252) ~[na:1.7.0_25] at com.sun.proxy.$Proxy90.commitConfig(Unknown Source) ~[na:na] at org.opendaylight.controller.config.util.ConfigRegistryJMXClient.commitConfig(ConfigRegistryJMXClient.java:102) ~[na:na] at org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider.commitTransaction(TransactionProvider.java:110) ~[na:na] at org.opendaylight.controller.netconf.confignetconfconnector.operations.Commit.handleWithNoSubsequentOperations(Commit.java:55) ~[na:na] at org.opendaylight.controller.netconf.util.mapping.AbstractLastNetconfOperation.handle(AbstractLastNetconfOperation.java:33) ~[na:na] at org.opendaylight.controller.netconf.util.mapping.AbstractNetconfOperation.handle(AbstractNetconfOperation.java:105) ~[na:na] at org.opendaylight.controller.netconf.persist.impl.ConfigPusher.sendRequestGetResponseCheckIsOK(ConfigPusher.java:243) ~[na:na] at org.opendaylight.controller.netconf.persist.impl.ConfigPusher.pushConfig(ConfigPusher.java:202) ~[na:na] at org.opendaylight.controller.netconf.persist.impl.ConfigPusher.pushConfigWithConflictingVersionRetries(ConfigPusher.java:91) ~[na:na] at org.opendaylight.controller.netconf.persist.impl.ConfigPusher.pushConfigs(ConfigPusher.java:68) ~[na:na] at org.opendaylight.controller.netconf.persist.impl.osgi.ConfigPersisterActivator$InnerCustomizer$1.run(ConfigPersisterActivator.java:156) ~[na:na] at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25] 2014-07-16 10:54:23.357 CEST [config-pusher] ERROR o.o.c.c.m.impl.ConfigRegistryImpl - Configuration Transaction failed on 2PC, server is unhealthy java.lang.IllegalStateException: Error - getInstance() failed for ModuleIdentifier{factoryName='XXXX-device-app-impl', instanceName='XXXX-device-app'} in transaction TransactionIdentifier{name='ConfigTransaction-39-41'} at org.opendaylight.controller.config.manager.impl.ConfigTransactionControllerImpl.secondPhaseCommit(ConfigTransactionControllerImpl.java:402) ~[na:na] at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.secondPhaseCommit(ConfigRegistryImpl.java:282) ~[na:na] at org.opendaylight.controller.config.manager.impl.ConfigRegistryImpl.commitConfig(ConfigRegistryImpl.java:229) ~[na:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_25] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_25] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_25] at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_25] at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75) ~[na:1.7.0_25] at sun.reflect.GeneratedMethodAccessor155.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_25] at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_25] at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:193) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:175) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:117) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:54) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252) ~[na:1.7.0_25] at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.MXBeanProxy$InvokeHandler.invoke(MXBeanProxy.java:150) ~[na:1.7.0_25] at com.sun.jmx.mbeanserver.MXBeanProxy.invoke(MXBeanProxy.java:167) ~[na:1.7.0_25] at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:252) ~[na:1.7.0_25] at com.sun.proxy.$Proxy90.commitConfig(Unknown Source) ~[na:na] at org.opendaylight.controller.config.util.ConfigRegistryJMXClient.commitConfig(ConfigRegistryJMXClient.java:102) ~[na:na] at org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider.commitTransaction(TransactionProvider.java:110) ~[na:na] at org.opendaylight.controller.netconf.confignetconfconnector.operations.Commit.handleWithNoSubsequentOperations(Commit.java:55) ~[na:na] at org.opendaylight.controller.netconf.util.mapping.AbstractLastNetconfOperation.handle(AbstractLastNetconfOperation.java:33) ~[na:na] at org.opendaylight.controller.netconf.util.mapping.AbstractNetconfOperation.handle(AbstractNetconfOperation.java:105) ~[na:na] at org.opendaylight.controller.netconf.persist.impl.ConfigPusher.sendRequestGetResponseCheckIsOK(ConfigPusher.java:243) ~[na:na] at org.opendaylight.controller.netconf.persist.impl.ConfigPusher.pushConfig(ConfigPusher.java:202) ~[na:na] at org.opendaylight.controller.netconf.persist.impl.ConfigPusher.pushConfigWithConflictingVersionRetries(ConfigPusher.java:91) ~[na:na] at org.opendaylight.controller.netconf.persist.impl.ConfigPusher.pushConfigs(ConfigPusher.java:68) ~[na:na] at org.opendaylight.controller.netconf.persist.impl.osgi.ConfigPersisterActivator$InnerCustomizer$1.run(ConfigPersisterActivator.java:156) ~[na:na] at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25] Caused by: java.lang.IllegalStateException: Unabled to construct augmentation identfier for InstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.service.XXXX.rev130318.ServiceInstance1, path=[org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.service.instance.rev140410.ServiceInstances, org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.service.instance.rev140410.service.instances.ServiceInstance, org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.service.XXXX.rev130318.ServiceInstance1]} at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toNormalizedAugmented(BindingToNormalizedNodeCodec.java:304) ~[na:na] |
| Comments |
| Comment by Tony Tkacik [ 16/Jul/14 ] |
|
Which version of YANGTools are you using for compilation of your models? |
| Comment by Tony Tkacik [ 21/Jul/14 ] |
|
Is by any change your augmentation empty (does not contain any data nodes such |
| Comment by Tony Tkacik [ 22/Jul/14 ] |
|
Analysis showed that this exception is possible only if your augmentation Please remove offending line, since it is uncessary. |
| Comment by Robert Gallas [ 28/Jul/14 ] |
|
Line removed. Works OK. It was dummy read of empty augmentation as suggested approach to bypass classloader issues early in this year. |