<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:13:43 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>[BGPCEP-648] Race condition between LocRib change update and Peer table structure creation</title>
                <link>https://jira.opendaylight.org/browse/BGPCEP-648</link>
                <project id="10108" key="BGPCEP">bgpcep</project>
                    <description></description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="23888">BGPCEP-648</key>
            <summary>Race condition between LocRib change update and Peer table structure creation</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="cdgasparini">Claudio David Gasparini</assignee>
                                    <reporter username="cdgasparini">Claudio David Gasparini</reporter>
                        <labels>
                    </labels>
                <created>Mon, 20 Mar 2017 12:59:54 +0000</created>
                <updated>Sun, 3 Mar 2019 11:50:01 +0000</updated>
                            <resolved>Fri, 12 May 2017 12:24:16 +0000</resolved>
                                    <version>Bugzilla Migration</version>
                                    <fixVersion>Bugzilla Migration</fixVersion>
                                    <component>BGP</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="46124" author="cdgasparini" created="Mon, 20 Mar 2017 13:01:58 +0000"  >&lt;p&gt;(In reply to Milos Fabian from comment #4)&lt;br/&gt;
&amp;gt; (In reply to Claudio D. Gasparini from comment #3)&lt;br/&gt;
&amp;gt; &amp;gt; (In reply to Milos Fabian from comment #2)&lt;br/&gt;
&amp;gt; &amp;gt; &amp;gt; (In reply to Milos Fabian from comment #1)&lt;br/&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; Reminds me &lt;a href=&quot;https://bugs.opendaylight.org/show_bug.cgi?id=4488&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.opendaylight.org/show_bug.cgi?id=4488&lt;/a&gt;&lt;br/&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; My theory:&lt;br/&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; When new peer (&quot;A&quot;) connects, it register itself to the&lt;br/&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; &quot;ExportPolicyPeerTracker&quot; (it&apos;s shared resource). Before the LocRibWriter&lt;br/&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; gets a data change notification about peer &quot;A&quot;, another peer (&quot;B&quot;) has&lt;br/&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; disconnected and it&apos;s routes are removed from Loc-RIB and from RIB-Outs of&lt;br/&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; other peers (based on peers registered in ExportPolicyPeerTracker). So we&lt;br/&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; are also trying to remove routes from peer &quot;A&quot; RIB-Out, however there no&lt;br/&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; routes.&lt;br/&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; &lt;br/&gt;
&amp;gt; &amp;gt; &amp;gt; &amp;gt; Simply it is a race condition on shared resource.&lt;br/&gt;
&amp;gt; &amp;gt; &amp;gt; &lt;br/&gt;
&amp;gt; &amp;gt; &amp;gt; This ExportPolicyPeerTracker registration change was done because of&lt;br/&gt;
&amp;gt; &amp;gt; &amp;gt; &lt;a href=&quot;https://bugs.opendaylight.org/show_bug.cgi?id=6747&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.opendaylight.org/show_bug.cgi?id=6747&lt;/a&gt;&lt;br/&gt;
&amp;gt; &amp;gt; &amp;gt; We might consider adding some additional flag to ExportPolicyPeerTracker,&lt;br/&gt;
&amp;gt; &amp;gt; &amp;gt; set when LocRibWriter discovers a new peer, until that peer is excluded from&lt;br/&gt;
&amp;gt; &amp;gt; &amp;gt; RIB-Out modification operations.&lt;br/&gt;
&amp;gt; &amp;gt; &lt;br/&gt;
&amp;gt; &amp;gt; I don&apos;t think that is the cause of the issue, when we do remove something&lt;br/&gt;
&amp;gt; &amp;gt; that doesn&apos;t exist there is no Exception error, indeed not change event is&lt;br/&gt;
&amp;gt; &amp;gt; produced under RibOutListener since nothing has changed.&lt;br/&gt;
&amp;gt; &amp;gt; Indeed for check this, I&lt;br/&gt;
&amp;gt; &amp;gt; - commented out addPathToDataStore -&amp;gt; therefore not path will be write under&lt;br/&gt;
&amp;gt; &amp;gt; Loc&lt;br/&gt;
&amp;gt; &amp;gt; - Post IPV4 Route via App Peer&lt;br/&gt;
&amp;gt; &amp;gt; - Remove previously route&lt;br/&gt;
&amp;gt; &amp;gt; &lt;br/&gt;
&amp;gt; &amp;gt; and as expected, AbstractRouteEntry#deleteRoute is executed and not&lt;br/&gt;
&amp;gt; &amp;gt; exception is thrown even that path is not there.&lt;br/&gt;
&amp;gt; &amp;gt; &lt;br/&gt;
&amp;gt; &amp;gt; I think the cause is removing when parent doesn&apos;t exist. &lt;br/&gt;
&amp;gt; &amp;gt; 1- It can be because peer still going up.&lt;br/&gt;
&amp;gt; &amp;gt; 2- Changes is listen meanwhile peer is closing.&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; Yeah, you are right, it is complaining because of missing parent.&lt;br/&gt;
&amp;gt; Still, shared ExportPolicyPeerTracker is an issue.&lt;br/&gt;
&amp;gt; So, the peer&apos;s empty tables (including RIB-Out) are created in RibInWriter,&lt;br/&gt;
&amp;gt; so peer&apos;s registration to ExportPolicyPeerTracker should be done once the&lt;br/&gt;
&amp;gt; tables are successfully written (write TX submit future is done)?&lt;/p&gt;

&lt;p&gt;register the flag once tables are written is not possible, since&lt;br/&gt;
LocRib initialize Peer with existent routes once it detects that new table has been created, then it can be a race between adding the peer to registry and the route initialization itself under LocRib.&lt;br/&gt;
Best solution as you mentioned before is to add a flag under Registry.&lt;br/&gt;
Aside from that, this is not the issue of this bug ( I will create a bug for previous issue). &lt;br/&gt;
Here the race is when peers are going down. They close and do clean up, but at the same time LocRib listen changes from the others peers removal and try to remove routes.&lt;/p&gt;</comment>
                            <comment id="46125" author="cdgasparini" created="Wed, 22 Mar 2017 15:33:55 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/53685/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/53685/&lt;/a&gt;&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>8021</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=8021]]></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="10336"><![CDATA[Carbon-RC0]]></customfieldvalue>

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

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