<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:14:08 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>[NETCONF-88] Memory leak when mounting/unmounting devices</title>
                <link>https://jira.opendaylight.org/browse/NETCONF-88</link>
                <project id="10142" key="NETCONF">netconf</project>
                    <description>&lt;p&gt;When a device is mounted on NETCONF through RESTCONF, a bunch of memory is leaked. Initially it is about 0.9 MB but with each &quot;mount&quot; request the leak increases by about 8 KB. The &quot;initial&quot; leak caused by a first device mount depends on total mount operations executed and is not affected by device unmounts.&lt;/p&gt;

&lt;p&gt;Additionally, device unmounts also leak memory but they don&apos;t add anything to the amount leaked by each mount. The amount of memory leaked by a device unmount depends on the count of devices currently mounted: When only one device is present and it is deleted, the leaked memory is roughly 300 KB. For each 100 devices mounted at the time of the deletion unmount, the leak increases by roughly 800 KB.&lt;/p&gt;

&lt;p&gt;To reproduce the basic form of the leak use the attached script. It mounts and then unmounts a device and reports memory leaked so far and memory leaked by the last mount/unmount pair and whether any errors encountered. You can specify a repeat count on the commandline which defaults to 1.&lt;/p&gt;

&lt;p&gt;This bug is present in both, Lithium and Beryllium.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="21101">NETCONF-88</key>
            <summary>Memory leak when mounting/unmounting devices</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="rovarga">Robert Varga</assignee>
                                    <reporter username="jbehran@cisco.com">Jozef Behran</reporter>
                        <labels>
                    </labels>
                <created>Thu, 22 Oct 2015 09:49:17 +0000</created>
                <updated>Fri, 15 Mar 2019 22:22:16 +0000</updated>
                            <resolved>Wed, 13 Jan 2016 09:51:25 +0000</resolved>
                                                                    <component>netconf</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="39023" author="jbehran@cisco.com" created="Thu, 22 Oct 2015 09:49:17 +0000"  >&lt;p&gt;Attachment leakwatch.sh has been added with description: Tool to bombard ODL Netconf with device mount/unmount requests via Restconf&lt;/p&gt;</comment>
                            <comment id="39012" author="jbehran@cisco.com" created="Thu, 22 Oct 2015 09:51:45 +0000"  >&lt;p&gt;Additional information is that the leak occurs even when the device is not actually there (connecting fails). No testtool is thus necessary and it does not matter what port is configured for the device.&lt;/p&gt;

&lt;p&gt;Also this bug occurs with the default configuration of ODL. Just install odl-restconf and odl-netconf-connector-all.&lt;/p&gt;</comment>
                            <comment id="39013" author="jbehran@cisco.com" created="Thu, 22 Oct 2015 10:54:46 +0000"  >&lt;p&gt;Use this utility to mount a bunch of devices and then unmount them. The default size of the bunch is 100, if you want a different size, state it on the commandline.&lt;/p&gt;</comment>
                            <comment id="39024" author="jbehran@cisco.com" created="Thu, 22 Oct 2015 10:54:46 +0000"  >&lt;p&gt;Attachment multimount.sh has been added with description: Utility to mount and then unmount a bunch of devices&lt;/p&gt;</comment>
                            <comment id="39014" author="jbehran@cisco.com" created="Mon, 26 Oct 2015 12:22:41 +0000"  >&lt;p&gt;The change &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/28709/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/28709/&lt;/a&gt; was giving some hope of improving matters but it turns out nothing was changed by it.&lt;/p&gt;</comment>
                            <comment id="39015" author="jbehran@cisco.com" created="Mon, 26 Oct 2015 12:29:36 +0000"  >&lt;p&gt;UPDATE: It turned out the behavior of the bug is different than originally reported. The leak actually roughly depends on the count of devices currently mounted but the dependency is kind of &quot;lagging&quot; and also timing dependent, giving the illusion of a behavior described in the original report, especially when the mount-unmount operations are run in a quick succession. Additionally, it seems to me to be also time dependent (running mount-unmount multiple times on a quick succession tends to leak more memory than letting ODL to &quot;cool down&quot; after each mount-unmount pair for a few tens of seconds). Additionally, occassionally (very rarely) the leak is much bigger than what the count of mounted devices suggests (2-3 times larger) and occassionally (very rarely though more commonly than the previous case) there is no memory leak at all (but all I can confirm is that the memory was not growing at that time but it might be that the leak did not happen and it also might be that memory did leak but something unrelated was garbage collected, hiding the leak).&lt;/p&gt;</comment>
                            <comment id="39016" author="tcere" created="Thu, 26 Nov 2015 16:22:09 +0000"  >&lt;p&gt;Seems to only happen when configuring via restconf with config-subsystem loopback, with initial configs from testtool I can get 5k devices without any issues.&lt;br/&gt;
Most likely this is related to the way restconf works(read contents of entire list to check if configuration is present, and then insert config)&lt;/p&gt;</comment>
                            <comment id="39017" author="jbehran@cisco.com" created="Wed, 2 Dec 2015 10:40:31 +0000"  >&lt;p&gt;&amp;gt; Most likely this is related to the way restconf works&lt;br/&gt;
&amp;gt; (read contents of entire list to check if configuration&lt;br/&gt;
&amp;gt; is present, and then insert config)&lt;/p&gt;

&lt;p&gt;And stick a reference to that &quot;entire list&quot; somewhere where it stays reachable even after restconf is done with that &quot;entire list&quot; so that the garbage collector cannot collect the &quot;entire list&quot; and they keep accumulating.&lt;/p&gt;

&lt;p&gt;Maybe memory profiling will give more answers to this.&lt;/p&gt;</comment>
                            <comment id="39018" author="rovarga" created="Wed, 2 Dec 2015 14:23:17 +0000"  >&lt;p&gt;Be: &lt;a href=&quot;https://git.opendaylight.org/gerrit/30487&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/30487&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This affects Lithium, too, so should be backported.&lt;/p&gt;</comment>
                            <comment id="39019" author="rovarga" created="Mon, 14 Dec 2015 14:38:31 +0000"  >&lt;p&gt;Further fix: &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/31075/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/31075/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="39020" author="jbehran@cisco.com" created="Fri, 8 Jan 2016 07:51:31 +0000"  >&lt;p&gt;Tested and confirmed to be gone.&lt;/p&gt;</comment>
                            <comment id="39021" author="jbehran@cisco.com" created="Fri, 8 Jan 2016 07:55:29 +0000"  >&lt;p&gt;These patches need to be merged to kill the bug (in the indicated order):&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/31808&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/31808&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/31858&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/31858&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="39022" author="rovarga" created="Fri, 8 Jan 2016 13:45:54 +0000"  >&lt;p&gt;Li: &lt;a href=&quot;https://git.opendaylight.org/gerrit/32277&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/32277&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="12644" name="leakwatch.sh" size="4384" author="jbehran@cisco.com" created="Thu, 22 Oct 2015 09:49:17 +0000"/>
                            <attachment id="12645" name="multimount.sh" size="4473" author="jbehran@cisco.com" created="Thu, 22 Oct 2015 10:54:46 +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>4514</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=4514]]></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_10204" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>ODL SR Target Milestone</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10352"><![CDATA[Beryllium-RC0]]></customfieldvalue>

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

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