<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:53:55 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-656] Occasionally, DTCL delete notification does not include &quot;data before&quot;</title>
                <link>https://jira.opendaylight.org/browse/YANGTOOLS-656</link>
                <project id="10188" key="YANGTOOLS">yangtools</project>
                    <description>&lt;p&gt;Remote peer advertise 1M routes then it is disconnected, empty topology is expected, NPE appeared instead:&lt;/p&gt;

&lt;p&gt;araf | command                          | 306 - org.apache.karaf.log.command - 3.0.7 | ROBOT MESSAGE: Starting test Kill_Talking_BGP_Speaker&lt;br/&gt;
2016-08-30 02:41:19,795 | INFO  | entLoopGroup-5-1 | BGPSessionImpl                   | 185 - org.opendaylight.bgpcep.bgp-rib-impl - 0.6.0.SNAPSHOT | End of input detected. Close the session.&lt;br/&gt;
2016-08-30 02:41:19,795 | INFO  | entLoopGroup-5-1 | BGPPeer                          | 185 - org.opendaylight.bgpcep.bgp-rib-impl - 0.6.0.SNAPSHOT | Session with peer 10.29.12.104 went down&lt;br/&gt;
2016-08-30 02:41:19,809 | INFO  | entLoopGroup-5-1 | BGPSessionImpl                   | 185 - org.opendaylight.bgpcep.bgp-rib-impl - 0.6.0.SNAPSHOT | Closing session: BGPSessionImpl&lt;/p&gt;
{channel=[id: 0x45b8e831, L:/10.29.13.40:1790 ! R:/10.29.12.104:17900], state=UP}
&lt;p&gt;2016-08-30 02:41:19,919 | INFO  | h for user karaf | command                          | 306 - org.apache.karaf.log.command - 3.0.7 | ROBOT MESSAGE: Starting test Store_Results_For_Talking_BGP_Speaker&lt;br/&gt;
2016-08-30 02:41:20,375 | INFO  | h for user karaf | command                          | 306 - org.apache.karaf.log.command - 3.0.7 | ROBOT MESSAGE: Starting test Wait_For_Stable_Ipv4_Topology_After_Talking&lt;br/&gt;
2016-08-30 02:41:28,659 | WARN  | on-dispatcher-46 | AbstractTopologyBuilder          | 191 - org.opendaylight.bgpcep.bgp-topology-provider - 0.6.0.SNAPSHOT | Data change LazyDataTreeModification{path = DataTreeIdentifier{datastoreType = OPERATIONAL, rootIdentifier = KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.inet.rev150305.ipv4.routes.ipv4.routes.Ipv4Route, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.BgpRib, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.bgp.rib.Rib[key=RibKey [_id=Uri &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=example-bgp-rib&amp;#93;&lt;/span&gt;]], org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.bgp.rib.rib.LocRib, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.Tables[key=TablesKey &lt;span class=&quot;error&quot;&gt;&amp;#91;_afi=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily, _safi=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.UnicastSubsequentAddressFamily&amp;#93;&lt;/span&gt;], org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.inet.rev150305.ipv4.routes.Ipv4Routes, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.inet.rev150305.ipv4.routes.ipv4.routes.Ipv4Route[key=Ipv4RouteKey [_prefix=Ipv4Prefix &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=9.84.88.112/28&amp;#93;&lt;/span&gt;, _pathId=PathId &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=0&amp;#93;&lt;/span&gt;]]]}}, rootNode = LazyDataObjectModification{identifier = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.inet.rev150305.ipv4.routes.ipv4.routes.Ipv4Route[key=Ipv4RouteKey [_prefix=Ipv4Prefix &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=9.84.88.112/28&amp;#93;&lt;/span&gt;, _pathId=PathId &lt;span class=&quot;error&quot;&gt;&amp;#91;_value=0&amp;#93;&lt;/span&gt;]], domData = ChildNode{mod = NodeModification [identifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)ipv4-route[&lt;/p&gt;
{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)path-id=0, (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)prefix=9.84.88.112/28}
&lt;p&gt;], modificationType=DELETE, childModification={}], oldMeta = null, newMeta = null}}} (transaction DOM-CHAIN-4-364481) was not completely propagated to listener org.opendaylight.bgpcep.bgp.topology.provider.Ipv4ReachabilityTopologyBuilder@245a6da5&lt;br/&gt;
java.lang.NullPointerException&lt;br/&gt;
	at org.opendaylight.bgpcep.bgp.topology.provider.Ipv4ReachabilityTopologyBuilder.getAttributes(Ipv4ReachabilityTopologyBuilder.java:41)&lt;span class=&quot;error&quot;&gt;&amp;#91;191:org.opendaylight.bgpcep.bgp-topology-provider:0.6.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.bgpcep.bgp.topology.provider.Ipv4ReachabilityTopologyBuilder.getAttributes(Ipv4ReachabilityTopologyBuilder.java:27)&lt;span class=&quot;error&quot;&gt;&amp;#91;191:org.opendaylight.bgpcep.bgp-topology-provider:0.6.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.bgpcep.bgp.topology.provider.AbstractReachabilityTopologyBuilder.removeObject(AbstractReachabilityTopologyBuilder.java:145)&lt;span class=&quot;error&quot;&gt;&amp;#91;191:org.opendaylight.bgpcep.bgp-topology-provider:0.6.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.bgpcep.bgp.topology.provider.AbstractTopologyBuilder.routeChanged(AbstractTopologyBuilder.java:213)&lt;span class=&quot;error&quot;&gt;&amp;#91;191:org.opendaylight.bgpcep.bgp-topology-provider:0.6.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.bgpcep.bgp.topology.provider.AbstractTopologyBuilder.onDataTreeChanged(AbstractTopologyBuilder.java:175)&lt;span class=&quot;error&quot;&gt;&amp;#91;191:org.opendaylight.bgpcep.bgp-topology-provider:0.6.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;143: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;172: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;172: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;167: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;155: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;155: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;155: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;155: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;155: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;155: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;155: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;155: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;151: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;151: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;151: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;151:org.scala-lang.scala-library:2.11.8.v20160304-115712-1706a37eb8&amp;#93;&lt;/span&gt;&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="23076">YANGTOOLS-656</key>
            <summary>Occasionally, DTCL delete notification does not include &quot;data before&quot;</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="milos.fabian@pantheon.tech">Milos Fabian</reporter>
                        <labels>
                    </labels>
                <created>Tue, 30 Aug 2016 08:54:11 +0000</created>
                <updated>Sun, 10 Apr 2022 18:35:51 +0000</updated>
                            <resolved>Wed, 23 Nov 2016 13:22:44 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="44067" author="milos.fabian@pantheon.tech" created="Tue, 30 Aug 2016 08:55:49 +0000"  >&lt;p&gt;Appeared in ingest-mixed Boron CSIT suite&lt;/p&gt;</comment>
                            <comment id="44068" author="milos.fabian@pantheon.tech" created="Tue, 30 Aug 2016 14:34:32 +0000"  >&lt;p&gt;Similar problem observed when testing locally:&lt;br/&gt;
