<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:21:58 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>[NETVIRT-596] getLock() invoked from createGroupId is caught up in an endless loop - can&apos;t connect to new L3 VMs</title>
                <link>https://jira.opendaylight.org/browse/NETVIRT-596</link>
                <project id="10144" key="NETVIRT">netvirt</project>
                    <description>&lt;p&gt;I ran a test in a loop, that basically creates VMs with FIPs, test connectivity, and deletes them.&lt;br/&gt;
After 70 iterations, new VMs connectvity stopped working.&lt;/p&gt;

&lt;p&gt;These errors started showing up endlessly:&lt;br/&gt;
2017-04-05 03:20:46,877 | INFO  | eChangeHandler-0 | LockManager                      | 351 - org.opendaylight.genius.lockmanager-impl - 0.2.0.SNAPSHOT | Already locked after waiting 1000ms, try 9819&lt;br/&gt;
2017-04-05 03:20:47,878 | INFO  | eChangeHandler-0 | LockManager                      | 351 - org.opendaylight.genius.lockmanager-impl - 0.2.0.SNAPSHOT | Already locked after waiting 1000ms, try 9820&lt;br/&gt;
2017-04-05 03:20:48,878 | INFO  | eChangeHandler-0 | LockManager                      | 351 - org.opendaylight.genius.lockmanager-impl - 0.2.0.SNAPSHOT | Already locked after waiting 1000ms, try 9821&lt;/p&gt;

&lt;p&gt;This is the stack call for this lock:&lt;br/&gt;
&quot;AsyncDataTreeChangeListenerBase-DataTreeChangeHandler-0&quot; #4442 daemon prio=5 os_prio=0 tid=0x00007fd1ec08d800 nid=0x5266 waiting on condition &lt;span class=&quot;error&quot;&gt;&amp;#91;0x00007fd166405000&amp;#93;&lt;/span&gt;&lt;br/&gt;
   java.lang.Thread.State: TIMED_WAITING (sleeping)&lt;br/&gt;
        at java.lang.Thread.sleep(Native Method)&lt;br/&gt;
        at org.opendaylight.lockmanager.LockManager.getLock(LockManager.java:148)&lt;br/&gt;
        at org.opendaylight.lockmanager.LockManager.lock(LockManager.java:67)&lt;br/&gt;
        at java.lang.invoke.LambdaForm$DMH/23968864.invokeInterface_LL_L(LambdaForm$DMH)&lt;br/&gt;
        at java.lang.invoke.LambdaForm$BMH/931340740.reinvoke(LambdaForm$BMH)&lt;br/&gt;
        at java.lang.invoke.LambdaForm$MH/1202781631.invokeExact_MT(LambdaForm$MH)&lt;br/&gt;
        at org.opendaylight.yangtools.yang.binding.util.RpcMethodInvokerWithInput.invokeOn(RpcMethodInvokerWithInput.java:31)&lt;br/&gt;
        at org.opendaylight.yangtools.yang.binding.util.AbstractMappedRpcInvoker.invokeRpc(AbstractMappedRpcInvoker.java:52)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcImplementationAdapter.invoke(BindingDOMRpcImplementationAdapter.java:83)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcImplementationAdapter.invokeRpc(BindingDOMRpcImplementationAdapter.java:70)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.dom.broker.impl.GlobalDOMRpcRoutingTableEntry.invokeRpc(GlobalDOMRpcRoutingTableEntry.java:39)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRoutingTable.invokeRpc(DOMRpcRoutingTable.java:177)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRouter.invokeRpc(DOMRpcRouter.java:102)&lt;br/&gt;
        at Proxy83c929da_f599_4e8e_ab68_e2200f2efd8f.invokeRpc(Unknown Source)&lt;br/&gt;
        at Proxy5c5c056d_30f3_4662_800b_9699ba76b251.invokeRpc(Unknown Source)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.invoke0(RpcServiceAdapter.java:65)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.access$000(RpcServiceAdapter.java:43)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter$RpcInvocationStrategy.invoke(RpcServiceAdapter.java:159)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.invoke(RpcServiceAdapter.java:96)&lt;br/&gt;
        at com.sun.proxy.$Proxy124.lock(Unknown Source)&lt;br/&gt;
        at org.opendaylight.genius.idmanager.IdUtils.lock(IdUtils.java:230)&lt;br/&gt;
        at org.opendaylight.genius.idmanager.IdManager.allocateId(IdManager.java:213)&lt;br/&gt;
        at java.lang.invoke.LambdaForm$DMH/23968864.invokeInterface_LL_L(LambdaForm$DMH)&lt;br/&gt;
        at java.lang.invoke.LambdaForm$BMH/968378519.reinvoke(LambdaForm$BMH)&lt;br/&gt;
        at java.lang.invoke.LambdaForm$MH/1202781631.invokeExact_MT(LambdaForm$MH)&lt;br/&gt;
        at org.opendaylight.yangtools.yang.binding.util.RpcMethodInvokerWithInput.invokeOn(RpcMethodInvokerWithInput.java:31)&lt;br/&gt;
        at org.opendaylight.yangtools.yang.binding.util.AbstractMappedRpcInvoker.invokeRpc(AbstractMappedRpcInvoker.java:52)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcImplementationAdapter.invoke(BindingDOMRpcImplementationAdapter.java:83)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcImplementationAdapter.invokeRpc(BindingDOMRpcImplementationAdapter.java:70)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.dom.broker.impl.GlobalDOMRpcRoutingTableEntry.invokeRpc(GlobalDOMRpcRoutingTableEntry.java:39)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRoutingTable.invokeRpc(DOMRpcRoutingTable.java:177)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRouter.invokeRpc(DOMRpcRouter.java:102)&lt;br/&gt;
        at Proxy83c929da_f599_4e8e_ab68_e2200f2efd8f.invokeRpc(Unknown Source)&lt;br/&gt;
        at Proxy5c5c056d_30f3_4662_800b_9699ba76b251.invokeRpc(Unknown Source)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.invoke0(RpcServiceAdapter.java:65)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.access$000(RpcServiceAdapter.java:43)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter$RpcInvocationStrategy.invoke(RpcServiceAdapter.java:159)&lt;br/&gt;
        at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.invoke(RpcServiceAdapter.java:96)&lt;br/&gt;
        at com.sun.proxy.$Proxy127.allocateId(Unknown Source)&lt;br/&gt;
        at org.opendaylight.netvirt.natservice.internal.NatUtil.createGroupId(NatUtil.java:773)&lt;br/&gt;
        at org.opendaylight.netvirt.natservice.internal.RouterDpnChangeListener.removeSNATFromDPN(RouterDpnChangeListener.java:327)&lt;br/&gt;
        at org.opendaylight.netvirt.natservice.internal.RouterDpnChangeListener.remove(RouterDpnChangeListener.java:193)&lt;br/&gt;
        at org.opendaylight.netvirt.natservice.internal.RouterDpnChangeListener.remove(RouterDpnChangeListener.java:37)&lt;br/&gt;
        at org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase$DataTreeChangeHandler.run(AsyncDataTreeChangeListenerBase.java:148)&lt;br/&gt;
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)&lt;br/&gt;
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)&lt;br/&gt;
        at java.lang.Thread.run(Thread.java:745)&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="20517">NETVIRT-596</key>
            <summary>getLock() invoked from createGroupId is caught up in an endless loop - can&apos;t connect to new L3 VMs</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="koby.aizer@hpe.com">Koby Aizer</reporter>
                        <labels>
                    </labels>
                <created>Wed, 5 Apr 2017 14:34:54 +0000</created>
                <updated>Thu, 19 Oct 2017 21:28:04 +0000</updated>
                            <resolved>Tue, 25 Apr 2017 13:32:05 +0000</resolved>
                                    <version>Carbon</version>
                                                    <component>General</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="37638" author="koby.aizer@hpe.com" created="Wed, 5 Apr 2017 14:43:34 +0000"  >&lt;p&gt;Attachment getLock.zip has been added with description: logs&lt;/p&gt;</comment>
                            <comment id="37633" author="periyasamy.palanisamy@ericsson.com" created="Thu, 6 Apr 2017 07:08:57 +0000"  >&lt;p&gt;Kency would raise a review shortly with a potential fix (done through code study) and more info logs to figure out exact root cause.&lt;/p&gt;</comment>
                            <comment id="37634" author="koby.aizer@hpe.com" created="Thu, 6 Apr 2017 07:20:03 +0000"  >&lt;p&gt;Thanks!&lt;/p&gt;

