<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:53:53 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[YANGTOOLS-644] DomToNormalizedNodeParserFactory&apos;s strictParsing switch seems not to work</title>
                <link>https://jira.opendaylight.org/browse/YANGTOOLS-644</link>
                <project id="10188" key="YANGTOOLS">yangtools</project>
                    <description>&lt;p&gt;would it be possible to change ODL&apos;s behaviour so that when hitting unknown child nodes in a NETCONF response it simply ignores those nodes - rather than dropping the NETCONF session?&lt;/p&gt;

&lt;p&gt;For example in the logs I see:&lt;/p&gt;

&lt;p&gt;2016-08-11 07:24:30,292 | WARN  | oupCloseable-3-1 | KeepaliveSalFacade               | 263 - org.opendaylight.netconf.sal-netconf-connector - 1.3.3.Beryllium-SR3 | RemoteDevice&lt;/p&gt;
{asr9k2}
&lt;p&gt;: Rpc failure detected. Reconnecting netconf session&lt;br/&gt;
java.lang.IllegalStateException: Unknown child(ren) node(s) detected, identified by:...&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="23064">YANGTOOLS-644</key>
            <summary>DomToNormalizedNodeParserFactory&apos;s strictParsing switch seems not to work</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="ifoltin">Igor Foltin</assignee>
                                    <reporter username="giheron@cisco.com">Giles Heron</reporter>
                        <labels>
                    </labels>
                <created>Thu, 11 Aug 2016 14:56:13 +0000</created>
                <updated>Sun, 10 Apr 2022 18:35:50 +0000</updated>
                            <resolved>Thu, 16 Mar 2017 13:12:37 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="43995" author="pkajsa" created="Mon, 15 Aug 2016 08:59:13 +0000"  >&lt;p&gt;Please can you attach whole log or stack trace. Thanks.&lt;/p&gt;</comment>
                            <comment id="44030" author="giheron@cisco.com" created="Mon, 15 Aug 2016 17:19:23 +0000"  >&lt;p&gt;Attachment karaf.log has been added with description: logs (with initial mounting deleted)&lt;/p&gt;</comment>
                            <comment id="43996" author="jmorvay@cisco.com" created="Tue, 16 Aug 2016 08:42:37 +0000"  >&lt;p&gt;Hi Giles,&lt;/p&gt;

&lt;p&gt;The problem seems to be that your device does not conform to provided models.&lt;/p&gt;

&lt;p&gt;Possible workaround:&lt;br/&gt;
You can modify models to conform to data that comes from device and then side-load this modified models.&lt;/p&gt;

&lt;p&gt;What can be done in netconf, is that we can distinguish RPC failures like this one from RPC failures like non-reachable device and fail only on latter ones. But if your device sends you bad data, something else will eventually fail, e.g RESTCONF, RPCService, etc.&lt;/p&gt;</comment>
                            <comment id="43997" author="giheron@cisco.com" created="Tue, 16 Aug 2016 13:13:27 +0000"  >&lt;p&gt;Hi Jakub,&lt;/p&gt;

&lt;p&gt;yes - I&apos;m well aware that the device doesn&apos;t conform to the models.&lt;/p&gt;

&lt;p&gt;what we&apos;re looking for in this instance is simply to ignore cases where devices return content that isn&apos;t in the model.   That way we can still see the rest of the config, and can still write to the device.&lt;/p&gt;

&lt;p&gt;Giles&lt;/p&gt;</comment>
                            <comment id="43998" author="jmorvay@cisco.com" created="Wed, 17 Aug 2016 08:36:55 +0000"  >&lt;p&gt;So you just want NETCONF not to reconnect on RPC failures like this one or you want NETCONF to do less strict parsing and just ignore non-conforming data overall?&lt;/p&gt;</comment>
                            <comment id="43999" author="giheron@cisco.com" created="Wed, 17 Aug 2016 12:01:20 +0000"  >&lt;p&gt;Hi Jakub&lt;/p&gt;

