<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:56:22 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-1756] OOM due to huge Map in ShardDataTree</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1756</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;We&apos;re seeing an OOM in Red Hat internal scale testing:&lt;/p&gt;

&lt;p&gt;Our scenario is a cluster of 3 nodes with odl-netvirt-openstack being stress tested by OpenStack&apos;s rally benchmarking tool.&lt;/p&gt;

&lt;p&gt;The ODL version that this is being seen with is a a Carbon built last Thursday; specifically &lt;a href=&quot;https://nexus.opendaylight.org/content/repositories/opendaylight-carbon-epel-7-x86_64-devel/org/opendaylight/integration-packaging/opendaylight/6.2.0-0.1.20170817rel1931.el7.noarch/opendaylight-6.2.0-0.1.20170817rel1931.el7.noarch.rpm&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://nexus.opendaylight.org/content/repositories/opendaylight-carbon-epel-7-x86_64-devel/org/opendaylight/integration-packaging/opendaylight/6.2.0-0.1.20170817rel1931.el7.noarch/opendaylight-6.2.0-0.1.20170817rel1931.el7.noarch.rpm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We&apos;ve started testing with giving all 3 ODL node VMs just 2 GB, in an effort to understand ODL memory requirements better.  If it&apos;s just &quot;normal&quot; that we cannot run with 2 GB in such a &quot;real world&quot; scenario, we&apos;ll be gradually increasing Xmx in this environment - but we wanted to get community feedback for this OOM with 2 GB already.&lt;/p&gt;

&lt;p&gt;I&apos;ll attach, or provide links, to the usual HPROF, plus a &quot;Leak Suspects&quot; report produced by &lt;a href=&quot;https://www.eclipse.org/mat/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://www.eclipse.org/mat/&lt;/a&gt;, plus the Karaf log.&lt;/p&gt;

&lt;p&gt;Basically what we&apos;re seeing is a huge (&amp;gt;1 GB) Map in ShardDataTree (I&apos;m not sure if that&apos;s its Map&amp;lt;LocalHistoryIdentifier, ShardDataTreeTransactionChain&amp;gt; transactionChains or its Map&amp;lt;Payload, Runnable&amp;gt; replicationCallbacks).&lt;/p&gt;

&lt;p&gt;As far as I can tell from my limited understanding, this is not the same as &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1746&quot; title=&quot;OOM with large number of closed transactions&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1746&quot;&gt;&lt;del&gt;CONTROLLER-1746&lt;/del&gt;&lt;/a&gt; (there&apos;s nothing about &quot;closedTransactions&quot; anywhere..), and not &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1755&quot; title=&quot;RaftActor lastApplied index moves backwards&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1755&quot;&gt;&lt;del&gt;CONTROLLER-1755&lt;/del&gt;&lt;/a&gt; either?&lt;/p&gt;

&lt;p&gt;The Karaf log, among other errors which are less relevant in this context AFAIK, shows:&lt;/p&gt;

&lt;p&gt;(1) a lot of those &quot;ERROR ShardDataTree org.opendaylight.controller.sal-distributed-datastore - 1.5.2.Carbon | member-0-shard-default-operational: Failed to commit transaction ... java.lang.IllegalStateException: Store tree org.opendaylight.yangtools.yang.data.api.schema.tree.spi.MaterializedContainerNode@78fe0203 and candidate base org.opendaylight.yangtools.yang.data.api.schema.tree.spi&lt;br/&gt;
.MaterializedContainerNode@686861e8 differ&quot; errors - seems vaguely familiar from recent list posts, someone remind me what were those that all about again?&lt;/p&gt;