1. run ODL with configured app-peer&lt;br/&gt;
2. inject 100k prefixes&lt;br/&gt;
3. remove 100k prefixes (one-by-one)&lt;br/&gt;
4. unexpected behavior observed in LocRibWriter - calling #get() on empty optional - modification type DELETE, dataBefore absent&lt;br/&gt;
The 6 prefixes left in loc-rib&lt;/p&gt;</comment>
                            <comment id="44069" author="milos.fabian@pantheon.tech" created="Tue, 30 Aug 2016 14:38:38 +0000"  >&lt;p&gt;(In reply to Milos Fabian from comment #2)&lt;br/&gt;
&amp;gt; Similar problem observed when testing locally:&lt;br/&gt;
&amp;gt; 1. run ODL with configured app-peer&lt;br/&gt;
&amp;gt; 2. inject 100k prefixes&lt;br/&gt;
&amp;gt; 3. remove 100k prefixes (one-by-one)&lt;br/&gt;
&amp;gt; 4. unexpected behavior observed in LocRibWriter - calling #get() on empty&lt;br/&gt;
&amp;gt; optional - modification type DELETE, dataBefore absent&lt;br/&gt;
&amp;gt; The 6 prefixes left in loc-rib&lt;/p&gt;

&lt;p&gt;Happening with some very specific prefixes:&lt;/p&gt;

&lt;p&gt;2016-08-30 16:36:40,242 | INFO  | on-dispatcher-96 | LocRibWriter                     | 288 - org.opendaylight.bgpcep.bgp-rib-impl - 0.7.0.SNAPSHOT | Data before missing for: (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)ipv4-route[&lt;/p&gt;
{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)prefix=1.2.120.198/32}
&lt;p&gt;], ChildNode{mod = NodeModification [identifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)ipv4-route[&lt;/p&gt;
{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)prefix=1.2.120.198/32, (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)path-id=0}
&lt;p&gt;], modificationType=DELETE, childModification={}], oldMeta = null, newMeta = null}&lt;br/&gt;
2016-08-30 16:36:40,245 | INFO  | on-dispatcher-96 | LocRibWriter                     | 288 - org.opendaylight.bgpcep.bgp-rib-impl - 0.7.0.SNAPSHOT | Data before missing for: (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)ipv4-route[&lt;/p&gt;
{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)prefix=1.2.121.198/32}
&lt;p&gt;], ChildNode{mod = NodeModification [identifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)ipv4-route[&lt;/p&gt;
{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)prefix=1.2.121.198/32, (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)path-id=0}
&lt;p&gt;], modificationType=DELETE, childModification={}], oldMeta = null, newMeta = null}&lt;br/&gt;
2016-08-30 16:36:40,250 | INFO  | on-dispatcher-96 | LocRibWriter                     | 288 - org.opendaylight.bgpcep.bgp-rib-impl - 0.7.0.SNAPSHOT | Data before missing for: (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)ipv4-route[&lt;/p&gt;
{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)prefix=1.2.121.197/32}
&lt;p&gt;], ChildNode{mod = NodeModification [identifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)ipv4-route[&lt;/p&gt;
{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)prefix=1.2.121.197/32, (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)path-id=0}
&lt;p&gt;], modificationType=DELETE, childModification={}], oldMeta = null, newMeta = null}&lt;br/&gt;
2016-08-30 16:36:40,253 | INFO  | on-dispatcher-96 | LocRibWriter                     | 288 - org.opendaylight.bgpcep.bgp-rib-impl - 0.7.0.SNAPSHOT | Data before missing for: (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)ipv4-route[&lt;/p&gt;
{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)prefix=1.2.120.199/32}
&lt;p&gt;], ChildNode{mod = NodeModification [identifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)ipv4-route[&lt;/p&gt;
{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)prefix=1.2.120.199/32, (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)path-id=0}
&lt;p&gt;], modificationType=DELETE, childModification={}], oldMeta = null, newMeta = null}&lt;br/&gt;
2016-08-30 16:36:40,255 | INFO  | on-dispatcher-96 | LocRibWriter                     | 288 - org.opendaylight.bgpcep.bgp-rib-impl - 0.7.0.SNAPSHOT | Data before missing for: (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)ipv4-route[&lt;/p&gt;
{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)prefix=1.2.121.199/32}
&lt;p&gt;], ChildNode{mod = NodeModification [identifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)ipv4-route[&lt;/p&gt;
{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)prefix=1.2.121.199/32, (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)path-id=0}
&lt;p&gt;], modificationType=DELETE, childModification={}], oldMeta = null, newMeta = null}&lt;br/&gt;
2016-08-30 16:36:40,274 | INFO  | on-dispatcher-96 | LocRibWriter                     | 288 - org.opendaylight.bgpcep.bgp-rib-impl - 0.7.0.SNAPSHOT | Data before missing for: (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)ipv4-route[&lt;/p&gt;
{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)prefix=1.2.120.197/32}
&lt;p&gt;], ChildNode{mod = NodeModification [identifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)ipv4-route[&lt;/p&gt;
{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)prefix=1.2.120.197/32, (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)path-id=0}
&lt;p&gt;], modificationType=DELETE, childModification={}], oldMeta = null, newMeta = null}&lt;/p&gt;</comment>
                            <comment id="44070" author="milos.fabian@pantheon.tech" created="Wed, 31 Aug 2016 05:28:26 +0000"  >&lt;p&gt;The problem addressed to controller/md-sal devs: &lt;a href=&quot;https://lists.opendaylight.org/pipermail/controller-dev/2016-August/012561.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://lists.opendaylight.org/pipermail/controller-dev/2016-August/012561.html&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="44071" author="ajayl.bro@gmail.com" created="Thu, 1 Sep 2016 23:52:48 +0000"  >&lt;p&gt;Same issue is seen with Beryllium as well. Please refer exception encountered in read-life network environment under high load:&lt;/p&gt;

