<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:32:54 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-599] He: FlowCapableInventoryProvider thread dies</title>
                <link>https://jira.opendaylight.org/browse/OPNFLWPLUG-599</link>
                <project id="10155" key="OPNFLWPLUG">OpenFlowPlugin</project>
                    <description>&lt;p&gt;The thread that polls from the queue (Named &#8220;FlowCapableInventoryProvider&#8221;) died at our system, because of an exception in one of the handlers.&lt;br/&gt;
The run() loop should be protected from exceptions.&lt;/p&gt;

&lt;p&gt;The Exception that made the thread die:&lt;br/&gt;
Exception in thread &quot;FlowCapableInventoryProvider&quot; java.lang.IllegalArgumentException: Instance identifier references (urn:opendaylight:inventory?revision=2013-08-19)node-connector[&lt;/p&gt;
{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:4:3}
&lt;p&gt;] but data identifier is ImmutableMapEntryNode{nodeIdentifier=(urn:opendaylight:inventory?revision=2013-08-19)node-connector[&lt;/p&gt;
{(urn:opendaylight:inventory?revision=2013-08-19)id=3}
&lt;p&gt;], value=&lt;span class=&quot;error&quot;&gt;&amp;#91;ImmutableLeafNode{nodeIdentifier=(urn:opendaylight:inventory?revision=2013-08-19)id, value=3, attributes={}}&amp;#93;&lt;/span&gt;, attributes={}}&lt;/p&gt;

&lt;p&gt;This caused deadlocks in the system, because inventory change operations are now stuck.&lt;/p&gt;

&lt;p&gt;This is the thread that polls from the Notifications Queue, it is stuck because the FlowCapableInventoryProvider is dead:&lt;br/&gt;
&quot;pool-31-thread-1&quot; prio=10 tid=0x00007fd9d4f02000 nid=0x17e7 waiting on condition &lt;span class=&quot;error&quot;&gt;&amp;#91;0x00007fda80f70000&amp;#93;&lt;/span&gt;&lt;br/&gt;
   java.lang.Thread.State: WAITING (parking)&lt;br/&gt;
        at sun.misc.Unsafe.park(Native Method)&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;parking to wait for  &amp;lt;0x000000072b8d69c8&amp;gt; (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)&lt;br/&gt;
        at java.util.concurrent.locks.LockSupport.park(Unknown Source)&lt;br/&gt;
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)&lt;br/&gt;
        at java.util.concurrent.LinkedBlockingDeque.putLast(Unknown Source)&lt;br/&gt;
        at java.util.concurrent.LinkedBlockingDeque.put(Unknown Source)&lt;br/&gt;
        at org.opendaylight.openflowplugin.applications.inventory.manager.FlowCapableInventoryProvider.enqueue(FlowCapableInventoryProvider.java:60)&lt;br/&gt;
        at org.opendaylight.openflowplugin.applications.inventory.manager.NodeChangeCommiter.onNodeRemoved(NodeChangeCommiter.java:125)&lt;/li&gt;
	&lt;li&gt;locked &amp;lt;0x000000072b8d6a40&amp;gt; (a org.opendaylight.openflowplugin.applications.inventory.manager.NodeChangeCommiter)&lt;br/&gt;
        at org.opendaylight.yangtools.yang.binding.util.NotificationListenerInvoker.invokeNotification(NotificationListenerInvoker.java:91)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationListenerAdapter.onNotification(BindingDOMNotificationListenerAdapter.java:44)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouterEvent.deliverNotification(DOMNotificationRouterEvent.java:50)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter$1.onEvent(DOMNotificationRouter.java:68)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter$1.onEvent(DOMNotificationRouter.java:65)&lt;br/&gt;
        at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128)&lt;br/&gt;
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)&lt;br/&gt;
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)&lt;br/&gt;
        at java.lang.Thread.run(Unknown Source)&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;So the Notifications Queue is full, and then we can&#8217;t put new Notifications:&lt;br/&gt;
&quot;nioEventLoopGroup-11-83&quot; prio=10 tid=0x00007fd698061800 nid=0xb7bf runnable &lt;span class=&quot;error&quot;&gt;&amp;#91;0x00007fd5a6997000&amp;#93;&lt;/span&gt;&lt;br/&gt;
   java.lang.Thread.State: TIMED_WAITING (parking)&lt;br/&gt;
        at sun.misc.Unsafe.park(Native Method)&lt;br/&gt;
        at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)&lt;br/&gt;
        at com.lmax.disruptor.MultiProducerSequencer.next(MultiProducerSequencer.java:136)&lt;br/&gt;
        at com.lmax.disruptor.MultiProducerSequencer.next(MultiProducerSequencer.java:105)&lt;br/&gt;
        at com.lmax.disruptor.RingBuffer.next(RingBuffer.java:246)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter.putNotification(DOMNotificationRouter.java:200)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationPublishServiceAdapter.putNotification(BindingDOMNotificationPublishServiceAdapter.java:51)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.binding.compat.HeliumNotificationProviderServiceAdapter.publish(HeliumNotificationProviderServiceAdapter.java:33)&lt;br/&gt;
        at org.opendaylight.openflowplugin.openflow.md.core.sal.OFRpcTaskUtil$1FutureCallbackImpl.onSuccess(OFRpcTaskUtil.java:115)&lt;br/&gt;
        at org.opendaylight.openflowplugin.openflow.md.core.sal.OFRpcTaskUtil$1FutureCallbackImpl.onSuccess(OFRpcTaskUtil.java:101)&lt;br/&gt;