&lt;p&gt;(2) at the very end before it blows up, seems to indicate genius&apos; lockmanager perhaps not being too happy due to &quot; Waiting for the lock ... is timed out. retrying again&quot; - probably just an impact of this OOM?  Or could that (lockmanager) somehow be related and actually be the cause not the effect - could &quot;bad application code&quot; (like not closing DataBroker transaction correctly, or something like that?) cause this OOM?&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="26310">CONTROLLER-1756</key>
            <summary>OOM due to huge Map in ShardDataTree</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="-1">Unassigned</assignee>
                                    <reporter username="vorburger">Michael Vorburger</reporter>
                        <labels>
                    </labels>
                <created>Wed, 23 Aug 2017 10:42:14 +0000</created>
                <updated>Mon, 13 Nov 2017 16:57:42 +0000</updated>
                            <resolved>Tue, 19 Sep 2017 13:09:39 +0000</resolved>
                                    <version>Carbon</version>
                                                    <component>mdsal</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="52609" author="vorburger" created="Wed, 23 Aug 2017 10:53:53 +0000"  >&lt;p&gt;&amp;gt; links, to the usual HPROF, plus a &quot;Leak Suspects&quot; report produced by &lt;a href=&quot;https://www.eclipse.org/mat/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://www.eclipse.org/mat/&lt;/a&gt;, plus the Karaf log. PLUS a thread stack dump&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://drive.google.com/open?id=0B7gTXYDlI5sLOVByTFNZN0JFNHc&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://drive.google.com/open?id=0B7gTXYDlI5sLOVByTFNZN0JFNHc&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="52610" author="vorburger" created="Wed, 23 Aug 2017 11:42:39 +0000"  >&lt;p&gt;&amp;gt; could &quot;bad application code&quot; (like not closing DataBroker&lt;br/&gt;
&amp;gt; transaction correctly, or something like that?) cause this OOM?&lt;/p&gt;

&lt;p&gt;I don&apos;t suppose &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/62196/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/62196/&lt;/a&gt; could fix this kind of problem - is it important that all transactions are always either submitted or canceled?&lt;/p&gt;</comment>
                            <comment id="52611" author="vorburger" created="Wed, 23 Aug 2017 13:17:10 +0000"  >&lt;p&gt;&amp;gt; don&apos;t suppose &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/62196/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/62196/&lt;/a&gt; could fix&lt;/p&gt;

&lt;p&gt;According to &lt;a href=&quot;https://lists.opendaylight.org/pipermail/mdsal-dev/2017-August/001311.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://lists.opendaylight.org/pipermail/mdsal-dev/2017-August/001311.html&lt;/a&gt; and a subsequent chat I&apos;ve had with Robert on #opendaylight IRC, that fixes ANOTHER (possible) OOM, related to a ReadWriteTransaction - which does need fixing, thus &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/62205/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/62205/&lt;/a&gt; MUST go into stable/carbon.&lt;/p&gt;

&lt;p&gt;However, according to Robert, the OOM seen here is due to a TransactionChain (not a ReadWriteTransaction) which is not closed somewhere - and we don&apos;t know where, yet - I&apos;ll see if I can find it...&lt;/p&gt;</comment>
                            <comment id="52612" author="vorburger" created="Wed, 23 Aug 2017 15:55:26 +0000"  >&lt;p&gt;&amp;gt; a TransactionChain (not a ReadWriteTransaction) which is not closed somewhere&lt;br/&gt;
&amp;gt; rovarga: vorburger: i.e. it is open, probably stored in a field of some object&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/62216/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/62216/&lt;/a&gt; fixes something I stumbled upon in netvirt bgpmanager BgpUtil which could be related to that; not sure, but let&apos;s get it in as well (together c/62205).&lt;/p&gt;

&lt;p&gt;&amp;gt; rovarga: try to reproduce first with the fix for 9028&lt;/p&gt;

&lt;p&gt;I&apos;m not very clear as to the relationship of this to &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1755&quot; title=&quot;RaftActor lastApplied index moves backwards&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1755&quot;&gt;&lt;del&gt;CONTROLLER-1755&lt;/del&gt;&lt;/a&gt; but based on above from Robert on IRC, making this bug dependant on &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1755&quot; title=&quot;RaftActor lastApplied index moves backwards&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1755&quot;&gt;&lt;del&gt;CONTROLLER-1755&lt;/del&gt;&lt;/a&gt;; we&apos;ll wait for either its &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/62170/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/62170/&lt;/a&gt; and/or &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/62169/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/62169/&lt;/a&gt; to be merged, and then we&apos;ll retry with that in our scale lab.&lt;/p&gt;

