<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:33:19 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-762] When OpenFlow-capable switch goes down while RPC {add,remove,update}-flow is invoked, RESTCONF sockets are leaked</title>
                <link>https://jira.opendaylight.org/browse/OPNFLWPLUG-762</link>
                <project id="10155" key="OPNFLWPLUG">OpenFlowPlugin</project>
                    <description>&lt;p&gt;When OpenFlow-capable switch goes down while invoking RPC &lt;/p&gt;
{add,remove,update}
&lt;p&gt;-flow, RESTCONF socket are leaked, ending in CLOSE_WAIT state.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;HOW TO REPRODUCE:&lt;br/&gt;
1. start OFP&lt;br/&gt;
2. feature:install odl-openflowplugin-flow-services-ui&lt;br/&gt;
3. connect a switch (OvS for instance)&lt;br/&gt;
4. run a script adding flow continuously (e.g. script attached)&lt;br/&gt;
5. disconnect the OvS&lt;/p&gt;

&lt;p&gt;--&amp;gt; Observe result are:&lt;br/&gt;
a. the terminal window looping on the script is hanging on latest sent request&lt;br/&gt;
b. lsof -i :8181 or ss -nat | grep 8181 or whatever command to see open socket for port 8181&lt;br/&gt;
b. i. socket will be in ESTABLISHED state while a. is true&lt;br/&gt;
   ii. stop the loop in the terminal --&amp;gt; the socket will be in CLOSE_WAIT&lt;br/&gt;
java      37558 adetalhouet   55u  IPv6 0x2ef40e38b9d5893f      0t0  TCP localhost:8181-&amp;gt;localhost:50860 (CLOSE_WAIT)&lt;/p&gt;

&lt;p&gt;In a scaled environment, while provisioning switches, network can flap, thus failing those operations.&lt;/p&gt;

&lt;p&gt;Even though nobody has complained about this, I believe this is a critical BUG as a fairly easy reproducible bug.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="28030">OPNFLWPLUG-762</key>
            <summary>When OpenFlow-capable switch goes down while RPC {add,remove,update}-flow is invoked, RESTCONF sockets are leaked</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="adetalhouet">Alexis de Talhou&#235;t</reporter>
                        <labels>
                    </labels>
                <created>Fri, 2 Sep 2016 18:39:00 +0000</created>
                <updated>Mon, 27 Sep 2021 09:01:53 +0000</updated>
                            <resolved>Thu, 8 Sep 2016 12:58:01 +0000</resolved>
                                                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="58273" author="adetalhouet" created="Fri, 2 Sep 2016 18:39:00 +0000"  >&lt;p&gt;Attachment add-flow.sh has been added with description: add-flow script&lt;/p&gt;</comment>
                            <comment id="58266" author="adetalhouet" created="Fri, 2 Sep 2016 18:47:46 +0000"  >&lt;p&gt;Proposed fix:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/45112/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/45112/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="58267" author="adetalhouet" created="Fri, 2 Sep 2016 18:48:06 +0000"  >&lt;p&gt;I better fix should be provided to make this configurable.&lt;/p&gt;</comment>
                            <comment id="58268" author="andrejleitner" created="Tue, 6 Sep 2016 09:49:18 +0000"  >&lt;p&gt;Hi Alexis,&lt;br/&gt;
as you have already seen, at first I reworked your patch to use timeout as config parameter. However at this time I do not think setting timer to fail rpc future after certain limit is good idea. What about heavy traffic and longer response time? It could accidentally fail rpc requests we don&apos;t want to fail. We need to fail them only if we know what we are doing (e.g. device disconnected. not sure why they do not fail themselves). I will look at that.&lt;/p&gt;</comment>
                            <comment id="58269" author="adetalhouet" created="Tue, 6 Sep 2016 12:07:16 +0000"  >&lt;p&gt;Andrej, I understand what I&apos;ve done isn&apos;t the right thing, as I believe I underlined this as well &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;br/&gt;
For sure a good fix would be to find where the resources aren&apos;t closed, triggering the failure of on-going RPCs.&lt;br/&gt;
That said I have a really little knowledge of the OFP architecture, thus the purpose of my patch was just to outline where the issue resides, letting its resolution to expert like you.&lt;br/&gt;
If you want me to test a potential fix, let me know.&lt;/p&gt;</comment>
                            <comment id="58270" author="andrejleitner" created="Wed, 7 Sep 2016 10:28:16 +0000"  >&lt;p&gt;Hi Alexis, &lt;br/&gt;
more patches were merged yesterday for blocking bugs in openflowplugin (and related bugs in openflowjava). I built locally actual master of ofjava and ofplugin and tested your scenario. After mininet disconnect:&lt;/p&gt;

&lt;p&gt;(ad a.) I do not see looping script hanging. It continues sending requests and getting (unsuccesful) responses. &lt;/p&gt;

&lt;p&gt;(ad b. ii.) After stopping loop socket changed to CLOSE_WAIT for a while and closed then.&lt;/p&gt;

&lt;p&gt;Could you test it again with latest codebase?&lt;/p&gt;

&lt;p&gt;Question for me is who should take care of flying requests during device disconnect. Now I see as the error in last rest response OutboundQueueException from openflowjava with Device disconnected message. If we would actively fail requests from openflowplugin we can get around the exception and fail only with error message.&lt;/p&gt;</comment>
                            <comment id="58271" author="adetalhouet" created="Wed, 7 Sep 2016 19:20:29 +0000"  >&lt;p&gt;&amp;gt; Could you test it again with latest codebase?&lt;/p&gt;

&lt;p&gt;I recompiled ofj and ofp and re-tested the scenario but I&apos;m still facing same issue. I was never able to get it working as you did. Maybe artifacts weren&apos;t yet published to nexus.&lt;br/&gt;
I&apos;ll give it another try tomorrow.&lt;/p&gt;</comment>
                            <comment id="58272" author="adetalhouet" created="Thu, 8 Sep 2016 12:58:01 +0000"  >&lt;p&gt;I have just retried with fresh recompilation of ofj and ofp, I can say that this BUG is indeed fix.&lt;/p&gt;

&lt;p&gt;AFAIK it is related the fix is related to this patch: &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/45231/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/45231/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So this BUG might have been a duplicate of &lt;a href=&quot;https://jira.opendaylight.org/browse/OPNFLWJAVA-79&quot; title=&quot;Infinite reschedule of flush&quot; class=&quot;issue-link&quot; data-issue-key=&quot;OPNFLWJAVA-79&quot;&gt;&lt;del&gt;OPNFLWJAVA-79&lt;/del&gt;&lt;/a&gt; with a different impact.&lt;/p&gt;

&lt;p&gt;Thanks Andrej.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="14082" name="add-flow.sh" size="1161" author="adetalhouet89@gmail.com" created="Fri, 2 Sep 2016 18:39:00 +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_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6625</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=6625]]></customfieldvalue>

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

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