&#8230;.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: Linux&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="27867">OPNFLWPLUG-599</key>
            <summary>He: FlowCapableInventoryProvider thread dies</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="narayanan.bhalaji@ericsson.com">Bhalaji Narayanan</assignee>
                                    <reporter username="guy.sela@hpe.com">Guy Sela</reporter>
                        <labels>
                    </labels>
                <created>Wed, 20 Jan 2016 08:43:46 +0000</created>
                <updated>Mon, 27 Sep 2021 09:01:42 +0000</updated>
                            <resolved>Wed, 23 Mar 2016 15:21:17 +0000</resolved>
                                                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>9</watches>
                                                                                                                <comments>
                            <comment id="57504" author="rovarga" created="Sun, 24 Jan 2016 21:50:47 +0000"  >&lt;p&gt;The first exceptions points to a coding bug, incorrect data is being stored &amp;#8211; the identifier where we store the data does not match the data item itself. I think that makes it a release blocker.&lt;/p&gt;</comment>
                            <comment id="57505" author="abhijit2511" created="Mon, 25 Jan 2016 03:45:18 +0000"  >&lt;p&gt;Guy,&lt;/p&gt;

&lt;p&gt;Is this reproducible or did it happen once? Are there steps to reproduce the bug?&lt;/p&gt;

&lt;p&gt;Abhijit&lt;/p&gt;</comment>
                            <comment id="57506" author="matanel.deutsch@hpe.com" created="Mon, 25 Jan 2016 13:21:17 +0000"  >&lt;p&gt;Hi&lt;br/&gt;
in order to reproduce this do the following:&lt;br/&gt;
use a new yang augmentation on the node-connector-updated for example:&lt;/p&gt;

&lt;p&gt;    augment &quot;/inv:node-connector-updated&quot; &lt;/p&gt;
{
        ext:augment-identifier &quot;new-node-connector-updated&quot;;
        description &quot;port status updated notification.&quot;;
        uses some-grouping;
    }
&lt;p&gt; &lt;/p&gt;

&lt;p&gt;generate java class from this YANG and use it in a notification service(NotificationProviderService) with publish method.&lt;/p&gt;</comment>
                            <comment id="57507" author="likeawind510@gmail.com" created="Wed, 10 Feb 2016 19:09:13 +0000"  >&lt;p&gt;This is a new update for Updated FlowCapableInventoryProvider class. Two changes on is run() and one in submitOperations()&lt;/p&gt;</comment>
                            <comment id="57514" author="likeawind510@gmail.com" created="Wed, 10 Feb 2016 19:09:13 +0000"  >&lt;p&gt;Attachment FlowCapableInventoryProvider.java has been added with description: Updated FlowCapableInventoryProvider class&lt;/p&gt;</comment>
                            <comment id="57508" author="likeawind510@gmail.com" created="Wed, 10 Feb 2016 19:23:43 +0000"  >&lt;p&gt;This FlowCapableInventoryProvider thread actually poses two bugs. The first bug is about memory leak. If you run SDN application to install some rules or flows on a Openflow-supporting switch, through the time it will consume heap memory up. The reason for the bug is that in the infinite loop for(;&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; an arraylist is allocated overheatedly. In order to prevent from allocating so many times, the decalaration of the arraylist should be put out of the infinate loop.&lt;/p&gt;

&lt;p&gt;The second bug is about the mismatch of instance indentifiers. In the submitOperations function, and in the catch block a retry of summiting transaction is conducted but without any try-catch block to prevent the exception happen again because we still have mismatch error. In order to fix that, we need to add another try-catch block again to handle the exception in order to prevent the FlowCapableInventoryProvider thread from crashing.&lt;/p&gt;</comment>
                            <comment id="57509" author="shuva.jyoti.kar.87@gmail.com" created="Thu, 11 Feb 2016 19:39:10 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/34462&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/34462&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="57510" author="vishnoianil@gmail.com" created="Thu, 11 Feb 2016 19:43:48 +0000"  >&lt;p&gt;shuva, looks like this patch is abandoned, is there any other patch that you pushed?&lt;/p&gt;</comment>
                            <comment id="57511" author="abhijit2511" created="Thu, 11 Feb 2016 23:31:47 +0000"  >&lt;p&gt;Patch in stable/beryllium:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/34515/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/34515/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="57512" author="abhijit2511" created="Thu, 11 Feb 2016 23:33:51 +0000"  >&lt;p&gt;Patch in master:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/34505/4&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/34505/4&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="57513" author="likeawind510@gmail.com" created="Fri, 12 Feb 2016 00:25:23 +0000"  >&lt;p&gt;So the memory leak bug is neglected in your patch or is it out of scope of the bug? The memory leak bug is even more crucial because in my case when I&apos;ve fixed it I haven&apos;t seen FlowCapaleInventoryProvider thread dies again&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="14024" name="FlowCapableInventoryProvider.java" size="8812" author="likeawind510@gmail.com" created="Wed, 10 Feb 2016 19:09:13 +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>5020</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=5020]]></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_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i0325b:</customfieldvalue>

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