<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:56:02 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-1631] Transaction producer aborted when local shard leader removed</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1631</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;The test scenario follows the steps of DOMDataBroker testing: Clean Leader Shutdown: local leader shurdown&lt;br/&gt;
1)  producer started with write-transactions rpc on the config default leader node&lt;br/&gt;
2)  the default config shard leader was removed via remove shard replica rpc&lt;br/&gt;
3)  producer aborted and returned http status 500&lt;/p&gt;


&lt;p&gt;{&quot;errors&quot;:{&quot;error&quot;:[{&quot;error-type&quot;:&quot;application&quot;,&quot;error-tag&quot;:&quot;operation-failed&quot;,&quot;error-message&quot;:&quot;Unexpected-exception&quot;,&quot;error-info&quot;:&quot;TransactionCommitFailedException&lt;/p&gt;
{message=canCommit encountered an unexpected failure, errorList=[RpcError [message=canCommit encountered an unexpected failure, severity=ERROR, errorType=APPLICATION, tag=operation-failed, applicationTag=null, info=null, cause=akka.pattern.AskTimeoutException: Ask timed out on [ActorSelection[Anchor(akka://opendaylight-cluster-data/), Path(/user/shardmanager-config/member-1-shard-default-config#-1992099962)]] after [30000 ms]. Sender[null] sent message of type &quot;org.opendaylight.controller.cluster.datastore.messages.ReadyLocalTransaction&quot;.]]}
&lt;p&gt;	at org.opendaylight.controller.md.sal.dom.broker.impl.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:37)&lt;br/&gt;
	at org.opendaylight.controller.md.sal.dom.broker.impl.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:18)&lt;br/&gt;
	at org.opendaylight.yangtools.util.concurrent.ExceptionMapper.apply(ExceptionMapper.java:102)&lt;br/&gt;
	at org.opendaylight.controller.cluster.databroker.ConcurrentDOMDataBroker.handleException(ConcurrentDOMDataBroker.java:222)&lt;br/&gt;
	at org.opendaylight.controller.cluster.databroker.ConcurrentDOMDataBroker.access$000(ConcurrentDOMDataBroker.java:46)&lt;br/&gt;
	at org.opendaylight.controller.cluster.databroker.ConcurrentDOMDataBroker$1.onFailure(ConcurrentDOMDataBroker.java:126)&lt;br/&gt;
	at com.google.common.util.concurrent.Futures$6.run(Futures.java:1310)&lt;br/&gt;
	at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:457)&lt;br/&gt;
	at com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156)&lt;br/&gt;
	at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145)&lt;br/&gt;
	at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:202)&lt;br/&gt;
	at com.google.common.util.concurrent.SettableFuture.setException(SettableFuture.java:68)&lt;br/&gt;
	at org.opendaylight.controller.cluster.datastore.SingleCommitCohortProxy$1.onComplete(SingleCommitCohortProxy.java:58)&lt;br/&gt;
	at akka.dispatch.OnComplete.internal(Future.scala:258)&lt;br/&gt;
	at akka.dispatch.OnComplete.internal(Future.scala:256)&lt;br/&gt;
	at akka.dispatch.japi$CallbackBridge.apply(Future.scala:186)&lt;br/&gt;
	at akka.dispatch.japi$CallbackBridge.apply(Future.scala:183)&lt;br/&gt;
	at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)&lt;br/&gt;
	at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55)&lt;br/&gt;
	at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply$mcV$sp(BatchingExecutor.scala:91)&lt;br/&gt;
	at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:91)&lt;br/&gt;
	at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:91)&lt;br/&gt;
	at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72)&lt;br/&gt;
	at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:90)&lt;br/&gt;
	at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:39)&lt;br/&gt;
	at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:415)&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)&lt;br/&gt;
	at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)&lt;br/&gt;
