<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:56:01 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-1624] DistributedShardChangePublisher seems to be vulnerable to shard&apos;s data tree change events ordering</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1624</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;The scenario is as follows.&lt;/p&gt;

&lt;p&gt;We have a DistributedShardChangePublisher that listens on shard&apos;s data tree change events and this shard has also some subshards. Then it seems that we are assuming that the DistributedShardChangePublisher will be notified with shard&apos;s data tree change event before any data tree change event from subshards.&lt;/p&gt;

&lt;p&gt;Clearly we cannot assure that.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="26178">CONTROLLER-1624</key>
            <summary>DistributedShardChangePublisher seems to be vulnerable to shard&apos;s data tree change events ordering</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="jmorvay@cisco.com">Jakub Morvay</reporter>
                        <labels>
                    </labels>
                <created>Thu, 30 Mar 2017 17:14:50 +0000</created>
                <updated>Tue, 25 Jul 2023 08:24:28 +0000</updated>
                            <resolved>Thu, 27 Apr 2017 11:09:30 +0000</resolved>
                                                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="51874" author="rovarga" created="Wed, 12 Apr 2017 11:38:24 +0000"  >&lt;p&gt;Right, so we need to stage the logic such that it has an initial phase when it records changes from subshards and only switches to assembling the data once it has observed the change from its own data tree.&lt;/p&gt;</comment>
                            <comment id="51875" author="jmorvay@cisco.com" created="Wed, 12 Apr 2017 11:59:54 +0000"  >&lt;p&gt;(In reply to Robert Varga from comment #1)&lt;br/&gt;
&amp;gt; Right, so we need to stage the logic such that it has an initial phase when&lt;br/&gt;
&amp;gt; it records changes from subshards and only switches to assembling the data&lt;br/&gt;
&amp;gt; once it has observed the change from its own data tree.&lt;/p&gt;

&lt;p&gt;Yeah, I was thinking about something similar. But we cannot know if there are any changes in subshards at all, so we cannot really wait for them (at least with current shard&apos;s data tree change listeners implementation).&lt;/p&gt;

&lt;p&gt;Another approach could be something like &quot;caching&quot; changes from subshards. If the change from subshard cannot be processed, because the change from shard&apos;s own data tree is still missing, we can just postpone processing of this change from subshard. Once we get the change event also for shard&apos;s own data tree, we can try to assemble the data also with cached changes from subshards. But this has to be thought trough in more detail.&lt;/p&gt;</comment>
                            <comment id="51876" author="tpantelis" created="Wed, 12 Apr 2017 14:05:03 +0000"  >&lt;p&gt;This has come up in general with DTCLs, ie the fact that it doesn&apos;t notify initially if there&apos;s no data. We could pretty easily change the backend to pass an empty change list but it technically breaks the DTCL API contract as it states that the passed list won&apos;t be empty. Perhaps we should just address this in Nitrogen. It would really simplify the blueprint clustered-app-config as well.&lt;/p&gt;

&lt;p&gt;(In reply to Jakub Morvay from comment #2)&lt;br/&gt;
&amp;gt; (In reply to Robert Varga from comment #1)&lt;br/&gt;
&amp;gt; &amp;gt; Right, so we need to stage the logic such that it has an initial phase when&lt;br/&gt;
&amp;gt; &amp;gt; it records changes from subshards and only switches to assembling the data&lt;br/&gt;
&amp;gt; &amp;gt; once it has observed the change from its own data tree.&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; Yeah, I was thinking about something similar. But we cannot know if there&lt;br/&gt;
&amp;gt; are any changes in subshards at all, so we cannot really wait for them (at&lt;br/&gt;
&amp;gt; least with current shard&apos;s data tree change listeners implementation).&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; Another approach could be something like &quot;caching&quot; changes from subshards.&lt;br/&gt;
&amp;gt; If the change from subshard cannot be processed, because the change from&lt;br/&gt;
&amp;gt; shard&apos;s own data tree is still missing, we can just postpone processing of&lt;br/&gt;
&amp;gt; this change from subshard. Once we get the change event also for shard&apos;s own&lt;br/&gt;
&amp;gt; data tree, we can try to assemble the data also with cached changes from&lt;br/&gt;
&amp;gt; subshards. But this has to be thought trough in more detail.&lt;/p&gt;</comment>
                            <comment id="51877" author="jmorvay@cisco.com" created="Mon, 24 Apr 2017 16:25:08 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/55921/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/55921/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="51878" author="jmorvay@cisco.com" created="Wed, 26 Apr 2017 12:29:42 +0000"  >&lt;p&gt;carbon:&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/56061/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/56061/&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>8116</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=8116]]></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="10314"><![CDATA[Carbon-RC1]]></customfieldvalue>

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

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