<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:33:08 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>[OPNFLWPLUG-691] FR-sync - Improve FRM calling RPC FlatBatch during Failover &amp; RETRY</title>
                <link>https://jira.opendaylight.org/browse/OPNFLWPLUG-691</link>
                <project id="10155" key="OPNFLWPLUG">OpenFlowPlugin</project>
                    <description>&lt;p&gt;This task continues &lt;a href=&quot;https://bugs.opendaylight.org/show_bug.cgi?id=5577&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://bugs.opendaylight.org/show_bug.cgi?id=5577&lt;/a&gt; - when FlatBatch RPC is not success then the RETRY is applied.&lt;/p&gt;

&lt;p&gt;In ODL cluster there supposed be concurrency/synchronization issue of two cluster nodes calling OFP RPC FlatBatch related to FAILOVER.&lt;/p&gt;

&lt;p&gt;Scenario: RPC ERROR -&amp;gt; RETRY -&amp;gt; FRM FAILOVER -&amp;gt; RECONCILE consist of this steps:&lt;br/&gt;
a. ODL Cluster Node1 receives Config or Operational DataTreeChange in Inventory and runs RPC FlatBatch&lt;br/&gt;
b. FlatBatch returned error but it has written certain flows/groups to the switch but not all of them (after error RETRY is needed)&lt;br/&gt;
c. but FRM FAILOVER occurs (it means Config+Operational DataTreeChange will not be received on ODL Cluster Node1 but rather on ODL Cluster Node2)&lt;br/&gt;
d. ODL Cluster Node1 needs to stop scheduling RETRY&lt;br/&gt;
e. ODL Cluster Node1 might have been quick and was able to RETRY RPC FlatBatch &lt;br/&gt;
f. ODL Cluster Node2 needs reconcile (all missing flow/groups are supposed to be written but it uses latest version of config and inventory) run RPC FlatBatch&lt;/p&gt;


&lt;p&gt;Assumptions:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;RECONCILIATION is made only when new node appears in Operation Inventory DS. During FAILOVER will not be recreated in Operational Inventory DS.&lt;/li&gt;
	&lt;li&gt;(related to above point d.) RETRY is scheduled/triggered by Inventory Operational DataTreeChange notification&lt;/li&gt;
	&lt;li&gt;If old leader becomes slave no RETRIES are not scheduled anymore because the DataTreeChange notification will not be received&lt;/li&gt;
	&lt;li&gt;(related to above point e. and f.) concurrent calls from two different nodes of the cluster might occur (FRM of old DS leader and FRM of new DS leader)&lt;/li&gt;
	&lt;li&gt;if Cluster Node1 is running RPC for concrete device then Node2 needs to get RPC concurrent error and Node 2 needs to RETRY&lt;/li&gt;
	&lt;li&gt;if Cluster Node2 is running RPC for concrete device then Node1 needs to get RPC concurrent error because of obsolete data (what about using operational data timestamp? both RETRY and RECONCILIATION needs to use Operational Data) and Node1 should not RETRY&lt;/li&gt;
	&lt;li&gt;(related to above point f.) Node2 needs to know that RECONCILE is needed (FAILOVER occured)&lt;/li&gt;
	&lt;li&gt;what about comparing timestamps of last operational data? (other problematic alternative a/ ClusterDataTreeChangeListener + EOS, b/ existing API modification to know about this event)&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="27959">OPNFLWPLUG-691</key>
            <summary>FR-sync - Improve FRM calling RPC FlatBatch during Failover &amp; RETRY</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="andrejleitner">Andrej Leitner</assignee>
                                    <reporter username="jozef.slezak@pantheon.sk">Jozef Slez&#225;k</reporter>
                        <labels>
                    </labels>
                <created>Thu, 19 May 2016 13:18:14 +0000</created>
                <updated>Mon, 27 Sep 2021 09:01:48 +0000</updated>
                            <resolved>Thu, 28 Jul 2016 11:01:11 +0000</resolved>
                                                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="57889" author="andrejleitner" created="Tue, 12 Jul 2016 16:49:37 +0000"  >&lt;p&gt;currently trying to resolve this issue within &lt;a href=&quot;https://jira.opendaylight.org/browse/OPNFLWPLUG-725&quot; title=&quot;FRsync &#8211; integrate with single cluster-wide service API&quot; class=&quot;issue-link&quot; data-issue-key=&quot;OPNFLWPLUG-725&quot;&gt;&lt;del&gt;OPNFLWPLUG-725&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="57890" author="andrejleitner" created="Thu, 28 Jul 2016 11:01:11 +0000"  >&lt;p&gt;merged in &lt;a href=&quot;https://jira.opendaylight.org/browse/OPNFLWPLUG-725&quot; title=&quot;FRsync &#8211; integrate with single cluster-wide service API&quot; class=&quot;issue-link&quot; data-issue-key=&quot;OPNFLWPLUG-725&quot;&gt;&lt;del&gt;OPNFLWPLUG-725&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/q/project:openflowplugin+branch:master+topic:bug6170&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/q/project:openflowplugin+branch:master+topic:bug6170&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="27993">OPNFLWPLUG-725</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>5919</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=5919]]></customfieldvalue>

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

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

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

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