<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:14:29 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>[NETCONF-231] &apos;odl-netconf-topology&apos; feature throws NullPointerException while mounting device[1.1.0-SNAPSHOT]</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-231</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;p&gt;Karaf log:&lt;br/&gt;
2016-07-19 17:46:30,159 | INFO  | on-dispatcher-53 | AbstractNetconfTopology          | 287 - org.opendaylight.netconf.topology - 1.1.0.SNAPSHOT | Connecting RemoteDevice&lt;/p&gt;
{Uri [_value=hcmount]}
&lt;p&gt; , with config Node{getNodeId=Uri &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=hcmount&amp;#93;&lt;/span&gt;, augmentations={interface org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode=NetconfNode{getBetweenAttemptsTimeoutMillis=10000, getConcurrentRpcLimit=0, getConnectionTimeoutMillis=10000, getCredentials=LoginPassword{getPassword=admin, getUsername=admin, augmentations={}}, getDefaultRequestTimeoutMillis=10000, getHost=Host [_domainName=DomainName &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=172.23.29.126&amp;#93;&lt;/span&gt;], getKeepaliveDelay=0, getMaxConnectionAttempts=10, getPort=PortNumber &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=7777&amp;#93;&lt;/span&gt;, getSchemaCacheDirectory=schema, getSleepFactor=1.5, isReconnectOnChangedSchema=false, isSchemaless=false, isTcpOnly=true}}}&lt;br/&gt;
2016-07-19 17:46:30,168 | ERROR | on-dispatcher-53 | DataTreeChangeListenerActor      | 214 - org.opendaylight.controller.sal-distributed-datastore - 1.4.0.SNAPSHOT | Error notifying listener org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataTreeChangeListenerAdapter@54d13ad3&lt;br/&gt;
java.lang.NullPointerException&lt;br/&gt;
	at org.opendaylight.netconf.topology.AbstractNetconfTopology.createDeviceCommunicator(AbstractNetconfTopology.java:275)&lt;span class=&quot;error&quot;&gt;&amp;#91;287:org.opendaylight.netconf.topology:1.1.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.netconf.topology.AbstractNetconfTopology.setupConnection(AbstractNetconfTopology.java:243)&lt;span class=&quot;error&quot;&gt;&amp;#91;287:org.opendaylight.netconf.topology:1.1.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.netconf.topology.AbstractNetconfTopology.connectNode(AbstractNetconfTopology.java:218)&lt;span class=&quot;error&quot;&gt;&amp;#91;287:org.opendaylight.netconf.topology:1.1.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.netconf.topology.impl.NetconfTopologyImpl.onDataTreeChanged(NetconfTopologyImpl.java:151)&lt;span class=&quot;error&quot;&gt;&amp;#91;287:org.opendaylight.netconf.topology:1.1.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataTreeChangeListenerAdapter.onDataTreeChanged(BindingDOMDataTreeChangeListenerAdapter.java:41)&lt;span class=&quot;error&quot;&gt;&amp;#91;185:org.opendaylight.controller.sal-binding-broker-impl:1.4.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataChanged(DataTreeChangeListenerActor.java:55)&lt;span class=&quot;error&quot;&gt;&amp;#91;214:org.opendaylight.controller.sal-distributed-datastore:1.4.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.handleReceive(DataTreeChangeListenerActor.java:37)&lt;span class=&quot;error&quot;&gt;&amp;#91;214:org.opendaylight.controller.sal-distributed-datastore:1.4.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:26)&lt;span class=&quot;error&quot;&gt;&amp;#91;209:org.opendaylight.controller.sal-clustering-commons:1.4.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:165)&lt;span class=&quot;error&quot;&gt;&amp;#91;197:com.typesafe.akka.actor:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.actor.Actor$class.aroundReceive(Actor.scala:484)&lt;span class=&quot;error&quot;&gt;&amp;#91;197:com.typesafe.akka.actor:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:95)&lt;span class=&quot;error&quot;&gt;&amp;#91;197:com.typesafe.akka.actor:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)&lt;span class=&quot;error&quot;&gt;&amp;#91;197:com.typesafe.akka.actor:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.actor.ActorCell.invoke(ActorCell.scala:495)&lt;span class=&quot;error&quot;&gt;&amp;#91;197:com.typesafe.akka.actor:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)&lt;span class=&quot;error&quot;&gt;&amp;#91;197:com.typesafe.akka.actor:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.dispatch.Mailbox.run(Mailbox.scala:224)&lt;span class=&quot;error&quot;&gt;&amp;#91;197:com.typesafe.akka.actor:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.dispatch.Mailbox.exec(Mailbox.scala:234)&lt;span class=&quot;error&quot;&gt;&amp;#91;197:com.typesafe.akka.actor:2.4.7&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)&lt;span class=&quot;error&quot;&gt;&amp;#91;193:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)&lt;span class=&quot;error&quot;&gt;&amp;#91;193:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)&lt;span class=&quot;error&quot;&gt;&amp;#91;193:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)&lt;span class=&quot;error&quot;&gt;&amp;#91;193:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;PUT operation:&lt;br/&gt;
&lt;a href=&quot;http://172.23.29.120:8181/restconf/config/network-topology:network-topology/network-topology:topology/topology-netconf/node/hcmount&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://172.23.29.120:8181/restconf/config/network-topology:network-topology/network-topology:topology/topology-netconf/node/hcmount&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;{&lt;br/&gt;
    &quot;node&quot; : &lt;br/&gt;
    [&lt;/p&gt;
        {
            &quot;node-id&quot;:&quot;hcmount&quot;,
            &quot;netconf-node-topology:host&quot;:&quot;172.23.29.126&quot;,
            &quot;netconf-node-topology:port&quot;:&quot;7777&quot;,
            &quot;netconf-node-topology:tcp-only&quot;:true,
            &quot;netconf-node-topology:keepalive-delay&quot;:0,
            &quot;netconf-node-topology:username&quot;:&quot;admin&quot;,
            &quot;netconf-node-topology:password&quot;:&quot;admin&quot;,
            &quot;netconf-node-topology:connection-timeout-millis&quot;:10000,
            &quot;netconf-node-topology:default-request-timeout-millis&quot;:10000,
            &quot;netconf-node-topology:max-connection-attempts&quot;:10,
            &quot;netconf-node-topology:between-attempts-timeout-millis&quot;:10000
        }
&lt;p&gt;    ]&lt;br/&gt;
}&lt;/p&gt;