&lt;p&gt;2016-09-01 20:22:04,696 | WARN  | lt-dispatcher-42 | AbstractTopologyBuilder          | 329 - org.opendaylight.bgpcep.bgp-topology-provider - 0.5.0.Beryllium | Data change org.opendaylight.controller.md.sal.binding.impl.LazyDataTreeModification@963f998 (transaction DOM-CHAIN-10-159563) was not completely propagated to listener org.opendaylight.bgpcep.bgp.topology.provider.LinkstateTopologyBuilder@2976ef9&lt;br/&gt;
java.lang.NullPointerException&lt;br/&gt;
        at org.opendaylight.bgpcep.bgp.topology.provider.UriBuilder.&amp;lt;init&amp;gt;(UriBuilder.java:43)&lt;span class=&quot;error&quot;&gt;&amp;#91;329:org.opendaylight.bgpcep.bgp-topology-provider:0.5.0.Beryllium&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.bgpcep.bgp.topology.provider.LinkstateTopologyBuilder.removeObject(LinkstateTopologyBuilder.java:933)&lt;span class=&quot;error&quot;&gt;&amp;#91;329:org.opendaylight.bgpcep.bgp-topology-provider:0.5.0.Beryllium&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.bgpcep.bgp.topology.provider.LinkstateTopologyBuilder.removeObject(LinkstateTopologyBuilder.java:124)&lt;span class=&quot;error&quot;&gt;&amp;#91;329:org.opendaylight.bgpcep.bgp-topology-provider:0.5.0.Beryllium&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.bgpcep.bgp.topology.provider.AbstractTopologyBuilder.routeChanged(AbstractTopologyBuilder.java:213)&lt;span class=&quot;error&quot;&gt;&amp;#91;329:org.opendaylight.bgpcep.bgp-topology-provider:0.5.0.Beryllium&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.bgpcep.bgp.topology.provider.AbstractTopologyBuilder.onDataTreeChanged(AbstractTopologyBuilder.java:175)&lt;span class=&quot;error&quot;&gt;&amp;#91;329:org.opendaylight.bgpcep.bgp-topology-provider:0.5.0.Beryllium&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;115:org.opendaylight.controller.sal-binding-broker-impl:1.3.0.Beryllium&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataChanged(DataTreeChangeListenerActor.java:53)&lt;span class=&quot;error&quot;&gt;&amp;#91;140:org.opendaylight.controller.sal-distributed-datastore:1.3.0.Beryllium&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;140:org.opendaylight.controller.sal-distributed-datastore:1.3.0.Beryllium&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:34)&lt;span class=&quot;error&quot;&gt;&amp;#91;136:org.opendaylight.controller.sal-clustering-commons:1.3.0.Beryllium&amp;#93;&lt;/span&gt;&lt;/p&gt;</comment>
                            <comment id="44072" author="rovarga" created="Wed, 26 Oct 2016 10:38:07 +0000"  >&lt;p&gt;Can you report the entire DTCN, from root for this case?&lt;/p&gt;</comment>
                            <comment id="44073" author="rovarga" created="Mon, 7 Nov 2016 10:49:54 +0000"  >&lt;p&gt;This looks like some badness in the DataTree implementation. Specifically it looks like AbstractModifiedNodeBasedCandidateNode is allocating a ChildNode with no backing metadata.&lt;/p&gt;</comment>
                            <comment id="44074" author="rovarga" created="Mon, 7 Nov 2016 11:04:54 +0000"  >&lt;p&gt;Now, that child node was resolved to DELETE (in SchemaAwareApplyOperation.apply()), which indicates that the &apos;before&apos; metadata was supplied to it, while it was not actually present in the tree. This evidence points it squarely at StructuralContainerModificationStrategy#57, which is the only place playing this kind of a trick.&lt;/p&gt;</comment>
                            <comment id="44075" author="rovarga" created="Mon, 7 Nov 2016 12:32:33 +0000"  >&lt;p&gt;We need logs replicating this issue, with &lt;a href=&quot;https://git.opendaylight.org/gerrit/48049&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/48049&lt;/a&gt; applied to the controller and ShardDataTree logging set to TRACE.&lt;/p&gt;