&lt;p&gt;Meanwhile I&apos;ve also seen a number of errors in the (huge) Karaf log from this which I missed earlier and which may be related to this (e.g. openflowplugin IllegalStateException: Attempted to close chain with outstanding transaction PingPongTransaction), and will now be opening more fine grained individual sub-bugs blocking this one for those points.&lt;/p&gt;</comment>
                            <comment id="52613" author="anipbu" created="Wed, 23 Aug 2017 17:31:21 +0000"  >&lt;p&gt;A patch was submitted to revert the changes and fix this bug in Carbon SR2:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/62205/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/62205/&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/62216/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/62216/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To better assess the impact of this bug and fix, could someone from your team please help us identify the following:&lt;br/&gt;
Regression: Is this bug a regression of functionality/performance/feature compared to Carbon?&lt;br/&gt;
Severity: Could you elaborate on the severity of this bug?  Is this a BLOCKER such that we cannot release Carbon SR2 without it?&lt;br/&gt;
Workaround: Is there a workaround such that we can write a release note instead?&lt;br/&gt;
Testing: Could you also elaborate on the testing of this patch?  How extensively has this patch been tested?  Is it covered by any unit tests or system tests?  &lt;br/&gt;
Impact: Does this fix impact any dependent projects?&lt;/p&gt;</comment>
                            <comment id="52614" author="vorburger" created="Wed, 23 Aug 2017 17:43:09 +0000"  >&lt;p&gt;&amp;gt; Regression: Is this bug a regression of functionality/performance/feature compared to Carbon?&lt;/p&gt;

&lt;p&gt;Dunno, but most likely this memory leak is present in Carbon as well.&lt;/p&gt;

&lt;p&gt;&amp;gt; Severity: Could you elaborate on the severity of this bug?  &lt;br/&gt;
&amp;gt; Is this a BLOCKER such that we cannot release Carbon SR2 without it?&lt;/p&gt;

&lt;p&gt;Yes; without this fixed, ODL is not usable at scale.&lt;/p&gt;

&lt;p&gt;&amp;gt; Workaround: Is there a workaround such that we can write a release note instead?&lt;/p&gt;

&lt;p&gt;Nope.&lt;/p&gt;

&lt;p&gt;&amp;gt; Testing: Could you also elaborate on the testing of this patch?  &lt;br/&gt;
&amp;gt; How extensively has this patch been tested?  Is it covered by any unit tests or system tests?  &lt;/p&gt;

&lt;p&gt;Only reproducible during real scale testing using e.g. OpenStack&apos;s rally benchmarking tool.&lt;/p&gt;

&lt;p&gt;Will be re-tested internally after patches (which are low risk) have been merged to stable branch.&lt;/p&gt;

&lt;p&gt;&amp;gt; Impact: Does this fix impact any dependent projects?&lt;/p&gt;

&lt;p&gt;I&apos;m not sure that this means.&lt;/p&gt;</comment>
                            <comment id="52615" author="vorburger" created="Wed, 23 Aug 2017 17:50:08 +0000"  >&lt;p&gt;&amp;gt; seeing is a huge (&amp;gt;1 GB) Map in ShardDataTree (I&apos;m not sure if that&apos;s&lt;br/&gt;
&amp;gt; Map&amp;lt;LocalHistoryIdentifier, ShardDataTreeTransactionChain&amp;gt; transactionChains &lt;br/&gt;
&amp;gt; or its Map&amp;lt;Payload, Runnable&amp;gt; replicationCallbacks)&lt;/p&gt;

&lt;p&gt;closer look with MAT reveals it&apos;s (obviously) transactionChains. The real difficulty is finding what application code created the TransactionChain that lead to this in the first place... Other than &quot;stabbing around in the dark&quot; (which is basically what I&apos;ve been doing above so far), I can&apos;t see yet how to trace back the ShardDataTreeTransactionChain instances in that Map back to what originally caused them to not be closed.&lt;/p&gt;

