<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:55:17 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-1337] Clustering : ConflictingModificationAppliedException on heavy clustering datastore use</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1337</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;When some component requests &quot;too many operations in too short time&quot;, the clustering datastore fails with this exception:&lt;/p&gt;

&lt;p&gt;2015-05-25 15:01:40,611 | WARN  | ult-dispatcher-3 | ConcurrentDOMDataBroker          | 212 - org.opendaylight.controller.sal-distributed-datastore - 1.2.0.SNAPSHOT | Tx: DOM-4 Error during phase CAN_COMMIT, starting Abort&lt;br/&gt;
org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException: Node was replaced by other transaction.&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkConflicting(SchemaAwareApplyOperation.java:69)&lt;span class=&quot;error&quot;&gt;&amp;#91;118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkNotConflicting(SchemaAwareApplyOperation.java:98)&lt;span class=&quot;error&quot;&gt;&amp;#91;118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkWriteApplicable(SchemaAwareApplyOperation.java:168)&lt;span class=&quot;error&quot;&gt;&amp;#91;118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:127)&lt;span class=&quot;error&quot;&gt;&amp;#91;118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:205)&lt;span class=&quot;error&quot;&gt;&amp;#91;118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:189)&lt;span class=&quot;error&quot;&gt;&amp;#91;118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:124)&lt;span class=&quot;error&quot;&gt;&amp;#91;118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.RootModificationApplyOperation.checkApplicable(RootModificationApplyOperation.java:71)&lt;span class=&quot;error&quot;&gt;&amp;#91;118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractDataTreeTip.validate(AbstractDataTreeTip.java:37)&lt;span class=&quot;error&quot;&gt;&amp;#91;118:org.opendaylight.yangtools.yang-data-impl:0.7.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.SimpleShardDataTreeCohort.canCommit(SimpleShardDataTreeCohort.java:39)&lt;span class=&quot;error&quot;&gt;&amp;#91;212:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.doCanCommit(ShardCommitCoordinator.java:301)&lt;span class=&quot;error&quot;&gt;&amp;#91;212:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleCanCommit(ShardCommitCoordinator.java:259)&lt;span class=&quot;error&quot;&gt;&amp;#91;212:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.handleReadyLocalTransaction(ShardCommitCoordinator.java:231)&lt;span class=&quot;error&quot;&gt;&amp;#91;212:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.Shard.handleReadyLocalTransaction(Shard.java:453)&lt;span class=&quot;error&quot;&gt;&amp;#91;212:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.Shard.onReceiveCommand(Shard.java:237)&lt;span class=&quot;error&quot;&gt;&amp;#91;212:org.opendaylight.controller.sal-distributed-datastore:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.UntypedPersistentActor.onReceive(Eventsourced.scala:430)&lt;span class=&quot;error&quot;&gt;&amp;#91;202:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(MeteringBehavior.java:97)&lt;span class=&quot;error&quot;&gt;&amp;#91;204:org.opendaylight.controller.sal-clustering-commons:1.2.0.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.actor.ActorCell$$anonfun$become$1.applyOrElse(ActorCell.scala:534)&lt;span class=&quot;error&quot;&gt;&amp;#91;197:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.Recovery$State$class.process(Recovery.scala:30)&lt;span class=&quot;error&quot;&gt;&amp;#91;202:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.ProcessorImpl$$anon$2.process(Processor.scala:103)&lt;span class=&quot;error&quot;&gt;&amp;#91;202:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.ProcessorImpl$$anon$2.aroundReceive(Processor.scala:114)&lt;span class=&quot;error&quot;&gt;&amp;#91;202:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.Recovery$class.aroundReceive(Recovery.scala:265)&lt;span class=&quot;error&quot;&gt;&amp;#91;202:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(Eventsourced.scala:428)&lt;span class=&quot;error&quot;&gt;&amp;#91;202:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.Eventsourced$$anon$2.doAroundReceive(Eventsourced.scala:82)&lt;span class=&quot;error&quot;&gt;&amp;#91;202:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.Eventsourced$$anon$2.aroundReceive(Eventsourced.scala:78)&lt;span class=&quot;error&quot;&gt;&amp;#91;202:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.Eventsourced$class.aroundReceive(Eventsourced.scala:369)&lt;span class=&quot;error&quot;&gt;&amp;#91;202:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.persistence.UntypedPersistentActor.aroundReceive(Eventsourced.scala:428)&lt;span class=&quot;error&quot;&gt;&amp;#91;202:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)&lt;span class=&quot;error&quot;&gt;&amp;#91;197:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.actor.ActorCell.invoke(ActorCell.scala:487)&lt;span class=&quot;error&quot;&gt;&amp;#91;197:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:254)&lt;span class=&quot;error&quot;&gt;&amp;#91;197:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.dispatch.Mailbox.run(Mailbox.scala:221)&lt;span class=&quot;error&quot;&gt;&amp;#91;197:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at akka.dispatch.Mailbox.exec(Mailbox.scala:231)&lt;span class=&quot;error&quot;&gt;&amp;#91;197:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)&lt;span class=&quot;error&quot;&gt;&amp;#91;194:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.pollAndExecAll(ForkJoinPool.java:1253)&lt;span class=&quot;error&quot;&gt;&amp;#91;194:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1346)&lt;span class=&quot;error&quot;&gt;&amp;#91;194:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)&lt;span class=&quot;error&quot;&gt;&amp;#91;194:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)&lt;span class=&quot;error&quot;&gt;&amp;#91;194:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;An easy way to reproduce the problem is to switch on topology in the BGP module and then push some 4000 prefixes into it (use this tool to do that: &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/19603/4/test/tools/fastbgp/play.py&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/19603/4/test/tools/fastbgp/play.py&lt;/a&gt;). Also increase akka.timeout to something like 5 minutes so you don&apos;t get bothered with akka timeouts.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="25891">CONTROLLER-1337</key>
            <summary>Clustering : ConflictingModificationAppliedException on heavy clustering datastore use</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="10003">Cannot Reproduce</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="jbehran@cisco.com">Jozef Behran</reporter>
                        <labels>
                    </labels>
                <created>Tue, 26 May 2015 10:15:49 +0000</created>
                <updated>Thu, 19 Oct 2017 21:26:53 +0000</updated>
                            <resolved>Tue, 9 Jun 2015 14:14:18 +0000</resolved>
                                    <version>Post-Helium</version>
                                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="50720" author="jbehran@cisco.com" created="Tue, 26 May 2015 10:36:47 +0000"  >&lt;p&gt;Attachment karaf.log has been added with description: Log file from a test run exhibiting this bug (Windows line endings).&lt;/p&gt;</comment>
                            <comment id="50718" author="tpantelis" created="Sat, 6 Jun 2015 12:10:10 +0000"  >&lt;p&gt;I wonder is this is also fixed by the latest patch that fixes the AskTimeoutEx&apos;s....&lt;/p&gt;

&lt;p&gt;In any event, we should not be throwing/propagating the backend ConflictingModificationAppliedException to the client. We should be throwing OptimisticLockFailedException as that is documented in the API docs. &lt;/p&gt;

&lt;p&gt;The IMDS converts backend tree executions into front-end TransactionCommitFailedExceptions (OptimisticLockFailedException and DataValidationFailedException. However, we lost this conversion when the Shard was changed to use the DataTree directly and bypass InMemoryDOMDataStore. &lt;/p&gt;

&lt;p&gt;I submitted &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/22026/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/22026/&lt;/a&gt; for this.&lt;/p&gt;</comment>
                            <comment id="50719" author="moraja@cisco.com" created="Tue, 9 Jun 2015 14:14:18 +0000"  >&lt;p&gt;Closing because it is not reproducible anymore. I have done several 100K runs on my machine with default timeout and I have not seen this happen even once.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="13512" name="karaf.log" size="235119" author="jbehran@cisco.com" created="Tue, 26 May 2015 10:36:47 +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>3372</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=3372]]></customfieldvalue>

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

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

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