&lt;p&gt;in this case (where the device returns data that&apos;s not in the model) I&apos;d want ODL just to ignore that data (so parse the rest of the data and present it through the Java and RESTCONF APIs).&lt;/p&gt;

&lt;p&gt;Giles&lt;/p&gt;</comment>
                            <comment id="44000" author="jmorvay@cisco.com" created="Thu, 25 Aug 2016 14:07:23 +0000"  >&lt;p&gt;We can make something with this reconnecting stuff, but I don&apos;t know if we can and want to allow less strict parsing and ignoring non-conforming data. I think this should be discussed thoroughly&lt;/p&gt;</comment>
                            <comment id="44001" author="giheron@cisco.com" created="Thu, 25 Aug 2016 14:14:38 +0000"  >&lt;p&gt;well - Postel&apos;s Law would tend to suggest ignoring it is the right thing to do.   But sure, we have to check it won&apos;t break anything...&lt;/p&gt;</comment>
                            <comment id="44002" author="tcere" created="Thu, 25 Aug 2016 14:16:41 +0000"  >&lt;p&gt;Ignoring invalid data is not something we can do on netconf level, all parsing is handled by yangtools.&lt;/p&gt;</comment>
                            <comment id="44003" author="giheron@cisco.com" created="Thu, 25 Aug 2016 14:19:58 +0000"  >&lt;p&gt;sure - though there&apos;s a &quot;strict&quot; switch that NETCONF can set (or unset) when having yangtools parse NETCONF modules.  I tried setting it to false but it still didn&apos;t work - so yeah maybe needs fixing in Yangtools.&lt;/p&gt;</comment>
                            <comment id="44004" author="jmorvay@cisco.com" created="Thu, 25 Aug 2016 14:43:19 +0000"  >&lt;p&gt;Guess you are talking about NetconfMessageTransformer and its paramater strictParsing.&lt;/p&gt;

&lt;p&gt;What could be done in NETCONF is to add configuration option for mountpoints, whether to use strict parsing or don&apos;t. But if you have tested this and it does not work, this should be consulted with YANGTOOLS developers. So maybe we should move this bug back to YANGTOOLS project and you can add report what you have observed during testing this feature.&lt;/p&gt;

&lt;p&gt;Also we should open a new bug for adding new configuration option for mountpoints in Netconf project.&lt;/p&gt;</comment>
                            <comment id="44005" author="tcere" created="Thu, 25 Aug 2016 14:44:41 +0000"  >&lt;p&gt;Ok my bad i forgotten about the switch, what was the issue when you tried to hardcode it to false? Did it still fail with unknown child nodes?&lt;/p&gt;</comment>
                            <comment id="44006" author="giheron@cisco.com" created="Thu, 25 Aug 2016 14:50:46 +0000"  >&lt;p&gt;Yes - I think the failure was exactly the same.   Maybe I got something wrong when I built it?&lt;/p&gt;</comment>
                            <comment id="44007" author="jmorvay@cisco.com" created="Thu, 25 Aug 2016 15:06:09 +0000"  >&lt;p&gt;I am moving this bug back to YANGTOOLS project. I think now it is clear, what the problem is.&lt;/p&gt;

&lt;p&gt;The problem should be in DomToNormalizedNodeParserFactory&apos;s strictParsing switch is not working correctly and is not documented properly.&lt;/p&gt;</comment>
                            <comment id="44008" author="giheron@cisco.com" created="Fri, 25 Nov 2016 17:54:13 +0000"  >&lt;p&gt;are we still expecting a fix for this in Carbon?  I&apos;m seeing issues with this with Boron-SR1 and XR 6.1.2, and a colleague is seeing the same with Beryllium-SR3 and XR 6.0.1.&lt;/p&gt;</comment>
                            <comment id="44009" author="ifoltin" created="Thu, 1 Dec 2016 14:35:50 +0000"  >&lt;p&gt;Hello Giles,&lt;/p&gt;