&lt;p&gt;Another thought here - even if we fix the root cause, I think we must remove this busy loop. This totally breaks the system when occurring&lt;/p&gt;</comment>
                            <comment id="37635" author="periyasamy.palanisamy@ericsson.com" created="Thu, 6 Apr 2017 10:21:31 +0000"  >&lt;p&gt;Looks like this issue occurred when an idKey is not unlocked accidentally in IdManager which leads to LockManager#lock goes into busy spin. But this is a corner case due to a bug.&lt;/p&gt;

&lt;p&gt;We could avoid it by thread wait/notify by Async Clustered DTCN on lock (since lock is stored in MD-SAL), upon remove DCN, waiting threads can be notified for the particular lock. Not sure its worth to do it now and should be done as an enhancement since it needs more testing effort.&lt;/p&gt;</comment>
                            <comment id="37636" author="kencykurian@gmail.com" created="Thu, 6 Apr 2017 10:55:36 +0000"  >&lt;p&gt;Raised the review for this:&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/54414/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/54414/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="37637" author="koby.aizer@hpe.com" created="Thu, 6 Apr 2017 15:54:23 +0000"  >&lt;p&gt;Thanks guys for handling this.. Could&apos;ve taken me a long time to find it myself &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;

&lt;p&gt;Should we open another ticket on removing the busy loop future fix?&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="12478" name="getLock.zip" size="973606" author="koby.aizer@hpe.com" created="Wed, 5 Apr 2017 14:43:34 +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>8160</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=8160]]></customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10203" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>Status Whiteboard</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>csit:sporadic_failures</customfieldvalue>

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