&lt;p&gt;We need to see both the modification and the data tree candidate which trigger this behavior.&lt;/p&gt;</comment>
                            <comment id="44088" author="cdgasparini" created="Wed, 16 Nov 2016 13:04:55 +0000"  >&lt;p&gt;Attachment karaf.log.tar.gz has been added with description: log&lt;/p&gt;</comment>
                            <comment id="44089" author="cdgasparini" created="Wed, 16 Nov 2016 13:05:41 +0000"  >&lt;p&gt;Attachment karaf.log.1.tar.gz has been added with description: log1&lt;/p&gt;</comment>
                            <comment id="44090" author="cdgasparini" created="Wed, 16 Nov 2016 13:06:23 +0000"  >&lt;p&gt;Attachment karaf.log.2.tar.gz has been added with description: log2&lt;/p&gt;</comment>
                            <comment id="44091" author="cdgasparini" created="Wed, 16 Nov 2016 13:09:11 +0000"  >&lt;p&gt;Attachment karaf.log.3.tar.gz has been added with description: log3&lt;/p&gt;</comment>
                            <comment id="44092" author="cdgasparini" created="Wed, 16 Nov 2016 13:10:00 +0000"  >&lt;p&gt;Attachment karaf.log.4.tar.gz has been added with description: log4&lt;/p&gt;</comment>
                            <comment id="44076" author="rovarga" created="Wed, 16 Nov 2016 14:56:29 +0000"  >&lt;p&gt;Analyzing karaf.log.4, the problem is narrowed down a bit. In this specific case, the route being deleted is: prefix=1.2.120.199/32 path-id=0&lt;/p&gt;

