<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:33:50 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-961] New OOM due to more TX leaks seen in the nova-boot scenario</title>
                <link>https://jira.opendaylight.org/browse/OPNFLWPLUG-961</link>
                <project id="10155" key="OPNFLWPLUG">OpenFlowPlugin</project>
                    <description>&lt;p&gt;Following the (many!) fixes that we&#160;did in &lt;a href=&quot;https://jira.opendaylight.org/browse/NETVIRT-985&quot; title=&quot;java.lang.OutOfMemoryError: Java heap space&quot; class=&quot;issue-link&quot; data-issue-key=&quot;NETVIRT-985&quot;&gt;&lt;del&gt;NETVIRT-985&lt;/del&gt;&lt;/a&gt;, a new round of testing on the latest stable/carbon using the &quot;nova-boot scenario&quot; has hit an OOM again. A new &quot;trace:transaction&quot; output reveals more TX leaks which we need to plug; see attached.&lt;/p&gt;

&lt;p&gt;The biggest one with&#160;273x open&#160;newReadOnlyTransaction likely causing the new OOM this time appears in (1) ovsdb; &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/65567/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/65567/&lt;/a&gt;&#160;seems to not have helped for that one - curious... or we made a mess in downstream porting?!&lt;/p&gt;

&lt;p&gt;Filing this in JIRA&#160;project ovsdb due to above; but the attached&#160;shows&#160;a number of other leaks in (2) openflowplugin and (3) genius.lockmanager &amp;amp; (4) genius.interfacemanager (x90!) which we need to plug as part of this&#160;JIRA as well.&lt;/p&gt;</description>
                <environment></environment>
        <key id="28929">OPNFLWPLUG-961</key>
            <summary>New OOM due to more TX leaks seen in the nova-boot scenario</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="1" iconUrl="https://jira.opendaylight.org/images/icons/priorities/blocker.svg">Highest</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="vorburger">Michael Vorburger</reporter>
                        <labels>
                    </labels>
                <created>Thu, 30 Nov 2017 14:21:49 +0000</created>
                <updated>Wed, 6 Dec 2017 15:28:41 +0000</updated>
                            <resolved>Mon, 4 Dec 2017 14:37:26 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="60296" author="vorburger" created="Thu, 30 Nov 2017 14:36:30 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/q/topic:OVSDB-435&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/q/topic:OVSDB-435&lt;/a&gt;&#160;will have all changes re. this new OOM accross ovsdb, genius and openflowplugin.&lt;/p&gt;</comment>
                            <comment id="60301" author="vorburger" created="Thu, 30 Nov 2017 18:26:17 +0000"  >&lt;p&gt;Extract of openflowplugin related leaks from attachments, WITHOUT the x1 which don&apos;t count:&lt;/p&gt;

&lt;p&gt;A. something in &lt;tt&gt;DeviceContextImpl&lt;/tt&gt;:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;DataBroker : newReadOnlyTransaction()
    5x transactions opened here, which are not closed:
      (...)      org.opendaylight.controller.md.sal.dom.spi.ForwardingDOMDataBroker.newReadOnlyTransaction(ForwardingDOMDataBroker.java:42)
      (...)      org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter.newReadOnlyTransaction(BindingDOMDataBrokerAdapter.java:59)
      (...)      org.opendaylight.openflowplugin.impl.device.DeviceContextImpl.getReadTransaction(DeviceContextImpl.java:244)      org.opendaylight.openflowplugin.impl.statistics.StatisticsGatheringUtils.deleteAllKnownFlows(StatisticsGatheringUtils.java:208)      org.opendaylight.openflowplugin.impl.services.AbstractMultipartRequestOnTheFlyCallback.startCollecting(AbstractMultipartRequestOnTheFlyCallback.java:135)      org.opendaylight.openflowplugin.impl.services.AbstractMultipartRequestOnTheFlyCallback.onSuccess(AbstractMultipartRequestOnTheFlyCallback.java:84)      org.opendaylight.openflowplugin.impl.services.AbstractMultipartRequestOnTheFlyCallback.onSuccess(AbstractMultipartRequestOnTheFlyCallback.java:35)      org.opendaylight.openflowjava.protocol.impl.core.connection.OutboundQueueEntry.complete(OutboundQueueEntry.java:121)      org.opendaylight.openflowjava.protocol.impl.core.connection.StackedSegment.completeEntry(StackedSegment.java:113)      org.opendaylight.openflowjava.protocol.impl.core.connection.StackedSegment.pairRequest(StackedSegment.java:153)