&lt;p&gt;After the NPE, there&apos;s nothing showing in the operational datastore, nor does the mount point exist.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: Mac OS&lt;br/&gt;
Platform: Macintosh&lt;/p&gt;</environment>
        <key id="21244">NETCONF-231</key>
            <summary>&apos;odl-netconf-topology&apos; feature throws NullPointerException while mounting device[1.1.0-SNAPSHOT]</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="jmorvay@cisco.com">Jakub Morvay</assignee>
                                    <reporter username="657187280@qq.com">Zhaoxing Li</reporter>
                        <labels>
                    </labels>
                <created>Wed, 20 Jul 2016 01:03:04 +0000</created>
                <updated>Fri, 15 Mar 2019 22:22:27 +0000</updated>
                            <resolved>Thu, 21 Jul 2016 11:05:30 +0000</resolved>
                                                                    <component>netconf</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="39504" author="jmorvay@cisco.com" created="Wed, 20 Jul 2016 14:42:32 +0000"  >&lt;p&gt;The problem seems to be in wrong type of host node, when we are getting the configuration for node from datastore. As you can see from your INFO log from AbstractNetconfTopology, we get the host node as domainName type. But we are expecting this node to be of ipAddress type. Not sure why is this happening, if this is problem in MD-SAL or Yangtools or where.&lt;/p&gt;

&lt;p&gt;Also, this bug is not always present, sometimes we get the host in ipAdress type, sometimes in domainName type.&lt;/p&gt;

&lt;p&gt;We should add support also for addressing devices via domain name in netconf-topology, but I don&apos;t think this will solve this bug. If we get IP address as &lt;br/&gt;
domainName type, I think we wouldn&apos;t be able to resolve such domain name.&lt;/p&gt;

&lt;p&gt;Next thing, we can do in NETCONF is to somehow explicitly check host value and if it is valid IP address cast it to IP address, even if we get it as domain name. Do not know if we want such fixes in NETCONF project though..&lt;/p&gt;</comment>
                            <comment id="39505" author="657187280@qq.com" created="Wed, 20 Jul 2016 18:17:58 +0000"  >&lt;p&gt;Just rebuilt everything and tried again.&lt;br/&gt;
I&#8217;ve been adding the same node that had the bug yesterday for 10 times. None of them has triggered the bug again. So it looks like something has been changed and this problem seems to not be occurring to me anymore.&lt;br/&gt;
But yesterday it was a 100% chance to trigger this bug for me(I still have the old build which still breaks). So let&#8217;s just leave it like this for now, until it comes back(hopefully not).&lt;/p&gt;</comment>
                            <comment id="39506" author="rovarga" created="Thu, 21 Jul 2016 09:01:40 +0000"  >&lt;p&gt;This regression was caused by &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/40056/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/40056/&lt;/a&gt;. The problem was that UnionTypeCodec.create() used a temporary HashSet, which meant the order on constituent types was not retained. That in turn lead to the less-restrictive domain-name being tried first and succeeding.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/42072/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/42072/&lt;/a&gt; fixed that.&lt;/p&gt;</comment>
                    </comments>
                    <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>6239</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=6239]]></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="10332"><![CDATA[Boron-RC0]]></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|i01x9j:</customfieldvalue>

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