<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:55:38 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>[CONTROLLER-1475] Supervisor Strategy caught unexpected exception because of NPE in NormalizedNodeInputStreamReader</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1475</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;I am getting following exception during net-virt clustering test. &lt;/p&gt;

&lt;p&gt;2016-01-20 03:55:32,386 | WARN  | lt-dispatcher-27 | ShardManager                     | 161 - org.opendaylight.controller.sal-distributed-datastore - 1.3.0.SNAPSHOT | Supervisor Strategy caught unexpected exception - resuming&lt;br/&gt;
java.lang.NullPointerException&lt;br/&gt;
	at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:210)&lt;span class=&quot;error&quot;&gt;&amp;#91;61:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier$AbstractPathArgument.&amp;lt;init&amp;gt;(YangInstanceIdentifier.java:413)&lt;span class=&quot;error&quot;&gt;&amp;#91;76:org.opendaylight.yangtools.yang-data-api:0.8.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier$NodeWithValue.&amp;lt;init&amp;gt;(YangInstanceIdentifier.java:584)&lt;span class=&quot;error&quot;&gt;&amp;#91;76:org.opendaylight.yangtools.yang-data-api:0.8.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeInputStreamReader.readNormalizedNodeInternal(NormalizedNodeInputStreamReader.java:138)&lt;span class=&quot;error&quot;&gt;&amp;#91;157:org.opendaylight.controller.sal-clustering-commons:1.3.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeInputStreamReader.readNormalizedNode(NormalizedNodeInputStreamReader.java:97)&lt;span class=&quot;error&quot;&gt;&amp;#91;157:org.opendaylight.controller.sal-clustering-commons:1.3.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.readNode(DataTreeCandidatePayload.java:184)&lt;span class=&quot;error&quot;&gt;&amp;#91;161:org.opendaylight.controller.sal-distributed-datastore:1.3.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.readChildren(DataTreeCandidatePayload.java:146)&lt;span class=&quot;error&quot;&gt;&amp;#91;161:org.opendaylight.controller.sal-distributed-datastore:1.3.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.readModifiedNode(DataTreeCandidatePayload.java:161)&lt;span class=&quot;error&quot;&gt;&amp;#91;161:org.opendaylight.controller.sal-distributed-datastore:1.3.0.SNAPSHOT&amp;#93;&lt;/span&gt; &lt;/p&gt;

&lt;p&gt;Dumping debug message in NormalizedNodeInputStreamReader, shows that it&apos;s throwing exception while reading ip_address leaf of the flow.&lt;br/&gt;
Following gist has full exception and debug messages before this exception occures&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://gist.githubusercontent.com/vishnoianil/0fab6f95c5f6824891cd/raw/f46ae667f9a8aef94f789a81c2480c4480cfac22/gistfile1.txt&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://gist.githubusercontent.com/vishnoianil/0fab6f95c5f6824891cd/raw/f46ae667f9a8aef94f789a81c2480c4480cfac22/gistfile1.txt&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am seeing this exception in inventory shard leader controller instance log as well as one of the follower. &lt;br/&gt;
But the flow that is causing this exception, successfully getting installed on the switch.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="26029">CONTROLLER-1475</key>
            <summary>Supervisor Strategy caught unexpected exception because of NPE in NormalizedNodeInputStreamReader</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="rovarga">Robert Varga</assignee>
                                    <reporter username="Avishnoi">Anil Vishnoi</reporter>
                        <labels>
                    </labels>
                <created>Wed, 20 Jan 2016 05:33:26 +0000</created>
                <updated>Tue, 25 Jul 2023 08:24:06 +0000</updated>
                            <resolved>Tue, 1 Mar 2016 19:25:36 +0000</resolved>
                                                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="51212" author="tpantelis" created="Thu, 21 Jan 2016 06:50:48 +0000"  >&lt;p&gt;ip-address was the last node that was read so it&apos;s not the problem. The problem occurs on the next DataTreeCandidatePayload which appears to contain a standalone LeafSetEntryNode w/o the parent LeafSetNode. In this case only the entry&apos;s value is outputted to the stream as the NormalizedNodeWriter doesn&apos;t pass NodeIdentifier in the leafSetEntryNode method. Presumably this was done for efficiency so the NodeIdentifier  QName isn&apos;t duplicated for each entry when writing out a leaf set. However it assumes the parent LeafSetNode was previously written to the stream. The NormalizedNodeInputStreamReader makes the same assumption. In order to create a LeafSetEntryNode it needs the leaf set QName. This is obtained when the parent LeafSetNode is parsed and it&apos;s cached when the child LeafSetEntryNode&apos;s are parsed. However if the stream contains only a LeafSetEntryNode then the leaf set QName isn&apos;t available which leads to the NPE.&lt;/p&gt;

