[CONTROLLER-459] Netconf connector has to wait for nodes yang schema Created: 07/May/14  Updated: 25/Jul/23  Resolved: 10/Jun/14

Status: Resolved
Project: controller
Component/s: netconf
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Maros Marsalek Assignee: Maros Marsalek
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 CONTROLLER-290 Milestone: config and netconf bugfixing Resolved
is blocked by CONTROLLER-388 Refactor sal-netconf-connector Resolved
External issue ID: 969

 Description   

As binding independent component, netconf connector has to wait for "nodes" schema to be present in md-sal before adding remote device as a node to datastore.

This bug may crash the whole controller during initial configuration phase.



 Comments   
Comment by Maros Marsalek [ 07/May/14 ]

> java.lang.IllegalStateException: Error - getInstance() failed for ModuleIdentifier

{factoryName='sal-netconf-connector', instanceName='controller-config'}

in transaction TransactionIdentifier

{name='ConfigTransaction-55-57'}

> at org.opendaylight.controller.config.manager.impl.ConfigTransactionControllerImpl.secondPhaseCommit(ConfigTransactionControllerImpl.java:403) ~[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_55]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_55]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_55]
> at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_55]
> at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75) [na:1.7.0_55]
> at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source) ~[na:na]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_55]
> at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_55]
> at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279) [na:1.7.0_55]
> at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:193) [na:1.7.0_55]
> at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:175) [na:1.7.0_55]
> at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:117) [na:1.7.0_55]
> at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:54) [na:1.7.0_55]
> at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237) [na:1.7.0_55]
> at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138) [na:1.7.0_55]
> at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252) [na:1.7.0_55]
> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) [na:1.7.0_55]
> at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) [na:1.7.0_55]
> at com.sun.jmx.mbeanserver.MXBeanProxy$InvokeHandler.invoke(MXBeanProxy.java:150) [na:1.7.0_55]
> at com.sun.jmx.mbeanserver.MXBeanProxy.invoke(MXBeanProxy.java:167) [na:1.7.0_55]
> at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:252) [na:1.7.0_55]
> at com.sun.proxy.$Proxy61.commitConfig(Unknown Source) [na:na]
> at org.opendaylight.controller.config.util.ConfigRegistryJMXClient.commitConfig(ConfigRegistryJMXClient.java:84) [bundlefile:na]
> at org.opendaylight.controller.netconf.confignetconfconnector.transactions.TransactionProvider.commitTransaction(TransactionProvider.java:110) [bundlefile:na]
> at org.opendaylight.controller.netconf.confignetconfconnector.operations.Commit.handleWithNoSubsequentOperations(Commit.java:55) [bundlefile:na]
> at org.opendaylight.controller.netconf.util.mapping.AbstractLastNetconfOperation.handle(AbstractLastNetconfOperation.java:33) [bundlefile:na]
> at org.opendaylight.controller.netconf.util.mapping.AbstractNetconfOperation.handle(AbstractNetconfOperation.java:101) [bundlefile:na]
> at org.opendaylight.controller.netconf.persist.impl.ConfigPusher.sendRequestGetResponseCheckIsOK(ConfigPusher.java:236) [bundlefile:na]
> at org.opendaylight.controller.netconf.persist.impl.ConfigPusher.pushConfig(ConfigPusher.java:195) [bundlefile:na]
> at org.opendaylight.controller.netconf.persist.impl.ConfigPusher.pushConfigWithConflictingVersionRetries(ConfigPusher.java:86) [bundlefile:na]
> at org.opendaylight.controller.netconf.persist.impl.ConfigPusher.pushConfigs(ConfigPusher.java:67) [bundlefile:na]
> at org.opendaylight.controller.netconf.persist.impl.osgi.ConfigPersisterActivator$InnerCustomizer$1.run(ConfigPersisterActivator.java:156) [bundlefile:na]
> at java.lang.Thread.run(Thread.java:745) [na:1.7.0_55] Caused by:
> java.lang.IllegalArgumentException: Failed to normalize path /(urn:opendaylight:inventory?revision=2013-08-19)nodes/(urn:opendaylight:inventory?revision=2013-08-19)node[

{(urn:opendaylight:inventory?revision=2013-08-19)id=controller-config}

]
> at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizer.toNormalized(DataNormalizer.java:68) ~[na:na]
> at org.opendaylight.controller.md.sal.dom.broker.impl.compat.BackwardsCompatibleTransaction.readOperationalData(BackwardsCompatibleTransaction.java:107) ~[na:na]
> at org.opendaylight.controller.md.sal.dom.broker.impl.compat.BackwardsCompatibleTransaction$ReadWriteTransaction.readOperationalData(BackwardsCompatibleTransaction.java:189) ~[na:na]
> at org.opendaylight.controller.sal.connect.netconf.NetconfDevice.operationalNodeNotExisting(NetconfDevice.java:336) ~[na:na]
> at org.opendaylight.controller.sal.connect.netconf.NetconfDevice.onSessionInitiated(NetconfDevice.java:305) ~[na:na]
> at org.opendaylight.controller.sal.dom.broker.BrokerImpl.registerProvider(BrokerImpl.java:109) ~[na:na]
> at org.opendaylight.controller.config.yang.md.sal.connector.netconf.NetconfConnectorModule.createInstance(NetconfConnectorModule.java:117) ~[na:na]
> at org.opendaylight.controller.config.yang.md.sal.connector.netconf.AbstractNetconfConnectorModule.getInstance(AbstractNetconfConnectorModule.java:123) ~[na:na]
> at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) ~[na:na]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_55]
> at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_55]
> at org.opendaylight.controller.config.manager.impl.dependencyresolver.DependencyResolverManager$1.handleInvocation(DependencyResolverManager.java:144) ~[na:na]
> at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:70) ~[na:na]
> at com.sun.proxy.$Proxy64.getInstance(Unknown Source) ~[na:na]
> at org.opendaylight.controller.config.manager.impl.ConfigTransactionControllerImpl.secondPhaseCommit(ConfigTransactionControllerImpl.java:397) ~[na:na]
> ... 35 common frames omitted
> Caused by: org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationException: Supplied QName (urn:opendaylight:inventory?revision=2013-08-19)nodes is not valid according to schema org.opendaylight.yangtools.yang.parser.impl.SchemaContextImpl@f346707, potential children nodes: [container modules, container services, container actions-container, container instruction-container, container instruction-queue, container netconf-state, container oxm-container, container queue-prop-container, container table-features-properties-container, container network-topology, container network-topology, container bgp-rib]
> at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation.fromSchemaAndPathArgument(DataNormalizationOperation.java:604) ~[na:na]
> at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation.fromSchema(DataNormalizationOperation.java:658) ~[na:na]
> at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation.access$000(DataNormalizationOperation.java:52) ~[na:na]
> at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation$DataContainerNormalizationOperation.getChild(DataNormalizationOperation.java:226) ~[na:na]
> at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizer.toNormalized(DataNormalizer.java:57) ~[na:na]
> ... 49 common frames omitted
>

Comment by Maros Marsalek [ 10/Jun/14 ]

This was fixed along with
https://bugs.opendaylight.org/show_bug.cgi?id=832

Netconf-connector uses binding-aware part to manipulate the Nodes related data.

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