&lt;p&gt;The deletion record is correct, as the route is present in parent&apos;s oldMeta and it is not present in its newMeta.&lt;/p&gt;

&lt;p&gt;The stack trace has a Iterators$8.transform() as the caller of AbstractModifiedNodeBasedCandidateNode.childNode(), which points to its getChildNodes() method, which is logical, as the parent is marked as SUBTREE_MODIFIED and BGP code is traversing it to find out what is going on.&lt;/p&gt;

&lt;p&gt;Based on this, the cause seems to be the fact that eventhough the record is in oldMeta&apos;s children map, the call AbstractModifiedNodeBasedCandidateNode.childMeta() -&amp;gt; MaterializedContainerNode.getChild() fails to find it &amp;#8211; but it is registering it in its children map.&lt;/p&gt;

&lt;p&gt;Since the objects in question are supposed to be immutable at this point, I think it is safe to say that the DataTree code itself is correct and the problem lies in one of three components:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;NodeIdentifierWithPredicates&lt;/li&gt;
	&lt;li&gt;TrieMap (since we are at a scale where children are tracked using it)&lt;/li&gt;
	&lt;li&gt;JVM badness (affecting either one of the above)&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="44077" author="rovarga" created="Wed, 16 Nov 2016 14:57:36 +0000"  >&lt;p&gt;Actually, there is a fourth component involved: ImmutableOffsetMap, which is the backing map inside NodeIdentifierWithPredicates.&lt;/p&gt;</comment>
                            <comment id="44078" author="rovarga" created="Wed, 16 Nov 2016 15:12:47 +0000"  >&lt;p&gt;Ajay, can you check what was the JVM version involved in that, please?&lt;/p&gt;</comment>
                            <comment id="44079" author="rovarga" created="Wed, 16 Nov 2016 16:40:42 +0000"  >&lt;p&gt;debug patch to eliminate custom maps from the picture: &lt;a href=&quot;https://git.opendaylight.org/gerrit/48420&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/48420&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="44080" author="cdgasparini" created="Fri, 18 Nov 2016 08:23:44 +0000"  >&lt;p&gt;tested against u112 and ImmutableMaps, issue still present&lt;/p&gt;</comment>
                            <comment id="44093" author="cdgasparini" created="Fri, 18 Nov 2016 14:20:53 +0000"  >&lt;p&gt;Attachment BUG_6577_STEPS.txt has been added with description: Steps to reproduce bug&lt;/p&gt;</comment>
                            <comment id="44081" author="rovarga" created="Fri, 18 Nov 2016 17:38:09 +0000"  >&lt;p&gt;After additional testing it seems the problem is either in JVM or TrieMap. Specifially, I have added code, which when it encounters this conditions walks through the map&apos;s entrySet() and tries to find the corresponding key.&lt;/p&gt;