&lt;p&gt;I&apos;m not familiar with the OF data model and which leaf set is causing the issue and which component is writing it. &lt;/p&gt;

&lt;p&gt;It seems the the NormalizedNodeWriter needs to detect that a standalone/parentless LeafSetEntryNode is being written and pass the NodeIdentifier to the stream writer, either as a @Nullable param to the existing method or a new method.&lt;/p&gt;</comment>
                            <comment id="51213" author="tpantelis" created="Thu, 21 Jan 2016 08:09:14 +0000"  >&lt;p&gt;Submitted &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/33192&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/33192&lt;/a&gt; which adds a unit test that reproduces the NPE in NormalizedNodeInputStreamReader.&lt;/p&gt;</comment>
                            <comment id="51214" author="rovarga" created="Thu, 21 Jan 2016 09:50:01 +0000"  >&lt;p&gt;Looks like a change to NormalizedNodeStreamWriter&apos;s methods will be required to expose the QName.&lt;/p&gt;</comment>
                            <comment id="51215" author="tpantelis" created="Thu, 21 Jan 2016 12:36:59 +0000"  >&lt;p&gt;Yes unfortunately - I don&apos;t see any other way around it. Adding QName (or NodeWithValue) to leafSetEntryNode would be enough on the yangtools side. The CDS NormalizedNodeOutputStreamWriter already keeps track of whether the parent was seen.&lt;/p&gt;