&lt;p&gt;yes, the fix should be done in Carbon. Alas I cannot say when exactly will that be as we are currently busy with other issues.&lt;/p&gt;</comment>
                            <comment id="44010" author="giheron@cisco.com" created="Thu, 1 Dec 2016 14:43:07 +0000"  >&lt;p&gt;thanks Igor.&lt;/p&gt;

&lt;p&gt;I&apos;ve bumped the importance up to &quot;major&quot; at any rate - this is blocking various customers.&lt;/p&gt;

&lt;p&gt;Giles&lt;/p&gt;</comment>
                            <comment id="44011" author="ifoltin" created="Mon, 27 Feb 2017 09:13:58 +0000"  >&lt;p&gt;Hello Giles, I tried parsing xml data containing nodes not defined in the YANG model with the DomToNormalizedNodeParserFactory&apos;s strictParsing flag set to false and it worked correctly. No exception was thrown. I tested this in stable/beryllium, stable/boron and current master.&lt;/p&gt;

&lt;p&gt;Could you please try testing this one more time ?&lt;/p&gt;</comment>
                            <comment id="44012" author="ifoltin" created="Tue, 7 Mar 2017 16:46:19 +0000"  >&lt;p&gt;Hi Giles, if the problem still occurs, it would be really helpful if you provided the yang modules and yang data that you used when the exception was thrown. I think that the actual problem might be something different than the strictParsing flag. In fact, the code flow does not even come to the part with the exception when strictParsing is set to false.&lt;/p&gt;</comment>
                            <comment id="44013" author="giheron@cisco.com" created="Wed, 8 Mar 2017 18:06:43 +0000"  >&lt;p&gt;Hi Igor,&lt;/p&gt;

&lt;p&gt;I think the issue may be to do with where the node is in the hierarchy (it&apos;s a list entry).&lt;/p&gt;

&lt;p&gt;the stack trace starts with:&lt;/p&gt;