&lt;p&gt;What I am getting is:&lt;/p&gt;

&lt;p&gt;2016-11-18 18:00:17,821 | WARN  | lt-dispatcher-36 | ctModifiedNodeBasedCandidateNode | 85 - org.opendaylight.yangtools.yang-data-impl - 1.0.2.SNAPSHOT | Missing key is (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)ipv4-route[&lt;/p&gt;
{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)path-id=0, (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)prefix=1.2.121.197/32}
&lt;p&gt;], identity 1745067963, hash 1674416874&lt;br/&gt;
2016-11-18 18:00:17,825 | WARN  | lt-dispatcher-36 | ctModifiedNodeBasedCandidateNode | 85 - org.opendaylight.yangtools.yang-data-impl - 1.0.2.SNAPSHOT | Found matching key (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)ipv4-route[&lt;/p&gt;
{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)path-id=0, (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)prefix=1.2.121.197/32}
&lt;p&gt;], identity 1269043004, hash 1674416874&lt;br/&gt;
2016-11-18 18:00:17,825 | WARN  | lt-dispatcher-36 | ctModifiedNodeBasedCandidateNode | 85 - org.opendaylight.yangtools.yang-data-impl - 1.0.2.SNAPSHOT | Inverse equals: true&lt;br/&gt;
2016-11-18 18:00:17,826 | WARN  | lt-dispatcher-36 | ctModifiedNodeBasedCandidateNode | 85 - org.opendaylight.yangtools.yang-data-impl - 1.0.2.SNAPSHOT | Stored lookup: SimpleContainerNode{version=org.opendaylight.yangtools.yang.data.api.schema.tree.spi.Version@267ba74b, data=ImmutableMapEntryNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)ipv4-route[&lt;/p&gt;
{(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)path-id=0, (urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)prefix=1.2.121.197/32}
&lt;p&gt;], value=[ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)path-id, value=0, attributes={}}, ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)prefix, value=1.2.121.197/32, attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)attributes, value=[ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)as-path, value=[], attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)origin, value=&lt;span class=&quot;error&quot;&gt;&amp;#91;ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)value, value=igp, attributes={}}&amp;#93;&lt;/span&gt;, attributes={}}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)local-pref, value=&lt;span class=&quot;error&quot;&gt;&amp;#91;ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)pref, value=100, attributes={}}&amp;#93;&lt;/span&gt;, attributes={}}, ImmutableChoiceNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)c-next-hop, value=[ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)ipv4-next-hop, value=&lt;span class=&quot;error&quot;&gt;&amp;#91;ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)global, value=127.0.0.1, attributes={}}&amp;#93;&lt;/span&gt;, attributes={}}]}, ImmutableContainerNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)multi-exit-disc, value=&lt;span class=&quot;error&quot;&gt;&amp;#91;ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:params:xml:ns:yang:bgp-inet?revision=2015-03-05)med, value=0, attributes={}}&amp;#93;&lt;/span&gt;, attributes={}}], attributes={}}], attributes={}}}&lt;br/&gt;
2016-11-18 18:00:17,826 | WARN  | lt-dispatcher-36 | ctModifiedNodeBasedCandidateNode | 85 - org.opendaylight.yangtools.yang-data-impl - 1.0.2.SNAPSHOT | Normal lookup: null&lt;/p&gt;

&lt;p&gt;So the key is present as a different object in the map, they compare as .equals() in both directions and report the same hash code.&lt;/p&gt;

&lt;p&gt;When we perform the lookup using the stored key, the map returns a value. When we perform the lookup using our key, the map returns null &amp;#8211; which is a violation of java.util.Map contract.&lt;/p&gt;

