<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:59:58 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>[GENIUS-122] DataTreeEventCallbackRegistrar really needs a timeout</title>
                <link>https://jira.opendaylight.org/browse/GENIUS-122</link>
                <project id="10126" key="GENIUS">genius</project>
                    <description>&lt;p&gt;Now that the registrar is being used in more general code flows there really needs to be a safety mechanism in the form of a timeout just in case the specific expected event never happens.&lt;/p&gt;</description>
                <environment></environment>
        <key id="29760">GENIUS-122</key>
            <summary>DataTreeEventCallbackRegistrar really needs a timeout</summary>
                <type id="10103" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10311&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <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="vorburger">Michael Vorburger</assignee>
                                    <reporter username="jhershbe">Josh Hershberg</reporter>
                        <labels>
                    </labels>
                <created>Thu, 12 Apr 2018 12:56:38 +0000</created>
                <updated>Tue, 29 May 2018 15:03:18 +0000</updated>
                            <resolved>Mon, 28 May 2018 11:06:20 +0000</resolved>
                                                    <fixVersion>Oxygen-SR2</fixVersion>
                    <fixVersion>Fluorine</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="62373" author="jhershbe" created="Thu, 12 Apr 2018 13:06:11 +0000"  >&lt;p&gt;Here&apos;s my design idea. I think there should be new versions of the onX methods that accept two more params:&#160;&lt;/p&gt;

&lt;p&gt;onX (..., long timeout, Runnable onTimeout) ...Runnable is what you use if you want to pass a lambda that takes no params and returns nothing, right?&lt;/p&gt;

&lt;p&gt;I think we should consider deprecating the old versions eventually.&#160;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="62374" author="jhershbe" created="Thu, 12 Apr 2018 13:14:43 +0000"  >&lt;p&gt;Actually, scratch that. It should take a Consumer&amp;lt;InstanceIdentifier&amp;gt; which should be the instance identifier the registration was on so that if there were two registrations from the same code for different objects in the md-sal they can be differentiated by the timeout routine.&lt;/p&gt;</comment>
                            <comment id="62446" author="vorburger" created="Mon, 16 Apr 2018 12:26:56 +0000"  >&lt;p&gt;That makes sense to me, with a Consumer&amp;lt;InstanceIdentifier&amp;lt;T&amp;gt;&amp;gt; ... I&apos;m a little undecided how we&apos;ll related this to NextAction UNREGISTER &lt;b&gt;VS&lt;/b&gt; CALL_AGAIN - does a timeout make sense for both? Let me see if I can put together a Gerrit with a (first version of) this, and we we can review the concrete code.&lt;/p&gt;</comment>
                            <comment id="62450" author="vorburger" created="Mon, 16 Apr 2018 13:48:07 +0000"  >&lt;p&gt;actually it really should be a &#160;Consumer&amp;lt;DataTreeIdentifier&amp;lt;T&amp;gt;&amp;gt;&#160;not a &#160;Consumer&amp;lt;InstanceIdentifier&amp;lt;T&amp;gt;&amp;gt;&#160;&lt;/p&gt;</comment>
                            <comment id="62452" author="vorburger" created="Mon, 16 Apr 2018 14:04:11 +0000"  >&lt;p&gt;c/70985 has (an initial first version of) this now.. still Draft; let the build situation get sorted, and I&apos;ll undraft it, for build. If that gets +1, I&apos;ll need to still extend it to cover all methods, and perhaps somehow take this idea from &lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=jhershbe&quot; class=&quot;user-hover&quot; rel=&quot;jhershbe&quot;&gt;jhershbe&lt;/a&gt; into account in a follow-up change improvement:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I think that you need to make sure that the timeout call can not happen while the handler function is running. Like, if a notification happens and just then the timer fires, the timeout event should wait until after the DTCL finishes calling the supplied handler function. &lt;/p&gt;&lt;/blockquote&gt;</comment>
                            <comment id="62454" author="vorburger" created="Mon, 16 Apr 2018 15:12:02 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=vorburger&quot; class=&quot;user-hover&quot; rel=&quot;vorburger&quot;&gt;vorburger&lt;/a&gt; getting the concurrency correct for this is actually not trivial; further to above, what if e.g. the DTCL were to fire while we&apos;ve just called the timeout callback (but may not yet be finished with it), that&apos;s not yet handled (as of Change Set 2),&#160;and probably more such cases.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=tpantelis&quot; class=&quot;user-hover&quot; rel=&quot;tpantelis&quot;&gt;tpantelis&lt;/a&gt; may help us getting this right and if time will follow-up on&#160;c/70985 with edge case tests and needed fixes.&lt;/p&gt;</comment>
                            <comment id="63152" author="vorburger" created="Mon, 28 May 2018 11:06:20 +0000"  >&lt;p&gt;Done now. &lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=k.faseela&quot; class=&quot;user-hover&quot; rel=&quot;k.faseela&quot;&gt;k.faseela&lt;/a&gt; has also back-ported this from master (Fluorine) to stable Oxygen AFAIK.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="29700">GENIUS-119</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03da7:</customfieldvalue>

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