Caused by: akka.pattern.AskTimeoutException: Ask timed out on &lt;a href=&quot;#-1992099962)]&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;ActorSelection[Anchor(akka://opendaylight-cluster-data/), Path(/user/shardmanager-config/member-1-shard-default-config#-1992099962)]&lt;/a&gt; after &lt;span class=&quot;error&quot;&gt;&amp;#91;30000 ms&amp;#93;&lt;/span&gt;. Sender&lt;span class=&quot;error&quot;&gt;&amp;#91;null&amp;#93;&lt;/span&gt; sent message of type &quot;org.opendaylight.controller.cluster.datastore.messages.ReadyLocalTransaction&quot;.&lt;br/&gt;
	at akka.pattern.PromiseActorRef$$anonfun$1.apply$mcV$sp(AskSupport.scala:604)&lt;br/&gt;
	at akka.actor.Scheduler$$anon$4.run(Scheduler.scala:126)&lt;br/&gt;
	at scala.concurrent.Future$InternalCallbackExecutor$.unbatchedExecute(Future.scala:601)&lt;br/&gt;
	at scala.concurrent.BatchingExecutor$class.execute(BatchingExecutor.scala:109)&lt;br/&gt;
	at scala.concurrent.Future$InternalCallbackExecutor$.execute(Future.scala:599)&lt;br/&gt;
	at akka.actor.LightArrayRevolverScheduler$TaskHolder.executeTask(LightArrayRevolverScheduler.scala:329)&lt;br/&gt;
	at akka.actor.LightArrayRevolverScheduler$$anon$4.executeBucket$1(LightArrayRevolverScheduler.scala:280)&lt;br/&gt;
	at akka.actor.LightArrayRevolverScheduler$$anon$4.nextTick(LightArrayRevolverScheduler.scala:284)&lt;br/&gt;
	at akka.actor.LightArrayRevolverScheduler$$anon$4.run(LightArrayRevolverScheduler.scala:236)&lt;br/&gt;
	at java.lang.Thread.run(Thread.java:745)&lt;br/&gt;