&lt;p&gt;Either the key&apos;s identity hash or identity comparison is used somewhere. Looking through TrieMap implementation, I do not see identity hash being used, nor keys being compared in any other way than through .equals().&lt;/p&gt;

&lt;p&gt;Next step will be to retry with JDK 1.8.0u60, to see if this problem is present.&lt;/p&gt;</comment>
                            <comment id="44082" author="rovarga" created="Fri, 18 Nov 2016 22:33:05 +0000"  >&lt;p&gt;Tracked down to &lt;a href=&quot;https://github.com/romix/java-concurrent-hash-trie-map/blob/master/src/main/java/com/romix/scala/collection/concurrent/TrieMap.java#L464&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/romix/java-concurrent-hash-trie-map/blob/master/src/main/java/com/romix/scala/collection/concurrent/TrieMap.java#L464&lt;/a&gt;, which looks like a bug. The same code is present in the Scala version of the code at &lt;a href=&quot;https://github.com/scala/scala/blob/2.12.x/src/library/scala/collection/concurrent/TrieMap.scala#L264&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/scala/scala/blob/2.12.x/src/library/scala/collection/concurrent/TrieMap.scala#L264&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I am not sure why identity comparison is used herre specifically, and the codepath only ever triggers for read-only trie &amp;#8211; hence I guess it is not as well-tested as the read-write case.&lt;/p&gt;</comment>
                            <comment id="44083" author="rovarga" created="Sat, 19 Nov 2016 08:29:38 +0000"  >&lt;p&gt;upstream: &lt;a href=&quot;https://github.com/romix/java-concurrent-hash-trie-map/pull/24&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/romix/java-concurrent-hash-trie-map/pull/24&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="44084" author="rovarga" created="Sat, 19 Nov 2016 08:43:57 +0000"  >&lt;p&gt;scala: &lt;a href=&quot;https://github.com/scala/scala/pull/5547&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/scala/scala/pull/5547&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="44085" author="rovarga" created="Mon, 21 Nov 2016 15:38:26 +0000"  >&lt;p&gt;Waiting for either an upstream release or helpdesk finish ticket #33071.&lt;/p&gt;</comment>
                            <comment id="44086" author="rovarga" created="Tue, 22 Nov 2016 22:31:23 +0000"  >&lt;p&gt;ODL-private package seeded.&lt;/p&gt;

&lt;p&gt;master: &lt;a href=&quot;https://git.opendaylight.org/gerrit/48531&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/48531&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="44087" author="rovarga" created="Wed, 23 Nov 2016 13:22:44 +0000"  >&lt;p&gt;boron: &lt;a href=&quot;https://git.opendaylight.org/gerrit/48611&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/48611&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="13065" name="BUG_6577_STEPS.txt" size="2507" author="claudio.gasparini@pantheon.tech" created="Fri, 18 Nov 2016 14:20:53 +0000"/>
                            <attachment id="13061" name="karaf.log.1.tar.gz" size="235124" author="claudio.gasparini@pantheon.tech" created="Wed, 16 Nov 2016 13:05:41 +0000"/>
                            <attachment id="13062" name="karaf.log.2.tar.gz" size="234478" author="claudio.gasparini@pantheon.tech" created="Wed, 16 Nov 2016 13:06:23 +0000"/>
                            <attachment id="13063" name="karaf.log.3.tar.gz" size="234398" author="claudio.gasparini@pantheon.tech" created="Wed, 16 Nov 2016 13:09:11 +0000"/>
                            <attachment id="13064" name="karaf.log.4.tar.gz" size="234395" author="claudio.gasparini@pantheon.tech" created="Wed, 16 Nov 2016 13:10:00 +0000"/>
                            <attachment id="13060" name="karaf.log.tar.gz" size="582" author="claudio.gasparini@pantheon.tech" created="Wed, 16 Nov 2016 13:04:55 +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_10207" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>External References</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>bgpcep_bgp_ingest_mixed_txt_singlepeer_changecount_check_listening_ipv4_topology_count&lt;br/&gt;
bgpcep_bgp_ingest_mixed_txt_singlepeer_changecount_check_for_empty_ipv4_topology_after_talking</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6577</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=6577]]></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="10335"><![CDATA[Boron-2]]></customfieldvalue>

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

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