...&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;B. something re Ping Pong from &lt;tt&gt;TransactionChainManager&lt;/tt&gt;:&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;25x TransactionChains opened but not closed here:
(...)
 org.opendaylight.controller.md.sal.dom.broker.impl.PingPongTransactionChain.&amp;lt;init&amp;gt;(PingPongTransactionChain.java:98) org.opendaylight.controller.md.sal.dom.broker.impl.PingPongDataBroker.createTransactionChain(PingPongDataBroker.java:47) org.opendaylight.controller.md.sal.dom.broker.impl.PingPongDataBroker.createTransactionChain(PingPongDataBroker.java:27)
 (...)
 org.opendaylight.controller.md.sal.binding.impl.BindingDOMTransactionChainAdapter.&amp;lt;init&amp;gt;(BindingDOMTransactionChainAdapter.java:45) org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter.createTransactionChain(BindingDOMDataBrokerAdapter.java:74)
 (...)
 org.opendaylight.openflowplugin.common.txchain.TransactionChainManager.createTxChain(TransactionChainManager.java:80)
 org.opendaylight.openflowplugin.common.txchain.TransactionChainManager.onTransactionChainFailed(TransactionChainManager.java:278)
 org.opendaylight.controller.md.sal.binding.impl.BindingDOMTransactionChainAdapter.failTransactionChain(BindingDOMTransactionChainAdapter.java:110)
 org.opendaylight.controller.md.sal.binding.impl.BindingDOMTransactionChainAdapter.access$200(BindingDOMTransactionChainAdapter.java:31)
 org.opendaylight.controller.md.sal.binding.impl.BindingDOMTransactionChainAdapter$3.onFailure(BindingDOMTransactionChainAdapter.java:91)
 com.google.common.util.concurrent.Futures$6.run(Futures.java:1310)
 com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:457)
 com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)
 com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)
 com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:202)
 com.google.common.util.concurrent.SettableFuture.setException(SettableFuture.java:68)
 org.opendaylight.controller.md.sal.dom.broker.impl.PingPongTransaction.onFailure(PingPongTransaction.java:65)
 org.opendaylight.controller.md.sal.dom.broker.impl.PingPongTransactionChain.transactionFailed(PingPongTransactionChain.java:293)
 org.opendaylight.controller.md.sal.dom.broker.impl.PingPongTransactionChain$2.onFailure(PingPongTransactionChain.java:243)
 com.google.common.util.concurrent.Futures$6.run(Futures.java:1310)
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
 java.lang.Thread.run(Thread.java:748)&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="60303" author="vorburger" created="Thu, 30 Nov 2017 23:43:17 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=skitt&quot; class=&quot;user-hover&quot; rel=&quot;skitt&quot;&gt;skitt&lt;/a&gt; I had my (very very first, actually) look inside openflowplugin today, and .. find an entirely different way of writing code than in genius and netvirt in there; they have their own set up TX utils! &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/sad.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; Addressing isn&apos;t the 1h job I thought it would be. &lt;/p&gt;

&lt;p&gt;A. is easy to fix (if it is even a real leak...), see &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/66128/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/66128/&lt;/a&gt; &amp;amp; Co.&lt;/p&gt;

&lt;p&gt;But for B. I don&apos;t yet see how to easily address the leaks clearily found above. As these are minor leaks, compared to the other big ones we&apos;ve seen, I am not planning to address this in short term. I&apos;ll email openflowplug-dev, but don&apos;t really expect them to fix this for us in the short term.&lt;/p&gt;

&lt;p&gt;PS: In the longer term, and with more effort, what could perhaps be interesting is to start exploring if openflowplugin could be changed to use the TX Utils we&apos;ve now come up with in genius, like our ManagedNewTransactionRunner?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="20799">NETVIRT-878</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="28727">NETVIRT-985</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10001">
                    <name>Cloners</name>
                                            <outwardlinks description="clones">
                                        <issuelink>
            <issuekey id="28926">OVSDB-435</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="14310" name="controller-0_open-transactions.txt" size="21671" author="skitt" created="Thu, 30 Nov 2017 14:21:49 +0000"/>
                            <attachment id="14311" name="controller-1_open-transactions.txt" size="39333" author="skitt" created="Thu, 30 Nov 2017 14:21:49 +0000"/>
                            <attachment id="14312" name="controller-2_open-transactions.txt" size="30305" author="skitt" created="Thu, 30 Nov 2017 14:21:49 +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_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i038mf:</customfieldvalue>

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