&lt;p&gt;2017-03-08 07:13:06,069 | WARN  | oupCloseable-3-4 | ReadOnlyTx                       | 190 - org.opendaylight.netconf.sal-netconf-connector - 1.4.3.SNAPSHOT | RemoteDevice&lt;/p&gt;
{asr9k2}
&lt;p&gt;: Reading data failed&lt;br/&gt;
java.lang.IllegalStateException: Unknown child(ren) node(s) detected, identified by: (&lt;a href=&quot;http://openconfig.net/yang/interfaces)ip&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://openconfig.net/yang/interfaces)ip&lt;/a&gt;, in: list address&lt;br/&gt;
        at com.google.common.base.Preconditions.checkState(Preconditions.java:197)&lt;span class=&quot;error&quot;&gt;&amp;#91;41:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.yangtools.yang.data.impl.schema.SchemaUtils.findSchemaForChild(SchemaUtils.java:105)&lt;span class=&quot;error&quot;&gt;&amp;#91;57:org.opendaylight.yangtools.yang-data-impl:1.0.3.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.yangtools.yang.data.impl.schema.SchemaUtils.findSchemaForChild(SchemaUtils.java:87)&lt;span class=&quot;error&quot;&gt;&amp;#91;57:org.opendaylight.yangtools.yang-data-impl:1.0.3.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.yangtools.yang.data.impl.schema.SchemaUtils.findSchemaForChild(SchemaUtils.java:93)&lt;span class=&quot;error&quot;&gt;&amp;#91;57:org.opendaylight.yangtools.yang-data-impl:1.0.3.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListEntryNodeBaseParser.getSchemaForChild(ListEntryNodeBaseParser.java:45)&lt;span class=&quot;error&quot;&gt;&amp;#91;57:org.opendaylight.yangtools.yang-data-impl:1.0.3.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListEntryNodeBaseParser.getSchemaForChild(ListEntryNodeBaseParser.java:28)&lt;span class=&quot;error&quot;&gt;&amp;#91;57:org.opendaylight.yangtools.yang-data-impl:1.0.3.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:160)&lt;span class=&quot;error&quot;&gt;&amp;#91;57:org.opendaylight.yangtools.yang-data-impl:1.0.3.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;/p&gt;


&lt;p&gt;ListEntryNodeBaseParser.java extends BaseDispatcherParser.java.  In BaseDispatcherParser.java.  but BaseDispatcherParser has a protected method strictParsing() that always returns &quot;true&quot;.&lt;/p&gt;

&lt;p&gt;i&apos;ll attach both the YANG model and the ODL log (starting with the instance data).&lt;/p&gt;</comment>
                            <comment id="44014" author="ifoltin" created="Wed, 8 Mar 2017 18:34:29 +0000"  >&lt;p&gt;Yes, but in case of parsing a list entry, the strictParsing() method is actually called in the subclass MapEntryNodeDomParser which overrides it. I have tested this on list entries too and it worked as expected.&lt;/p&gt;</comment>
                            <comment id="44015" author="giheron@cisco.com" created="Wed, 8 Mar 2017 18:39:21 +0000"  >&lt;p&gt;ah ok.&lt;/p&gt;

&lt;p&gt;well at any rate this isn&apos;t behaving as expected - I&apos;m certainly seeing &quot;strict&quot; parsing here.  Is there any way to configure ODL not to be strict - or do i have to edit the code?  Or do you think the strict flag isn&apos;t the issue here?&lt;/p&gt;

&lt;p&gt;Giles&lt;/p&gt;</comment>
                            <comment id="44016" author="ifoltin" created="Thu, 9 Mar 2017 07:59:19 +0000"  >&lt;p&gt;Does the problem come up even if you edit the strictParsing flag in the NetconfMessageTransformer&apos;s constructor (line 88) to false ?&lt;/p&gt;</comment>
                            <comment id="44017" author="giheron@cisco.com" created="Thu, 9 Mar 2017 11:53:39 +0000"  >&lt;p&gt;this is in the second constructor (the one with 3 parameters?)  I have that at line 89:&lt;br/&gt;
parserFactory = DomToNormalizedNodeParserFactory.getInstance(XmlUtils.DEFAULT_XML_CODEC_PROVIDER, schemaContext, strictParsing);&lt;/p&gt;

&lt;p&gt;So change that to:&lt;/p&gt;

&lt;p&gt;parserFactory = DomToNormalizedNodeParserFactory.getInstance(XmlUtils.DEFAULT_XML_CODEC_PROVIDER, schemaContext, strictParsing);&lt;/p&gt;

&lt;p&gt;correct?&lt;/p&gt;

&lt;p&gt;if I edit that the config get still fails but with a different error:&lt;/p&gt;

&lt;p&gt;{&lt;br/&gt;
  &quot;errors&quot;: {&lt;br/&gt;
    &quot;error&quot;: [&lt;br/&gt;
      {&lt;br/&gt;
        &quot;error-type&quot;: &quot;application&quot;,&lt;br/&gt;
        &quot;error-tag&quot;: &quot;operation-failed&quot;,&lt;br/&gt;
        &quot;error-message&quot;: &quot;read execution failed&quot;,&lt;br/&gt;
        &quot;error-info&quot;: &quot;org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.valid.DataValidationException$IllegalListKeyException: Key value not present for key: (&lt;a href=&quot;http://openconfig.net/yang/interfaces/ip?revision=2015-11-20)ip&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://openconfig.net/yang/interfaces/ip?revision=2015-11-20)ip&lt;/a&gt;, in: (&lt;a href=&quot;http://openconfig.net/yang/interfaces/ip?revision=2015-11-20)address[&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://openconfig.net/yang/interfaces/ip?revision=2015-11-20)address[&lt;/a&gt;{}]\n\tat org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.valid.DataValidationException.checkListKey(DataValidationException.java:74)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeSchemaAwareBuilder.constructNodeIdentifier(ImmutableMapEntryNodeSchemaAwareBuilder.java:63)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeSchemaAwareBuilder.build(ImmutableMapEntryNodeSchemaAwareBuilder.java:46)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeSchemaAwareBuilder.build(ImmutableMapEntryNodeSchemaAwareBuilder.java:23)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser$SimpleBuildingStrategy.build(BaseDispatcherParser.java:238)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser$SimpleBuildingStrategy.build(BaseDispatcherParser.java:235)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:204)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListEntryNodeBaseParser.parse(ListEntryNodeBaseParser.java:61)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListEntryNodeBaseParser.parse(ListEntryNodeBaseParser.java:28)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListNodeBaseParser.parse(ListNodeBaseParser.java:46)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListNodeBaseParser.parse(ListNodeBaseParser.java:26)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher$BaseNodeParserDispatcher.dispatchChildElement(NodeParserDispatcher.java:61)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:178)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ContainerNodeBaseParser.parse(ContainerNodeBaseParser.java:47)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ContainerNodeBaseParser.parse(ContainerNodeBaseParser.java:29)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher$BaseNodeParserDispatcher.dispatchChildElement(NodeParserDispatcher.java:49)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:178)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:34)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher$BaseNodeParserDispatcher.dispatchChildElement(NodeParserDispatcher.java:66)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:198)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListEntryNodeBaseParser.parse(ListEntryNodeBaseParser.java:61)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListEntryNodeBaseParser.parse(ListEntryNodeBaseParser.java:28)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListNodeBaseParser.parse(ListNodeBaseParser.java:46)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListNodeBaseParser.parse(ListNodeBaseParser.java:26)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher$BaseNodeParserDispatcher.dispatchChildElement(NodeParserDispatcher.java:61)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:178)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ContainerNodeBaseParser.parse(ContainerNodeBaseParser.java:47)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ContainerNodeBaseParser.parse(ContainerNodeBaseParser.java:29)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher$BaseNodeParserDispatcher.dispatchChildElement(NodeParserDispatcher.java:49)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:178)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListEntryNodeBaseParser.parse(ListEntryNodeBaseParser.java:61)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListEntryNodeBaseParser.parse(ListEntryNodeBaseParser.java:28)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListNodeBaseParser.parse(ListNodeBaseParser.java:46)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ListNodeBaseParser.parse(ListNodeBaseParser.java:26)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher$BaseNodeParserDispatcher.dispatchChildElement(NodeParserDispatcher.java:61)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:178)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ContainerNodeBaseParser.parse(ContainerNodeBaseParser.java:47)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ContainerNodeBaseParser.parse(ContainerNodeBaseParser.java:29)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher$BaseNodeParserDispatcher.dispatchChildElement(NodeParserDispatcher.java:49)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.BaseDispatcherParser.parse(BaseDispatcherParser.java:178)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ContainerNodeBaseParser.parse(ContainerNodeBaseParser.java:47)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.ContainerNodeBaseParser.parse(ContainerNodeBaseParser.java:29)\n\tat org.opendaylight.netconf.sal.connect.netconf.schema.mapping.NetconfMessageTransformer.toRpcResult(NetconfMessageTransformer.java:186)\n\tat org.opendaylight.netconf.sal.connect.netconf.schema.mapping.NetconfMessageTransformer.toRpcResult(NetconfMessageTransformer.java:57)\n\tat org.opendaylight.netconf.sal.connect.netconf.sal.NetconfDeviceRpc$2.apply(NetconfDeviceRpc.java:68)\n\tat org.opendaylight.netconf.sal.connect.netconf.sal.NetconfDeviceRpc$2.apply(NetconfDeviceRpc.java:64)\n\tat com.google.common.util.concurrent.Futures$2.apply(Futures.java:760)\n\tat com.google.common.util.concurrent.Futures$ChainingListenableFuture.run(Futures.java:906)\n\tat com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:457)\n\tat com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)\n\tat com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)\n\tat com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:185)\n\tat org.opendaylight.netconf.sal.connect.netconf.listener.UncancellableFuture.set(UncancellableFuture.java:44)\n\tat org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommunicator.processMessage(NetconfDeviceCommunicator.java:325)\n\tat org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommunicator.onMessage(NetconfDeviceCommunicator.java:262)\n\tat org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommunicator.onMessage(NetconfDeviceCommunicator.java:49)\n\tat org.opendaylight.netconf.nettyutil.AbstractNetconfSession.handleMessage(AbstractNetconfSession.java:64)\n\tat org.opendaylight.netconf.nettyutil.AbstractNetconfSession.handleMessage(AbstractNetconfSession.java:35)\n\tat org.opendaylight.protocol.framework.AbstractProtocolSession.channelRead0(AbstractProtocolSession.java:53)\n\tat io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:343)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:336)\n\tat io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)\n\tat io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:343)\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:336)\n\tat io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)\n\tat io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357)\n\tat io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:35)\n\tat io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:348)\n\tat io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:399)\n\tat io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:446)\n\tat io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131)\n\tat io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)\n\tat java.lang.Thread.run(Thread.java:745)\n&quot;&lt;br/&gt;
      }&lt;br/&gt;
    ]&lt;br/&gt;
  }&lt;br/&gt;
}&lt;/p&gt;</comment>
                            <comment id="44018" author="ifoltin" created="Thu, 9 Mar 2017 13:41:41 +0000"  >&lt;p&gt;Yes, correct. Now, regarding the new exception - basically, it means that you have invalid data. A keyed list entry must have the key leaf data present.&lt;br/&gt;
I would like to have a look at the yang model and the xml data. Would it be possible to attach them here ?&lt;/p&gt;</comment>
                            <comment id="44031" author="giheron@cisco.com" created="Thu, 9 Mar 2017 13:55:04 +0000"  >&lt;p&gt;Attachment openconfig-interfaces@2015-11-20.yang has been added with description: YANG model with missing instance data&lt;/p&gt;</comment>
                            <comment id="44019" author="giheron@cisco.com" created="Thu, 9 Mar 2017 13:56:53 +0000"  >&lt;p&gt;these are correct - the previous log was the wrong file&lt;/p&gt;</comment>
                            <comment id="44032" author="giheron@cisco.com" created="Thu, 9 Mar 2017 13:56:53 +0000"  >&lt;p&gt;Attachment short.log has been added with description: logs (with initial mounting deleted)&lt;/p&gt;</comment>
                            <comment id="44020" author="giheron@cisco.com" created="Thu, 9 Mar 2017 13:57:41 +0000"  >&lt;p&gt;Cut-down Logs (starting with the instance data) and YANG model attached now&lt;/p&gt;</comment>
                            <comment id="44021" author="ifoltin" created="Fri, 10 Mar 2017 16:33:00 +0000"  >&lt;p&gt;I managed to replicate the original problem you had reported, i.e. getting the exception because of unknown nodes even if strictParsing was set to false.&lt;br/&gt;
This problem occurs when parsing an unkeyed list entry.&lt;/p&gt;

&lt;p&gt;The following patch should fix the issue - &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/53149/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/53149/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Could you please test it again using the patch ?&lt;/p&gt;</comment>
                            <comment id="44022" author="rovarga" created="Sat, 11 Mar 2017 16:36:27 +0000"  >&lt;p&gt;boron: &lt;a href=&quot;https://git.opendaylight.org/gerrit/53174&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/53174&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="44023" author="giheron@cisco.com" created="Tue, 14 Mar 2017 22:14:30 +0000"  >&lt;p&gt;I&apos;m still seeing the problem with the patch applied...&lt;/p&gt;

&lt;p&gt;maybe we can take a look tomorrow?&lt;/p&gt;</comment>
                            <comment id="44024" author="ifoltin" created="Wed, 15 Mar 2017 08:11:12 +0000"  >&lt;p&gt;Are you seeing the problem with unknown child nodes or the one with DataValidationException$IllegalListKeyException ?&lt;/p&gt;</comment>
                            <comment id="44025" author="giheron@cisco.com" created="Wed, 15 Mar 2017 16:46:33 +0000"  >&lt;p&gt;still seeing:&lt;/p&gt;

&lt;p&gt;{&lt;br/&gt;
  &quot;errors&quot;: {&lt;br/&gt;
    &quot;error&quot;: [&lt;br/&gt;
      {&lt;br/&gt;
        &quot;error-type&quot;: &quot;application&quot;,&lt;br/&gt;
        &quot;error-tag&quot;: &quot;operation-failed&quot;,&lt;br/&gt;
        &quot;error-message&quot;: &quot;read execution failed&quot;,&lt;br/&gt;
        &quot;error-info&quot;: &quot;java.lang.IllegalStateException: Unknown child(ren) node(s) detected, identified by: (&lt;a href=&quot;http://openconfig.net/yang/interfaces)ip&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://openconfig.net/yang/interfaces)ip&lt;/a&gt;, in: list address\n\tat com.google.common.base.Preconditions.checkState(Preconditions.java:197)\n\tat org.opendaylight.yangtools.yang.data.impl.schema.SchemaUtils.findSchemaForChild(SchemaUtils.java:105...&lt;/p&gt;</comment>
                            <comment id="44026" author="ifoltin" created="Thu, 16 Mar 2017 09:58:16 +0000"  >&lt;p&gt;Ok, so does this exception still occur even if the strictParsing in the second constructor of NetconfMessageTransformer is hard-coded to false ?&lt;/p&gt;</comment>
                            <comment id="44027" author="giheron@cisco.com" created="Thu, 16 Mar 2017 12:01:51 +0000"  >&lt;p&gt;ah ok.  So if I change that .jar too then I get:&lt;/p&gt;

&lt;p&gt;{&lt;br/&gt;
  &quot;errors&quot;: {&lt;br/&gt;
    &quot;error&quot;: [&lt;br/&gt;
      {&lt;br/&gt;
        &quot;error-type&quot;: &quot;application&quot;,&lt;br/&gt;
        &quot;error-tag&quot;: &quot;operation-failed&quot;,&lt;br/&gt;
        &quot;error-message&quot;: &quot;read execution failed&quot;,&lt;br/&gt;
        &quot;error-info&quot;: &quot;org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.valid.DataValidationException$IllegalListKeyException: Key value not present for key: (&lt;a href=&quot;http://openconfig.net/yang/interfaces/ip?revision=2015-11-20)ip&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://openconfig.net/yang/interfaces/ip?revision=2015-11-20)ip&lt;/a&gt;, in: (&lt;a href=&quot;http://openconfig.net/yang/interfaces/ip?revision=2015-11-20&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://openconfig.net/yang/interfaces/ip?revision=2015-11-20&lt;/a&gt;&lt;br/&gt;
...&lt;/p&gt;</comment>
                            <comment id="44028" author="rovarga" created="Thu, 16 Mar 2017 12:34:23 +0000"  >&lt;p&gt;So I think the offender is:&lt;/p&gt;

&lt;p&gt;     &amp;lt;subinterface&amp;gt;&lt;br/&gt;
      &amp;lt;index&amp;gt;0&amp;lt;/index&amp;gt;&lt;br/&gt;
      &amp;lt;ipv4 xmlns=&quot;http://openconfig.net/yang/interfaces/ip&quot;&amp;gt;&lt;br/&gt;
       &amp;lt;address&amp;gt;&lt;br/&gt;
        &amp;lt;ip&amp;gt;192.168.4.2&amp;lt;/ip&amp;gt;&lt;br/&gt;
        &amp;lt;config&amp;gt;&lt;br/&gt;
         &amp;lt;ip&amp;gt;192.168.4.2&amp;lt;/ip&amp;gt;&lt;br/&gt;
         &amp;lt;prefix-length&amp;gt;24&amp;lt;/prefix-length&amp;gt;&lt;br/&gt;
        &amp;lt;/config&amp;gt;&lt;br/&gt;
       &amp;lt;/address&amp;gt;&lt;br/&gt;
      &amp;lt;/ipv4&amp;gt;&lt;br/&gt;
      &amp;lt;ipv6 xmlns=&quot;http://openconfig.net/yang/interfaces/ip&quot;&amp;gt;&lt;br/&gt;
       &amp;lt;address&amp;gt;&lt;br/&gt;
        &amp;lt;ip xmlns=&quot;http://openconfig.net/yang/interfaces&quot;&amp;gt;2001::2&amp;lt;/ip&amp;gt;&lt;br/&gt;
        &amp;lt;config&amp;gt;&lt;br/&gt;
         &amp;lt;ip&amp;gt;2001::2&amp;lt;/ip&amp;gt;&lt;br/&gt;
         &amp;lt;prefix-length&amp;gt;64&amp;lt;/prefix-length&amp;gt;&lt;br/&gt;
        &amp;lt;/config&amp;gt;&lt;br/&gt;
       &amp;lt;/address&amp;gt;&lt;br/&gt;
      &amp;lt;/ipv6&amp;gt;&lt;br/&gt;
     &amp;lt;/subinterface&amp;gt;&lt;/p&gt;

&lt;p&gt;note the difference in ipv4 and ipv6&apos;s &amp;lt;ip&amp;gt; member. Both are defined to point to the same entity:&lt;br/&gt;
    type leafref &lt;/p&gt;
{
        path &quot;../oc-ip:config/oc-ip:ip&quot;;
    }

&lt;p&gt;but their encoded namespaces differ. There is no &apos;ip&apos; defined in openconfig-interfaces.yang, so the ipv6 case is being encoded badly by the device.&lt;/p&gt;

&lt;p&gt;The only recovery we can attempt here is an exhaustive enumeration of data and making wild assumptions about data interpretation &amp;#8211; i.e. that a leaf which is not defined in the schema and present can be used as a substitute for the key. That is a very &lt;b&gt;very&lt;/b&gt; bad assumption to make.&lt;/p&gt;

&lt;p&gt;Giles, this really needs to be escalated to the vendor team.&lt;/p&gt;</comment>
                            <comment id="44029" author="giheron@cisco.com" created="Thu, 16 Mar 2017 13:12:37 +0000"  >&lt;p&gt;good catch &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;

&lt;p&gt;So I just tested that by removing all IPv6 interface config from the device, and that worked.&lt;/p&gt;

&lt;p&gt;I can raise the bug with the device guys.&lt;/p&gt;

&lt;p&gt;But at any rate I guess the question in such cases is do we:&lt;/p&gt;

&lt;p&gt;1) just ignore the instance data we don&apos;t understand&lt;/p&gt;

&lt;p&gt;2) throw an error.&lt;/p&gt;

&lt;p&gt;You know my preference on that one &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;

&lt;p&gt;Giles&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="13054" name="karaf.log" size="78853" author="giheron@cisco.com" created="Mon, 15 Aug 2016 17:19:23 +0000"/>
                            <attachment id="13055" name="openconfig-interfaces@2015-11-20.yang" size="25840" author="giheron@cisco.com" created="Thu, 9 Mar 2017 13:55:04 +0000"/>
                            <attachment id="13056" name="short.log" size="726587" author="giheron@cisco.com" created="Thu, 9 Mar 2017 13:56:53 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6392</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=6392]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10206" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Issue Type</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10300"><![CDATA[Bug]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10204" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>ODL SR Target Milestone</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10344"><![CDATA[Boron-3]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10202" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Priority</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10312"><![CDATA[High]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i028hz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>