&lt;p&gt;Reminds me vaguely of work I did on a similar problem, in JDBC, like 15 years ago.  At the time, we wrote this kind of wrapping JDBC driver which would do the throw &lt;/p&gt;
{ new Exception(); }
&lt;p&gt; catch (Exception e) kinda thing when you opened a connection, keep that around somewhere, and when we saw lots of open and never closed connections, could look at that to find the culprit.  &amp;#8211;  I wonder if it would be possible to write something like this for ODL mdsal... at the ShardDataTreeTransactionChain level I cannot see how, because from the little I understand that&apos;s after Akka, so I don&apos;t see how to trace that back up to the application.  But maybe on the other end at the DataBroker API we could do such tracking... similar to what I helped Josh came up with at the time for that mdsal-trace thing we did.&lt;/p&gt;</comment>
                            <comment id="52616" author="vorburger" created="Thu, 24 Aug 2017 10:58:46 +0000"  >&lt;p&gt;&amp;gt; look at that to find the culprit.  &amp;#8211;  I wonder if it would be possible to&lt;br/&gt;
&amp;gt; write something like this for ODL mdsal... &lt;span class=&quot;error&quot;&gt;&amp;#91;...&amp;#93;&lt;/span&gt; maybe on the other end at&lt;br/&gt;
&amp;gt; the DataBroker API we could do such tracking... &lt;/p&gt;

&lt;p&gt;according to &lt;a href=&quot;https://lists.opendaylight.org/pipermail/mdsal-dev/2017-August/001316.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://lists.opendaylight.org/pipermail/mdsal-dev/2017-August/001316.html&lt;/a&gt;, mdsal already has such a feature, via debug-transactions=true in a datastore.cfg!  None of the documentation available for OpenDaylight on Amazon.com &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; has any further documentation about how to use it, so I&apos;ll try to &lt;a href=&quot;https://www.google.ch/search?q=read+the+source+luke&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://www.google.ch/search?q=read+the+source+luke&lt;/a&gt;, and try to learn how using this it is possible to find the real cuplrit of this OOM...&lt;/p&gt;</comment>
                            <comment id="52617" author="vorburger" created="Thu, 24 Aug 2017 20:51:56 +0000"  >&lt;p&gt;&amp;gt; mdsal already has such a feature&lt;/p&gt;

&lt;p&gt;On &lt;a href=&quot;https://lists.opendaylight.org/pipermail/mdsal-dev/2017-August/001323.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://lists.opendaylight.org/pipermail/mdsal-dev/2017-August/001323.html&lt;/a&gt; Tom has clarified that while there is a feature vaguely related to this (transaction-debug-context-enabled=true in a datastore.cfg, not &quot;debug-transactions&quot;), it will not help to find out the real root cause culprit of this OOM.&lt;/p&gt;

&lt;p&gt;Therefore, I&apos;d like to suggest &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/62294/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/62294/&lt;/a&gt; as a new tool which can be used to find the root cause of this (and in the future similar) OOMs.&lt;/p&gt;</comment>
                            <comment id="52618" author="rovarga" created="Fri, 25 Aug 2017 00:04:07 +0000"  >&lt;p&gt;Can we re-create this in CSIT?&lt;/p&gt;

&lt;p&gt;I really think an audit of how the components in the netvirt stack are using TransactionChains is in order. It&apos;s not that it is hundreds of classes:&lt;/p&gt;