&lt;p&gt;(In reply to Robert Varga from comment #3)&lt;br/&gt;
&amp;gt; Looks like a change to NormalizedNodeStreamWriter&apos;s methods will be required&lt;br/&gt;
&amp;gt; to expose the QName.&lt;/p&gt;</comment>
                            <comment id="51216" author="tpantelis" created="Thu, 21 Jan 2016 15:41:07 +0000"  >&lt;p&gt;Submitted yangtools patch &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/33222/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/33222/&lt;/a&gt; to add the QName param.&lt;/p&gt;

&lt;p&gt;Do we need an API waiver?&lt;/p&gt;

&lt;p&gt;I&apos;m working on the controller side patch.&lt;/p&gt;

&lt;p&gt;I don&apos;t know if any other projects need changes.&lt;/p&gt;</comment>
                            <comment id="51217" author="rovarga" created="Thu, 21 Jan 2016 16:29:20 +0000"  >&lt;p&gt;Yes we do. I am actually working on a patch to add NodeWithValue, which is consistent with the rest of the API. I will go through the projects &amp;#8211; it has not been two weeks since last waiver &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/sad.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;</comment>
                            <comment id="51218" author="tpantelis" created="Thu, 21 Jan 2016 17:21:45 +0000"  >&lt;p&gt;I added a QName param with my patch. I didn&apos;t know you were working on it. NodeWithValue is fine too - we can go with your patch - either way - I&apos;ll leave it up to you.&lt;/p&gt;

&lt;p&gt;I have the controller side patch &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/33228/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/33228/&lt;/a&gt; working (it&apos;s a draft right now since it won&apos;t build in jenkins) with changes to AbstractNormalizedNodeDataOutput and NormalizedNodePruner. Added more unit tests to DataTreeCandidatePayloadTest to cover standalone leaf node and ordered leaf set (recently added - I fixed an issue with it).&lt;/p&gt;

&lt;p&gt;Note that AnyXML doesn&apos;t work at all with the CDS streaming (it doesn&apos;t know how to serialize a DOMSource) but that&apos;s a separate issue.&lt;/p&gt;

&lt;p&gt;(In reply to Robert Varga from comment #6)&lt;br/&gt;
&amp;gt; Yes we do. I am actually working on a patch to add NodeWithValue, which is&lt;br/&gt;
&amp;gt; consistent with the rest of the API. I will go through the projects &amp;#8211; it&lt;br/&gt;
&amp;gt; has not been two weeks since last waiver &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/sad.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;</comment>
                            <comment id="51219" author="rovarga" created="Thu, 21 Jan 2016 17:43:35 +0000"  >&lt;p&gt;mdsal: &lt;a href=&quot;https://git.opendaylight.org/gerrit/33231&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/33231&lt;/a&gt;&lt;br/&gt;
controller: &lt;a href=&quot;https://git.opendaylight.org/gerrit/33230&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/33230&lt;/a&gt;&lt;br/&gt;
netconf: &lt;a href=&quot;https://git.opendaylight.org/gerrit/33229&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/33229&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Waiting for initial review, will send out an API freeze waiver once initial review has been done.&lt;/p&gt;</comment>
                            <comment id="51220" author="tpantelis" created="Thu, 21 Jan 2016 17:48:54 +0000"  >&lt;p&gt;I already submitted controller patch &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/33228/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/33228/&lt;/a&gt; which fixes the issue so &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/33230/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/33230/&lt;/a&gt; isn&apos;t needed.&lt;/p&gt;

&lt;p&gt;(In reply to Robert Varga from comment #8)&lt;br/&gt;
&amp;gt; mdsal: &lt;a href=&quot;https://git.opendaylight.org/gerrit/33231&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/33231&lt;/a&gt;&lt;br/&gt;
&amp;gt; controller: &lt;a href=&quot;https://git.opendaylight.org/gerrit/33230&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/33230&lt;/a&gt;&lt;br/&gt;
&amp;gt; netconf: &lt;a href=&quot;https://git.opendaylight.org/gerrit/33229&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/33229&lt;/a&gt;&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; Waiting for initial review, will send out an API freeze waiver once initial&lt;br/&gt;
&amp;gt; review has been done.&lt;/p&gt;</comment>
                            <comment id="51221" author="rovarga" created="Wed, 27 Jan 2016 21:46:34 +0000"  >&lt;p&gt;Boron has been merged, still working on the API waiver for Beryllium.&lt;/p&gt;</comment>
                            <comment id="51222" author="vishnoianil@gmail.com" created="Tue, 2 Feb 2016 08:19:44 +0000"  >&lt;p&gt;Tom/Robert,&lt;/p&gt;

&lt;p&gt;I believe all the relevant patches are merged for this bug, or do we have any pending patches that needs to be merged ?&lt;/p&gt;</comment>
                            <comment id="51223" author="rovarga" created="Tue, 2 Feb 2016 09:19:37 +0000"  >&lt;p&gt;Beryllium/Boron are fixed, but this needs to backported to Lithium, too.&lt;/p&gt;</comment>
                            <comment id="51224" author="anipbu" created="Mon, 29 Feb 2016 19:57:01 +0000"  >&lt;p&gt;If the bug is a blocker, has it been fixed for Lithium SR4?  If this bug is NOT a blocker, can we downgrade the severity to &#8220;critical&#8221;?&lt;/p&gt;</comment>
                            <comment id="51225" author="rovarga" created="Tue, 1 Mar 2016 19:25:36 +0000"  >&lt;p&gt;Lithium does not have all the dependencies need to fix this.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10002">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="26006">CONTROLLER-1452</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </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>5019</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=5019]]></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="10317"><![CDATA[Beryllium]]></customfieldvalue>

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

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

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