&quot;}]}}&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="26185">CONTROLLER-1631</key>
            <summary>Transaction producer aborted when local shard leader removed</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="pgubka@cisco.com">Peter Gubka</reporter>
                        <labels>
                    </labels>
                <created>Tue, 11 Apr 2017 09:53:32 +0000</created>
                <updated>Tue, 25 Jul 2023 08:24:29 +0000</updated>
                            <resolved>Sat, 15 Apr 2017 22:15:32 +0000</resolved>
                                                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="51961" author="pgubka@cisco.com" created="Tue, 11 Apr 2017 09:53:32 +0000"  >&lt;p&gt;Attachment log.html has been added with description: robot log&lt;/p&gt;</comment>
                            <comment id="51962" author="pgubka@cisco.com" created="Tue, 11 Apr 2017 09:54:27 +0000"  >&lt;p&gt;Attachment karaf_log_1.tar.gz has been added with description: node1 log&lt;/p&gt;</comment>
                            <comment id="51963" author="pgubka@cisco.com" created="Tue, 11 Apr 2017 09:54:49 +0000"  >&lt;p&gt;Attachment karaf_log_2.tar.gz has been added with description: node2 log&lt;/p&gt;</comment>
                            <comment id="51964" author="pgubka@cisco.com" created="Tue, 11 Apr 2017 09:55:10 +0000"  >&lt;p&gt;Attachment karaf_log_3.tar.gz has been added with description: node3 log&lt;/p&gt;</comment>
                            <comment id="51954" author="tpantelis" created="Tue, 11 Apr 2017 11:41:16 +0000"  >&lt;p&gt;What&apos;s the problem here? Can you provide more details as to the purpose of the test and what was expected? From my understanding of the description, you had a component committing transactions on the shard leader then removed the shard replica on the leader and a transaction failed after (timed out). I would expect that to occur.&lt;/p&gt;</comment>
                            <comment id="51955" author="pgubka@cisco.com" created="Tue, 11 Apr 2017 12:20:40 +0000"  >&lt;p&gt;(In reply to Tom Pantelis from comment #4)&lt;br/&gt;
&amp;gt; What&apos;s the problem here? Can you provide more details as to the purpose of&lt;br/&gt;
&amp;gt; the test and what was expected? From my understanding of the description,&lt;br/&gt;
&amp;gt; you had a component committing transactions on the shard leader then removed&lt;br/&gt;
&amp;gt; the shard replica on the leader and a transaction failed after (timed out).&lt;br/&gt;
&amp;gt; I would expect that to occur.&lt;/p&gt;

&lt;p&gt;The odl clustering test plan document describes the following:&lt;/p&gt;

&lt;p&gt;Clean Leader Shutdown&lt;br/&gt;
---------------------&lt;br/&gt;
The goal is to ensure that applications do not observe disruption when a shard leader is shut down cleanly. This is performed by having a steady-stream producer execute operations against the shard and then initiate leader shard shutdown, then the producer is shut down cleanly.&lt;/p&gt;

&lt;p&gt;This test is executed in two scenarios:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Three-node, with shard leader being local&lt;/li&gt;
	&lt;li&gt;Three-node, with shard leader being remote&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Success criteria are:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;No transaction errors occur&lt;/li&gt;
	&lt;li&gt;Producer shuts down cleanly (i.e. all transactions complete successfully)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Test tool: test-transaction-producer, running at 1K tps&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Steady, configurable producer started with:&lt;br/&gt;
o	A transaction chain&lt;br/&gt;
o	Single transactions (note: these cannot overlap)&lt;/li&gt;
	&lt;li&gt;Configurable transaction rate (i.e. transactions-per-second)&lt;/li&gt;
	&lt;li&gt;Single-operation transactions&lt;/li&gt;
	&lt;li&gt;Random mix across 1M entries&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;My test case start transaction producer with write-transaction rpc and the use remove-shard-replica rpc to &quot;shutdown&quot; the leader.&lt;br/&gt;
Rpc wite-transaction then return 500, but my understanding is that new leader will be elected and transactions should finish well and http status 200 is expected from write-transactions rpc.&lt;/p&gt;</comment>
                            <comment id="51956" author="tpantelis" created="Tue, 11 Apr 2017 12:33:31 +0000"  >&lt;p&gt;I don&apos;t know who wrote the test plan but there&apos;s no guarantee that all transactions will succeed across leader changes. It does retry transactions if there&apos;s no current leader but a transaction already in flight may time out and fail. Now that&apos;s the behavior with the current implementation. With Robert&apos;s new front-end stuff tracked by &lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1483&quot; title=&quot;akka.pattern.AskTimeoutException on follower while BGP peer introduces 1M prefixes&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1483&quot;&gt;&lt;del&gt;CONTROLLER-1483&lt;/del&gt;&lt;/a&gt; the intention is to retry transactions in all cases to also cover ones in flight. So I think the expectations in the test plan &lt;b&gt;should&lt;/b&gt; be consistent with 5280. I believe you can enable the new behavior via the cfg file but it isn&apos;t on by default yet. Is that correct Robert?&lt;/p&gt;</comment>
                            <comment id="51957" author="rovarga" created="Tue, 11 Apr 2017 12:36:10 +0000"  >&lt;p&gt;Peter, is this with tell-based-protocol=true? The AskTimeoutException seems to be indicating otherwise.&lt;/p&gt;</comment>
                            <comment id="51958" author="pgubka@cisco.com" created="Tue, 11 Apr 2017 12:58:48 +0000"  >&lt;p&gt;(In reply to Robert Varga from comment #7)&lt;br/&gt;
&amp;gt; Peter, is this with tell-based-protocol=true? The AskTimeoutException seems&lt;br/&gt;
&amp;gt; to be indicating otherwise.&lt;/p&gt;

&lt;p&gt;No. tell-based-protocol was not enabled.&lt;br/&gt;
Is this the right way to enable it? &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/54340/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/54340/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Because i used it here &lt;a href=&quot;https://jenkins.opendaylight.org/sandbox/job/bgpcep-csit-3node-periodic-bgpclustering-only-carbon/1/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://jenkins.opendaylight.org/sandbox/job/bgpcep-csit-3node-periodic-bgpclustering-only-carbon/1/&lt;/a&gt; and the particular log message is not in the logs.&lt;/p&gt;</comment>
                            <comment id="51959" author="rovarga" created="Wed, 12 Apr 2017 11:28:15 +0000"  >&lt;p&gt;This scenario assumes tell-based protocol, &lt;a href=&quot;https://git.opendaylight.org/gerrit/54848&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/54848&lt;/a&gt; should fix its activation.&lt;/p&gt;</comment>
                            <comment id="51960" author="rovarga" created="Thu, 13 Apr 2017 11:34:20 +0000"  >&lt;p&gt;master: &lt;a href=&quot;https://git.opendaylight.org/gerrit/54956&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/54956&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="13645" name="karaf_log_1.tar.gz" size="60143" author="pgubka@cisco.com" created="Tue, 11 Apr 2017 09:54:27 +0000"/>
                            <attachment id="13646" name="karaf_log_2.tar.gz" size="58738" author="pgubka@cisco.com" created="Tue, 11 Apr 2017 09:54:49 +0000"/>
                            <attachment id="13647" name="karaf_log_3.tar.gz" size="59706" author="pgubka@cisco.com" created="Tue, 11 Apr 2017 09:55:10 +0000"/>
                            <attachment id="13644" name="log.html" size="315391" author="pgubka@cisco.com" created="Tue, 11 Apr 2017 09:53:32 +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>8205</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=8205]]></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="10336"><![CDATA[Carbon-RC0]]></customfieldvalue>

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

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