&lt;p&gt;./netvirt/vpnservice/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/netvirt/bgpmanager/BgpUtil.java:import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain;&lt;br/&gt;
./netvirt/vpnservice/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/netvirt/bgpmanager/BgpUtil.java:import org.opendaylight.controller.md.sal.common.api.data.TransactionChain;&lt;br/&gt;
./netvirt/vpnservice/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/netvirt/bgpmanager/BgpUtil.java:import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener;&lt;br/&gt;
./ocpplugin/ocpplugin-impl/src/main/java/org/opendaylight/ocpplugin/impl/device/TransactionChainManager.java:import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain;&lt;br/&gt;
./ocpplugin/ocpplugin-impl/src/main/java/org/opendaylight/ocpplugin/impl/device/TransactionChainManager.java:import org.opendaylight.controller.md.sal.common.api.data.TransactionChain;&lt;br/&gt;
./ocpplugin/ocpplugin-impl/src/main/java/org/opendaylight/ocpplugin/impl/device/TransactionChainManager.java:import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener;&lt;br/&gt;
./of-config/southbound/southbound-impl/src/main/java/org/opendaylight/ofconfig/southbound/impl/topology/OfconfigTopoHandler.java:import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain;&lt;br/&gt;
./of-config/southbound/southbound-impl/src/main/java/org/opendaylight/ofconfig/southbound/impl/topology/OfconfigTopoHandler.java:import org.opendaylight.controller.md.sal.common.api.data.TransactionChain;&lt;br/&gt;
./of-config/southbound/southbound-impl/src/main/java/org/opendaylight/ofconfig/southbound/impl/topology/OfconfigTopoHandler.java:import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener;&lt;br/&gt;
./openflowplugin/applications/bulk-o-matic/src/main/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/FlowWriterTxChain.java:import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain;&lt;br/&gt;
./openflowplugin/applications/bulk-o-matic/src/main/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/FlowWriterTxChain.java:import org.opendaylight.controller.md.sal.common.api.data.TransactionChain;&lt;br/&gt;
./openflowplugin/applications/bulk-o-matic/src/main/java/org/opendaylight/openflowplugin/applications/bulk/o/matic/FlowWriterTxChain.java:import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener;&lt;br/&gt;
./openflowplugin/applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/OperationProcessor.java:import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain;&lt;br/&gt;
./openflowplugin/applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/OperationProcessor.java:import org.opendaylight.controller.md.sal.common.api.data.TransactionChain;&lt;br/&gt;
./openflowplugin/applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/OperationProcessor.java:import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener;&lt;br/&gt;
./openflowplugin/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/TransactionChainManager.java:import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain;&lt;br/&gt;
./openflowplugin/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/TransactionChainManager.java:import org.opendaylight.controller.md.sal.common.api.data.TransactionChain;&lt;br/&gt;
./openflowplugin/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/TransactionChainManager.java:import org.opendaylight.controller.md.sal.common.api.data.TransactionChainClosedException;&lt;br/&gt;
./openflowplugin/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/TransactionChainManager.java:import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener;&lt;br/&gt;
./openflowplugin/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsContextImpl.java:import org.opendaylight.mdsal.common.api.TransactionChainClosedException;&lt;br/&gt;
./openflowplugin/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/StatisticsGatheringUtils.java:import org.opendaylight.controller.md.sal.common.api.data.TransactionChainClosedException;&lt;br/&gt;
./ovsdb/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/TransactionInvokerImpl.java:import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain;&lt;br/&gt;
./ovsdb/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/TransactionInvokerImpl.java:import org.opendaylight.controller.md.sal.common.api.data.TransactionChain;&lt;br/&gt;
./ovsdb/hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transactions/md/TransactionInvokerImpl.java:import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener;&lt;br/&gt;
./ovsdb/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/TransactionInvokerImpl.java:import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain;&lt;br/&gt;
./ovsdb/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/TransactionInvokerImpl.java:import org.opendaylight.controller.md.sal.common.api.data.TransactionChain;&lt;br/&gt;
./ovsdb/southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/transactions/md/TransactionInvokerImpl.java:import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener;&lt;/p&gt;</comment>
                            <comment id="52619" author="rovarga" created="Fri, 25 Aug 2017 00:05:03 +0000"  >&lt;p&gt;Also, can we get that internal test hooked up with jenkins and/or get logs from it?&lt;/p&gt;</comment>
                            <comment id="52620" author="vorburger" created="Mon, 28 Aug 2017 10:25:34 +0000"  >&lt;p&gt;&amp;gt; I really think an audit of how the components in the&lt;br/&gt;
&amp;gt; netvirt stack are using TransactionChains is in order&lt;/p&gt;

