<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:55:42 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-1498] Controller crashes with OOM. oldRoot/currentRoot, toString() consumes too much of memory.</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1498</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;I am running controller in 3 node cluster mode, and when i shutdown the leader node, and try to do some transaction on data store, it fails because of the precondition check failure in  a precondition check InMemoryDataTree.java:116. This is the exception i see at the time of OOM.&lt;/p&gt;

&lt;p&gt;opendaylight-cluster-data-akka.actor.default-dispatcher-5&lt;br/&gt;
  at java.lang.OutOfMemoryError.&amp;lt;init&amp;gt;()V (OutOfMemoryError.java:48)&lt;br/&gt;
  at java.util.Arrays.copyOf([CI)[C (Arrays.java:3332)&lt;br/&gt;
  at java.lang.AbstractStringBuilder.expandCapacity(I)V (AbstractStringBuilder.java:137)&lt;br/&gt;
  at java.lang.AbstractStringBuilder.ensureCapacityInternal(I)V (AbstractStringBuilder.java:121)&lt;br/&gt;
  at java.lang.AbstractStringBuilder.append(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder; (AbstractStringBuilder.java:421)&lt;br/&gt;
  at java.lang.StringBuilder.append(Ljava/lang/String;)Ljava/lang/StringBuilder; (StringBuilder.java:136)&lt;br/&gt;
  at java.lang.StringBuilder.append(Ljava/lang/Object;)Ljava/lang/StringBuilder; (StringBuilder.java:131)&lt;br/&gt;
  at java.util.AbstractMap.toString()Ljava/lang/String; (AbstractMap.java:536)&lt;br/&gt;
  at java.lang.String.valueOf(Ljava/lang/Object;)Ljava/lang/String; (String.java:2994)&lt;br/&gt;
  at java.lang.StringBuilder.append(Ljava/lang/Object;)Ljava/lang/StringBuilder; (StringBuilder.java:131)&lt;br/&gt;
  at com.google.common.base.MoreObjects$ToStringHelper.toString()Ljava/lang/String; (MoreObjects.java:359)&lt;br/&gt;
  at org.opendaylight.yangtools.yang.data.api.schema.tree.spi.AbstractTreeNode.toString()Ljava/lang/String; (AbstractTreeNode.java:45)&lt;br/&gt;
  at java.lang.String.valueOf(Ljava/lang/Object;)Ljava/lang/String; (String.java:2994)&lt;br/&gt;
  at java.lang.StringBuilder.append(Ljava/lang/Object;)Ljava/lang/StringBuilder; (StringBuilder.java:131)&lt;br/&gt;
  at java.util.AbstractMap.toString()Ljava/lang/String; (AbstractMap.java:536)&lt;br/&gt;
  at java.lang.String.valueOf(Ljava/lang/Object;)Ljava/lang/String; (String.java:2994)&lt;br/&gt;
  at java.lang.StringBuilder.append(Ljava/lang/Object;)Ljava/lang/StringBuilder; (StringBuilder.java:131)&lt;br/&gt;
  at com.google.common.base.MoreObjects$ToStringHelper.toString()Ljava/lang/String; (MoreObjects.java:359)&lt;br/&gt;
  at org.opendaylight.yangtools.yang.data.api.schema.tree.spi.AbstractTreeNode.toString()Ljava/lang/String; (AbstractTreeNode.java:45)&lt;br/&gt;
  at java.lang.String.valueOf(Ljava/lang/Object;)Ljava/lang/String; (String.java:2994)&lt;br/&gt;
  at java.lang.StringBuilder.append(Ljava/lang/Object;)Ljava/lang/StringBuilder; (StringBuilder.java:131)&lt;br/&gt;
  at java.util.AbstractMap.toString()Ljava/lang/String; (AbstractMap.java:536)&lt;br/&gt;
  at java.lang.String.valueOf(Ljava/lang/Object;)Ljava/lang/String; (String.java:2994)&lt;br/&gt;
  at java.lang.StringBuilder.append(Ljava/lang/Object;)Ljava/lang/StringBuilder; (StringBuilder.java:131)&lt;br/&gt;
  at com.google.common.base.MoreObjects$ToStringHelper.toString()Ljava/lang/String; (MoreObjects.java:359)&lt;br/&gt;
  at org.opendaylight.yangtools.yang.data.api.schema.tree.spi.AbstractTreeNode.toString()Ljava/lang/String; (AbstractTreeNode.java:45)&lt;br/&gt;
  at java.lang.String.valueOf(Ljava/lang/Object;)Ljava/lang/String; (String.java:2994)&lt;br/&gt;
  at java.lang.StringBuilder.append(Ljava/lang/Object;)Ljava/lang/StringBuilder; (StringBuilder.java:131)&lt;br/&gt;
  at com.google.common.base.Preconditions.format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; (Preconditions.java:422)&lt;br/&gt;
  at com.google.common.base.Preconditions.checkState(ZLjava/lang/String;[Ljava/lang/Object;)V (Preconditions.java:197)&lt;br/&gt;
  at org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTree.commit(Lorg/opendaylight/yangtools/yang/data/api/schema/tree/DataTreeCandidate;)V (InMemoryDataTree.java:116)&lt;br/&gt;
  at org.opendaylight.controller.cluster.datastore.SimpleShardDataTreeCohort.commit()Lcom/google/common/util/concurrent/ListenableFuture; (SimpleShardDataTreeCohort.java:102)&lt;br/&gt;
  at org.opendaylight.controller.cluster.datastore.ChainedCommitCohort.commit()Lcom/google/common/util/concurrent/ListenableFuture; (ChainedCommitCohort.java:32)&lt;br/&gt;
  at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator$CohortEntry.commit()V (ShardCommitCoordinator.java:670)&lt;br/&gt;
  at org.opendaylight.controller.cluster.datastore.Shard.finishCommit(Lakka/actor/ActorRef;Ljava/lang/String;Lorg/opendaylight/controller/cluster/datastore/ShardCommitCoordinator$CohortEntry;)V (Shard.java:348)&lt;br/&gt;
  at org.opendaylight.controller.cluster.datastore.Shard.finishCommit(Lakka/actor/ActorRef;Ljava/lang/String;)V (Shard.java:398)&lt;br/&gt;
  at org.opendaylight.controller.cluster.datastore.Shard.applyState(Lakka/actor/ActorRef;Ljava/lang/String;Ljava/lang/Object;)V (Shard.java:646)&lt;br/&gt;
  at org.opendaylight.controller.cluster.raft.RaftActor.handleCommand(Ljava/lang/Object;)V (RaftActor.java:228)&lt;br/&gt;
  at org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.onReceiveCommand(Ljava/lang/Object;)V (AbstractUntypedPersistentActor.java:36)&lt;br/&gt;
  at org.opendaylight.controller.cluster.datastore.Shard.onReceiveCommand(Ljava/lang/Object;)V (Shard.java:273)&lt;br/&gt;
  at akka.persistence.UntypedPersistentActor.onReceive(Ljava/lang/Object;)V (Eventsourced.scala:430)&lt;br/&gt;
  at org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(Ljava/lang/Object;)V (MeteringBehavior.java:97)&lt;br/&gt;
  at akka.actor.ActorCell$$anonfun$become$1.applyOrElse(Ljava/lang/Object;Lscala/Function1;)Ljava/lang/Object; (ActorCell.scala:534)&lt;br/&gt;
  at akka.persistence.Recovery$State$class.process(Lakka/persistence/Recovery$State;Lscala/PartialFunction;Ljava/lang/Object;)V (Recovery.scala:30)&lt;br/&gt;
  at akka.persistence.ProcessorImpl$$anon$2.process(Lscala/PartialFunction;Ljava/lang/Object;)V (Processor.scala:103)&lt;br/&gt;
  at akka.persistence.ProcessorImpl$$anon$2.aroundReceive(Lscala/PartialFunction;Ljava/lang/Object;)V (Processor.scala:114)&lt;br/&gt;
  at akka.persistence.Recovery$class.aroundReceive(Lakka/persistence/Recovery;Lscala/PartialFunction;Ljava/lang/Object;)V (Recovery.scala:265)&lt;br/&gt;
  at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(Lscala/PartialFunction;Ljava/lang/Object;)V (Eventsourced.scala:428)&lt;br/&gt;
  at akka.persistence.Eventsourced$$anon$2.doAroundReceive(Lscala/PartialFunction;Ljava/lang/Object;)V (Eventsourced.scala:82)&lt;br/&gt;
  at akka.persistence.Eventsourced$$anon$2.aroundReceive(Lscala/PartialFunction;Ljava/lang/Object;)V (Eventsourced.scala:78)&lt;br/&gt;
  at akka.persistence.Eventsourced$class.aroundReceive(Lakka/persistence/Eventsourced;Lscala/PartialFunction;Ljava/lang/Object;)V (Eventsourced.scala:369)&lt;br/&gt;
  at akka.persistence.UntypedPersistentActor.aroundReceive(Lscala/PartialFunction;Ljava/lang/Object;)V (Eventsourced.scala:428)&lt;br/&gt;
  at akka.actor.ActorCell.receiveMessage(Ljava/lang/Object;)V (ActorCell.scala:516)&lt;br/&gt;
  at akka.actor.ActorCell.invoke(Lakka/dispatch/Envelope;)V (ActorCell.scala:487)&lt;br/&gt;
  at akka.dispatch.Mailbox.processMailbox(IJ)V (Mailbox.scala:238)&lt;br/&gt;
  at akka.dispatch.Mailbox.run()V (Mailbox.scala:220)&lt;br/&gt;
  at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec()Z (AbstractDispatcher.scala:397)&lt;br/&gt;
  at scala.concurrent.forkjoin.ForkJoinTask.doExec()I (ForkJoinTask.java:260)&lt;br/&gt;
  at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(Lscala/concurrent/forkjoin/ForkJoinTask;)V (ForkJoinPool.java:1339)&lt;br/&gt;
  at scala.concurrent.forkjoin.ForkJoinPool.runWorker(Lscala/concurrent/forkjoin/ForkJoinPool$WorkQueue;)V (ForkJoinPool.java:1979)&lt;br/&gt;
  at scala.concurrent.forkjoin.ForkJoinWorkerThread.run()V (ForkJoinWorkerThread.java:107)&lt;br/&gt;
&apos;&lt;/p&gt;

&lt;p&gt;Precondition fails trying to generate the failure message and it tries to build toString() for oldRoot and currentRoot, and looks like it requires too much memory to build the toString of the thole subtree. I tried to patch it by skipping the toString() of oldRoot and currentRoot in Precondition and things looks stable.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="26052">CONTROLLER-1498</key>
            <summary>Controller crashes with OOM. oldRoot/currentRoot, toString() consumes too much of memory.</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="tpantelis">Tom Pantelis</assignee>
                                    <reporter username="Avishnoi">Anil Vishnoi</reporter>
                        <labels>
                    </labels>
                <created>Fri, 11 Mar 2016 22:34:44 +0000</created>
                <updated>Tue, 25 Jul 2023 08:24:08 +0000</updated>
                            <resolved>Tue, 14 Jun 2016 14:57:26 +0000</resolved>
                                                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>9</watches>
                                                                                                                <comments>
                            <comment id="51368" author="vishnoianil@gmail.com" created="Fri, 11 Mar 2016 22:34:44 +0000"  >&lt;p&gt;Attachment java_pid10114_Leak_Suspects.zip has been added with description: Leak Suspect report of MAT&lt;/p&gt;</comment>
                            <comment id="51369" author="vishnoianil@gmail.com" created="Fri, 11 Mar 2016 22:35:23 +0000"  >&lt;p&gt;Attachment java_pid10114_Top_Consumers.zip has been added with description: Tom Consume Report of MAT from Headdump&lt;/p&gt;</comment>
                            <comment id="51361" author="vishnoianil@gmail.com" created="Fri, 11 Mar 2016 22:37:39 +0000"  >&lt;p&gt;All the  logs files (karaf.log.10) were consumed in printing the ReadFailedException to string.&lt;/p&gt;</comment>
                            <comment id="51370" author="vishnoianil@gmail.com" created="Fri, 11 Mar 2016 22:37:39 +0000"  >&lt;p&gt;Attachment node_1_odl_logs.zip has been added with description: Last few minutes logs of cluster node 1&lt;/p&gt;</comment>
                            <comment id="51371" author="vishnoianil@gmail.com" created="Fri, 11 Mar 2016 22:38:10 +0000"  >&lt;p&gt;Attachment node_2_odl_logs.zip has been added with description: Logs from Controller node 2&lt;/p&gt;</comment>
                            <comment id="51372" author="vishnoianil@gmail.com" created="Fri, 11 Mar 2016 22:38:26 +0000"  >&lt;p&gt;Attachment node_3_odl_logs.zip has been added with description: Controller Node 3&lt;/p&gt;</comment>
                            <comment id="51362" author="vishnoianil@gmail.com" created="Fri, 11 Mar 2016 22:48:41 +0000"  >&lt;p&gt;I build a local yangtools-impl jar with this patch and we stop seeing the frequent OOM we were seeing in our environment.&lt;/p&gt;

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

&lt;p&gt;I personally feel building subtree in precondition is probably dangerous and can eat up lot of memory and probably performance issue. This fix might not be final, but we need to fix it asap.&lt;/p&gt;</comment>
                            <comment id="51363" author="anipbu" created="Mon, 14 Mar 2016 18:15:54 +0000"  >&lt;p&gt;Severity: Could you elaborate on the severity of this bug?  Is this a BLOCKER such that we cannot release Beryllium without it?  Is there a workaround such that we can write a release note and fix in Beryllium SR2?&lt;br/&gt;
Testing: Could you also elaborate on the testing or 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="51364" author="rovarga" created="Tue, 15 Mar 2016 09:15:12 +0000"  >&lt;p&gt;The root cause is sal-distributed-datastore violating DataTree invocation sequencing. Current solution just hides the problem by relying on implementation behavior. This needs to be fixed in CDS.&lt;/p&gt;</comment>
                            <comment id="51365" author="tpantelis" created="Wed, 16 Mar 2016 17:43:29 +0000"  >&lt;p&gt;Submitted &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/36172/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/36172/&lt;/a&gt; to stable/be as interim fix.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/36171/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/36171/&lt;/a&gt; will implement better solution in Boron.&lt;/p&gt;</comment>
                            <comment id="51366" author="anipbu" created="Fri, 18 Mar 2016 22:13:37 +0000"  >&lt;p&gt;Have we verified that this bug is fixed in the latest build for Beryllium?&lt;/p&gt;</comment>
                            <comment id="51367" author="jluhrsen" created="Fri, 18 Mar 2016 22:26:30 +0000"  >&lt;p&gt;(In reply to A H from comment #9)&lt;br/&gt;
&amp;gt; Have we verified that this bug is fixed in the latest build for Beryllium?&lt;/p&gt;

&lt;p&gt;I have verified in snapshot distros produced after this yangtools patch&lt;br/&gt;
was merged and the problem was not there.  Is that good enough?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="26060">CONTROLLER-1506</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="13576" name="java_pid10114_Leak_Suspects.zip" size="106549" author="Avishnoi" created="Fri, 11 Mar 2016 22:34:44 +0000"/>
                            <attachment id="13577" name="java_pid10114_Top_Consumers.zip" size="69927" author="Avishnoi" created="Fri, 11 Mar 2016 22:35:23 +0000"/>
                            <attachment id="13578" name="node_1_odl_logs.zip" size="615367" author="Avishnoi" created="Fri, 11 Mar 2016 22:37:39 +0000"/>
                            <attachment id="13579" name="node_2_odl_logs.zip" size="495160" author="Avishnoi" created="Fri, 11 Mar 2016 22:38:10 +0000"/>
                            <attachment id="13580" name="node_3_odl_logs.zip" size="381246" author="Avishnoi" created="Fri, 11 Mar 2016 22:38:26 +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>5504</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=5504]]></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="10309"><![CDATA[Boron]]></customfieldvalue>

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

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