<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:51:57 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-7] System can go into livelock after forwarding state is established between multiple switches</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-7</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;Currently there is no liveness capability based on echo/echo_reply to flag a switch as down.. SwitchHandler might be hinted on NIO channel read errors to start a polling interval.&lt;/p&gt;

&lt;p&gt;Procedure:&lt;/p&gt;

&lt;p&gt;Utilize SimpleForwarding sample app to provide learning_bridge capability&lt;br/&gt;
Establish topology of roughly 15 switches leveraging mininet simulator.&lt;br/&gt;
Do a pairwise ping to establish flow-state&lt;br/&gt;
Bounce switches by exiting mininet.&lt;/p&gt;


&lt;p&gt;A number of services continue to try and read from the channel consuming SwitchEvent and queue entries. There are references to these objects which are never freed which keeps them in OldGen space until the heap is exhausted.&lt;/p&gt;

&lt;p&gt;Heap Histogram&lt;/p&gt;

&lt;p&gt; num     #instances         #bytes  class name&lt;br/&gt;
----------------------------------------------&lt;br/&gt;
   1:      18815125      451563000  java.util.concurrent.LinkedBlockingQueue$Node&lt;br/&gt;
   2:      18814799      451555176  o.o.c.p.openflow.core.internal.SwitchEvent&lt;br/&gt;
   3:         86428       13728920  &amp;lt;constMethodKlass&amp;gt;&lt;br/&gt;
   4:         75675       13373088  [C&lt;br/&gt;
   5:         86428       11764480  &amp;lt;methodKlass&amp;gt;&lt;br/&gt;
   6:          8782       10267656  &amp;lt;constantPoolKlass&amp;gt;&lt;br/&gt;
   7:          8782        6374792  &amp;lt;instanceKlassKlass&amp;gt;&lt;/p&gt;


&lt;p&gt;Rapidly the heap grows filling Eden and OldGen space until no new objects can be created.&lt;/p&gt;

&lt;p&gt;Heap GC&lt;/p&gt;

&lt;p&gt;  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   &lt;br/&gt;
  0.00 100.00 100.00 100.00  99.65    306    7.199    40   55.495   62.694&lt;br/&gt;
  0.00 100.00 100.00 100.00  99.65    306    7.199    40   55.495   62.694&lt;br/&gt;
  0.00 100.00 100.00 100.00  99.65    306    7.199    40   55.495   62.694&lt;br/&gt;
  0.00 100.00 100.00 100.00  99.65    306    7.199    40   55.495   62.694&lt;br/&gt;
  0.00 100.00 100.00 100.00  99.62    306    7.199    40   55.495   62.694&lt;br/&gt;
  0.00 100.00 100.00 100.00  99.62    306    7.199    40   55.495   62.694&lt;br/&gt;
  0.00   0.00  67.58 100.00  99.62    306    7.199    40   58.027   65.226&lt;br/&gt;
  0.00   5.77 100.00 100.00  99.62    306    7.199    40   58.027   65.226&lt;br/&gt;
  0.00 100.00 100.00 100.00  99.62    306    7.199    41   58.027   65.226&lt;br/&gt;
  0.00 100.00 100.00 100.00  99.62    306    7.199    41   58.027   65.226&lt;br/&gt;
  0.00 100.00 100.00 100.00  99.62    306    7.199    41   58.027   65.226&lt;br/&gt;
  0.00 100.00 100.00 100.00  99.62    306    7.199    41   58.027   65.226&lt;br/&gt;
  0.00 100.00 100.00 100.00  99.62    306    7.199    41   58.027   65.226&lt;br/&gt;
  0.00 100.00 100.00 100.00  99.62    306    7.199    41   58.027   65.226&lt;br/&gt;
  0.00 100.00 100.00 100.00  99.62    306    7.199    41   58.027   65.226&lt;br/&gt;
  0.00 100.00 100.00 100.00  99.62    306    7.199    41   58.027   65.226&lt;br/&gt;
  0.00 100.00 100.00 100.00  99.62    306    7.199    41   58.027   65.226&lt;/p&gt;

&lt;p&gt;A timer must be implemented to clean up switch events and possibly trigger a cleanup of new messages (Statistics, FlowMods) based on a call back to AsynchronousCloseException.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: Linux&lt;br/&gt;
Platform: Other&lt;/p&gt;</environment>
        <key id="24561">CONTROLLER-7</key>
            <summary>System can go into livelock after forwarding state is established between multiple switches</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="10001">Won&apos;t Do</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="gaberger@cisco.com">Gary Berger</reporter>
                        <labels>
                    </labels>
                <created>Thu, 11 Apr 2013 22:04:00 +0000</created>
                <updated>Thu, 19 Oct 2017 21:26:36 +0000</updated>
                            <resolved>Thu, 21 Apr 2016 17:22:52 +0000</resolved>
                                    <version>0.4.0</version>
                                                    <component>adsal</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="47266" author="mkothand@in.ibm.com" created="Wed, 5 Jun 2013 21:53:47 +0000"  >&lt;p&gt;Gary, &lt;/p&gt;

&lt;p&gt;Took a look at your observation. Wanted a clarification on the same. The EventHandler thread of Controller seems to be clearing the events by scanning the switch-events queue and when switches are bounced, the switch-error event is sent to switch-events queue and consumed by EventHandler for cleanup. &lt;/p&gt;

&lt;p&gt;But your observation seems to indicate that the events are residual. Am I missing something or misunderstanding your observation ?&lt;/p&gt;

&lt;p&gt;Regards&lt;br/&gt;
Muthu&lt;/p&gt;</comment>
                            <comment id="47267" author="carolsand@gmail.com" created="Mon, 4 May 2015 20:16:08 +0000"  >&lt;p&gt;This bug is part of the project to Move all ADSAL associated component bugs to ADSAL&lt;/p&gt;</comment>
                            <comment id="47268" author="rovarga" created="Thu, 21 Apr 2016 17:22:52 +0000"  >&lt;p&gt;AD-SAL was removed, hence won&apos;t fix.&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>9</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=9]]></customfieldvalue>

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

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