&lt;p&gt;Yeah.. I&apos;m planning to go at this not via blind code audits, but by coming up with something which will properly track ANY non closed TransactionChain (and in turn its Txs) - watch &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1760&quot; title=&quot;Tooling to find the real root cause culprit of memory leaks related to non-closed transactions (and tx chains)&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1760&quot;&gt;&lt;del&gt;CONTROLLER-1760&lt;/del&gt;&lt;/a&gt;... once I have that done, I expect to open more bugs / Gerrits for what will likely identify (like &lt;a href=&quot;https://jira.opendaylight.org/browse/OPNFLWPLUG-933&quot; title=&quot;IllegalStateException: Attempted to close chain with outstanding transaction PingPongTransaction at org.opendaylight.openflowplugin.impl.device.TransactionChainManager.createTxChain&quot; class=&quot;issue-link&quot; data-issue-key=&quot;OPNFLWPLUG-933&quot;&gt;&lt;del&gt;OPNFLWPLUG-933&lt;/del&gt;&lt;/a&gt; but in other code paths).&lt;/p&gt;

&lt;p&gt;&amp;gt; Can we re-create this in CSIT?&lt;/p&gt;

&lt;p&gt;As far as I know, this error has never been hit in CSIT - probably because those either do not run long enough, or do not &quot;stress test&quot; resources as much?&lt;/p&gt;

&lt;p&gt;&amp;gt; get that internal test hooked up with jenkins and/or get logs from it?&lt;/p&gt;

&lt;p&gt;Unfortunately not, because the Red Hat internal scale testing shared infrastructure environment where this was found is currently manually exercised per release, not a permanently available CD/CI type environment with fully automated jobs which hits this.  It could be cool to have that, and I&apos;ll raise it internally, but this is more of a medium term idea, not feasible for tomorrow, for various reasons.&lt;/p&gt;</comment>
                            <comment id="52621" author="vorburger" created="Tue, 5 Sep 2017 14:25:49 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/browse/NETVIRT-883&quot; title=&quot;Umbrella parent issue for grouping all suspected transaction leaks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;NETVIRT-883&quot;&gt;&lt;del&gt;NETVIRT-883&lt;/del&gt;&lt;/a&gt; attachment meanwhile has what seems to confirm that this OOM is due to issues in openflowplugin (and that there are no other TransactionChain related problems elsewhere - which until &lt;a href=&quot;https://jira.opendaylight.org/browse/NETVIRT-883&quot; title=&quot;Umbrella parent issue for grouping all suspected transaction leaks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;NETVIRT-883&quot;&gt;&lt;del&gt;NETVIRT-883&lt;/del&gt;&lt;/a&gt; we could not yet &quot;prove&quot;).  &lt;/p&gt;

&lt;p&gt;Therefore, I&apos;ve removed a number of unrelated bugs that this issue previously used to &quot;depend on&quot;.  I expect (hope!) that we&apos;ll be able to re-verify and then close this issue as a duplicate of openflowplugin &lt;a href=&quot;https://jira.opendaylight.org/browse/OPNFLWPLUG-933&quot; title=&quot;IllegalStateException: Attempted to close chain with outstanding transaction PingPongTransaction at org.opendaylight.openflowplugin.impl.device.TransactionChainManager.createTxChain&quot; class=&quot;issue-link&quot; data-issue-key=&quot;OPNFLWPLUG-933&quot;&gt;&lt;del&gt;OPNFLWPLUG-933&lt;/del&gt;&lt;/a&gt; / &lt;a href=&quot;https://jira.opendaylight.org/browse/OPNFLWPLUG-935&quot; title=&quot;TransactionChain created in OperationProcessor.&amp;lt;init&amp;gt; line 36 is never closed&quot; class=&quot;issue-link&quot; data-issue-key=&quot;OPNFLWPLUG-935&quot;&gt;&lt;del&gt;OPNFLWPLUG-935&lt;/del&gt;&lt;/a&gt; / &lt;a href=&quot;https://jira.opendaylight.org/browse/OVSDB-423&quot; title=&quot;TransactionChain created in TransactionInvokerImpl.&amp;lt;init&amp;gt; line 53 is never closed&quot; class=&quot;issue-link&quot; data-issue-key=&quot;OVSDB-423&quot;&gt;&lt;del&gt;OVSDB-423&lt;/del&gt;&lt;/a&gt; soon.&lt;/p&gt;</comment>
                            <comment id="52622" author="klou" created="Wed, 6 Sep 2017 15:54:56 +0000"  >&lt;p&gt;Should we elevate  &lt;a href=&quot;https://jira.opendaylight.org/browse/OPNFLWPLUG-933&quot; title=&quot;IllegalStateException: Attempted to close chain with outstanding transaction PingPongTransaction at org.opendaylight.openflowplugin.impl.device.TransactionChainManager.createTxChain&quot; class=&quot;issue-link&quot; data-issue-key=&quot;OPNFLWPLUG-933&quot;&gt;&lt;del&gt;OPNFLWPLUG-933&lt;/del&gt;&lt;/a&gt; and &lt;a href=&quot;https://jira.opendaylight.org/browse/OPNFLWPLUG-935&quot; title=&quot;TransactionChain created in OperationProcessor.&amp;lt;init&amp;gt; line 36 is never closed&quot; class=&quot;issue-link&quot; data-issue-key=&quot;OPNFLWPLUG-935&quot;&gt;&lt;del&gt;OPNFLWPLUG-935&lt;/del&gt;&lt;/a&gt; as blockers?  Is openflowplugin the only area of work left related to this bug?&lt;/p&gt;</comment>
                            <comment id="52623" author="vorburger" created="Wed, 6 Sep 2017 17:20:47 +0000"  >&lt;p&gt;&amp;gt; Should we elevate  &lt;a href=&quot;https://jira.opendaylight.org/browse/OPNFLWPLUG-933&quot; title=&quot;IllegalStateException: Attempted to close chain with outstanding transaction PingPongTransaction at org.opendaylight.openflowplugin.impl.device.TransactionChainManager.createTxChain&quot; class=&quot;issue-link&quot; data-issue-key=&quot;OPNFLWPLUG-933&quot;&gt;&lt;del&gt;OPNFLWPLUG-933&lt;/del&gt;&lt;/a&gt; and &lt;a href=&quot;https://jira.opendaylight.org/browse/OPNFLWPLUG-935&quot; title=&quot;TransactionChain created in OperationProcessor.&amp;lt;init&amp;gt; line 36 is never closed&quot; class=&quot;issue-link&quot; data-issue-key=&quot;OPNFLWPLUG-935&quot;&gt;&lt;del&gt;OPNFLWPLUG-935&lt;/del&gt;&lt;/a&gt; as blockers?  &lt;/p&gt;

&lt;p&gt;Yes, good idea.  I&apos;ve done it, and done some clean up with dupes, to KISS.&lt;/p&gt;

&lt;p&gt;&amp;gt; Is openflowplugin the only area of work left related to this bug?&lt;/p&gt;

&lt;p&gt;Repeat copy/paste from above: &lt;a href=&quot;https://jira.opendaylight.org/browse/NETVIRT-883&quot; title=&quot;Umbrella parent issue for grouping all suspected transaction leaks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;NETVIRT-883&quot;&gt;&lt;del&gt;NETVIRT-883&lt;/del&gt;&lt;/a&gt; attachment meanwhile has what seems to confirm that this OOM is due to issues in openflowplugin (and that there are no other TransactionChain related problems elsewhere - which until &lt;a href=&quot;https://jira.opendaylight.org/browse/NETVIRT-883&quot; title=&quot;Umbrella parent issue for grouping all suspected transaction leaks&quot; class=&quot;issue-link&quot; data-issue-key=&quot;NETVIRT-883&quot;&gt;&lt;del&gt;NETVIRT-883&lt;/del&gt;&lt;/a&gt; we could not yet &quot;prove&quot;). &lt;/p&gt;

&lt;p&gt;But I&apos;d like to keep this controller bug open separately from openflowplugin&apos;s until we have confirmed that we are not seeing this OOM anymore (whatever its cause ultimately is found to be).&lt;/p&gt;</comment>
                            <comment id="52624" author="vorburger" created="Thu, 7 Sep 2017 13:05:53 +0000"  >&lt;p&gt;Hereby confirming that on a re-test of a custom distribution of latest (yesterday&apos;s) carbon/stable together with c/62674/5 (NB Patch Set 5; it&#8217;s still WIP) pulled in, we do not see this anymore! &lt;/p&gt;

&lt;p&gt;It may have been c/62674 or anything else that went in recently (anywhere incl. &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1755&quot; title=&quot;RaftActor lastApplied index moves backwards&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1755&quot;&gt;&lt;del&gt;CONTROLLER-1755&lt;/del&gt;&lt;/a&gt; dunno if that could have helped for this?) which did the trick, but it works now, so great! &lt;/p&gt;

&lt;p&gt;This has been verified by both &quot;wow, now it didn&apos;t blew up anymore with OOM&quot; as well as confirmed via HPROF analysis through MAT.&lt;/p&gt;

&lt;p&gt;I&apos;ll therefore close this issue as soon as a final version of c/62674 has been merged it into carbon, nitrogen and master.&lt;/p&gt;</comment>
                            <comment id="52625" author="jluhrsen" created="Tue, 12 Sep 2017 17:45:00 +0000"  >&lt;p&gt;Michael, Sai, can one of you close this bug if it&apos;s fixed?&lt;/p&gt;</comment>
                            <comment id="52626" author="vorburger" created="Wed, 13 Sep 2017 10:40:18 +0000"  >&lt;p&gt;&amp;gt; Michael, Sai, can one of you close this bug if it&apos;s fixed?&lt;/p&gt;

&lt;p&gt;Nope, because as per #c16 above: &quot;I&apos;ll therefore close this issue as soon as a final version of c/62674 has been merged it into carbon, nitrogen and master.&quot;&lt;/p&gt;

&lt;p&gt;AFAIK Sai/Sridhar only did not see this anymore in a custom carbon/stable distribution built by Daniel with c/62674/5 (NB /5!) pulled in.  So strictly speaking, we should not close this issue and confirm that this is fixed until a final version of c/62674 (which is still WIP right now) has been merged and re-tested, theoretically.&lt;/p&gt;

&lt;p&gt;Note however that strictly speaking we are not 100% sure if it was c/62674/5 or anything else that went in recently (anywhere incl. &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1755&quot; title=&quot;RaftActor lastApplied index moves backwards&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1755&quot;&gt;&lt;del&gt;CONTROLLER-1755&lt;/del&gt;&lt;/a&gt; dunno if that could have helped for this?) which did the trick here; confirming that would require re-testing a new &quot;pure&quot; carbon/stable (without c/62674).&lt;/p&gt;</comment>
                            <comment id="52627" author="rovarga" created="Wed, 13 Sep 2017 10:43:46 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1755&quot; title=&quot;RaftActor lastApplied index moves backwards&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1755&quot;&gt;&lt;del&gt;CONTROLLER-1755&lt;/del&gt;&lt;/a&gt; definitely did not fix any memory leaks, but it may have caused an error path memory leak to become masked again.&lt;/p&gt;</comment>
                            <comment id="52628" author="klou" created="Thu, 14 Sep 2017 20:07:40 +0000"  >&lt;p&gt;Michael &amp;amp; Team, I have an action from TSC call today to follow up with you on this issue. Given all the work that has been done, is 9034 still a blocker? Thanks!&lt;/p&gt;</comment>
                            <comment id="52629" author="vorburger" created="Thu, 14 Sep 2017 22:42:55 +0000"  >&lt;p&gt;Kit Lou, waiting for update on &lt;a href=&quot;https://jira.opendaylight.org/browse/OPNFLWPLUG-933&quot; title=&quot;IllegalStateException: Attempted to close chain with outstanding transaction PingPongTransaction at org.opendaylight.openflowplugin.impl.device.TransactionChainManager.createTxChain&quot; class=&quot;issue-link&quot; data-issue-key=&quot;OPNFLWPLUG-933&quot;&gt;&lt;del&gt;OPNFLWPLUG-933&lt;/del&gt;&lt;/a&gt; and merge of c/62674.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="26317">CONTROLLER-1763</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="20804">NETVIRT-883</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="26309">CONTROLLER-1755</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="26314">CONTROLLER-1760</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="21475">NETCONF-462</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="28201">OPNFLWPLUG-933</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="28203">OPNFLWPLUG-935</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="22115">OVSDB-423</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="22116">OVSDB-424</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10002">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="26316">CONTROLLER-1762</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="28727">NETVIRT-985</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </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_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9034</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=9034]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10204" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>ODL SR Target Milestone</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10320"><![CDATA[Nitrogen]]></customfieldvalue>

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

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