<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:56:20 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-1742] RetiredGenerationException in cluster sanity suite</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1742</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;The &quot;cluster sanity suite&quot; has been created to verify standalone Robot calls to cluster-admin and odl-mdsal-lowlevel RPCs do not fail.&lt;br/&gt;
Incidentally, the &quot;standalone&quot; calls are called one after another, sometimes (depending on election winner) leading to produce-transactions failing on &quot;Originating generation was superseded by 1&quot; &lt;span class=&quot;error&quot;&gt;&amp;#91;0&amp;#93;&lt;/span&gt;:&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&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{message=submit execution failed, errorList=[RpcError [message=submit execution failed, severity=ERROR, errorType=APPLICATION, tag=operation-failed, applicationTag=null, info=null, cause=org.opendaylight.controller.cluster.access.concepts.RetiredGenerationException: Originating generation was superseded by 1]]}\n\tat org.opendaylight.mdsal.dom.broker.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:37)\n\tat org.opendaylight.mdsal.dom.broker.TransactionCommitFailedExceptionMapper.newWithCause(TransactionCommitFailedExceptionMapper.java:18)\n\tat org.opendaylight.yangtools.util.concurrent.ExceptionMapper.apply(ExceptionMapper.java:87)\n\tat org.opendaylight.yangtools.util.concurrent.ExceptionMapper.apply(ExceptionMapper.java:37)\n\tat com.google.common.util.concurrent.Futures$MappingCheckedFuture.mapException(Futures.java:1809)\n\tat com.google.common.util.concurrent.AbstractCheckedFuture.checkedGet(AbstractCheckedFuture.java:114)\n\tat org.opendaylight.controller.clustering.it.provider.impl.ProduceTransactionsHandler.start(ProduceTransactionsHandler.java:79)\n\tat org.opendaylight.controller.clustering.it.provider.MdsalLowLevelTestProvider.produceTransactions(MdsalLowLevelTestProvider.java:570)\n\tat org.opendaylight.yangtools.yang.binding.util.RpcMethodInvokerWithInput.invokeOn(RpcMethodInvokerWithInput.java:31)\n\tat org.opendaylight.yangtools.yang.binding.util.AbstractMappedRpcInvoker.invokeRpc(AbstractMappedRpcInvoker.java:52)\n\tat org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcImplementationAdapter.invoke(BindingDOMRpcImplementationAdapter.java:83)\n\tat org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcImplementationAdapter.invokeRpc(BindingDOMRpcImplementationAdapter.java:70)\n\tat org.opendaylight.controller.md.sal.dom.broker.impl.GlobalDOMRpcRoutingTableEntry.invokeRpc(GlobalDOMRpcRoutingTableEntry.java:39)\n\tat org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRoutingTable.invokeRpc(DOMRpcRoutingTable.java:177)\n\tat org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRouter.invokeRpc(DOMRpcRouter.java:102)\n\tat Proxy09f0c7cc_0210_4c64_938c_26c684cb1dbe.invokeRpc(Unknown Source)\n\tat org.opendaylight.netconf.sal.restconf.impl.BrokerFacade.invokeRpc(BrokerFacade.java:508)\n\tat org.opendaylight.netconf.sal.restconf.impl.RestconfImpl.invokeRpc(RestconfImpl.java:467)\n\tat org.opendaylight.netconf.sal.restconf.impl.StatisticsRestconfServiceWrapper.invokeRpc(StatisticsRestconfServiceWrapper.java:83)\n\tat org.opendaylight.netconf.sal.rest.impl.RestconfCompositeWrapper.invokeRpc(RestconfCompositeWrapper.java:64)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat java.lang.reflect.Method.invoke(Method.java:498)\n\tat com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)\n\tat com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)\n\tat com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)\n\tat com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)\n\tat com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)\n\tat com.sun.jersey.server.impl.uri.rules.ResourceObjectRule.accept(ResourceObjectRule.java:100)\n\tat com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)\n\tat com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)\n\tat com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1511)\n\tat com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1442)\n\tat com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)\n\tat com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)\n\tat com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)\n\tat com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)\n\tat com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:668)\n\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1507)\n\tat org.eclipse.jetty.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:247)\n\tat org.eclipse.jetty.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:210)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1478)\n\tat org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:82)\n\tat org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:256)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1478)\n\tat org.opendaylight.aaa.filterchain.filters.CustomFilterAdapter.doFilter(CustomFilterAdapter.java:83)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1478)\n\tat org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1478)\n\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)\n\tat org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:69)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)\n\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)\n\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)\n\tat org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:240)\n\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:427)\n\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)\n\tat org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:75)\n\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)\n\tat org.eclipse.jetty.server.Server.handle(Server.java:370)\n\tat org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)\n\tat org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:984)\n\tat org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1045)\n\tat org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:861)\n\tat org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:236)\n\tat org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)\n\tat org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)\n\tat org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)\n\tat java.lang.Thread.run(Thread.java:748)\nCaused by: org.opendaylight.controller.cluster.access.concepts.RetiredGenerationException: Originating generation was superseded by 1\n\tat org.opendaylight.controller.cluster.datastore.Shard.findFrontend(Shard.java:428)\n\tat org.opendaylight.controller.cluster.datastore.Shard.getFrontend(Shard.java:442)\n\tat org.opendaylight.controller.cluster.datastore.Shard.handleRequest(Shard.java:517)\n\tat org.opendaylight.controller.cluster.datastore.Shard.handleNonRaftCommand(Shard.java:295)\n\tat org.opendaylight.controller.cluster.raft.RaftActor.handleCommand(RaftActor.java:270)\n\tat org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.onReceiveCommand(AbstractUntypedPersistentActor.java:31)\n\tat akka.persistence.UntypedPersistentActor.onReceive(PersistentActor.scala:170)\n\tat org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(MeteringBehavior.java:104)\n\tat akka.actor.ActorCell$$anonfun$become$1.applyOrElse(ActorCell.scala:544)\n\tat akka.actor.Actor$class.aroundReceive(Actor.scala:502)\n\tat akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(PersistentActor.scala:168)\n\tat akka.persistence.Eventsourced$$anon$1.stateReceive(Eventsourced.scala:727)\n\tat akka.persistence.Eventsourced$class.aroundReceive(Eventsourced.scala:183)\n\tat akka.persistence.UntypedPersistentActor.aroundReceive(PersistentActor.scala:168)\n\tat akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)\n\tat akka.actor.ActorCell.invoke(ActorCell.scala:495)\n\tat akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)\n\tat akka.dispatch.Mailbox.run(Mailbox.scala:224)\n\tat akka.dispatch.Mailbox.exec(Mailbox.scala:234)\n\tat scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)\n\tat scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)\n\tat scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)\n\tat scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)\n&quot;}]}}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The minimal reproducing steps are not clear yet, this is my current hypothesis:&lt;/p&gt;

&lt;p&gt;0. The shard leader (prefix-based shard, tell-based protocol) is moved onto member-1.&lt;br/&gt;
1. Shard replica on member-1 is removed and re-added (each time verifying leader and followers exist).&lt;br/&gt;
2. Shard replica on member-1 (currently first follower) is removed and re-added, again.&lt;br/&gt;
3. produce-transactions is called on member-1 (sometimes, detected as a leader for unrelated shard by mistake), resulting in fairly immediate status code 500.&lt;/p&gt;

&lt;p&gt;I believe some steps are not required, but I was not able to confirm (or even successfully reproduce, due to typos) on Sandbox just yet.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;0&amp;#93;&lt;/span&gt; &lt;a href=&quot;https://logs.opendaylight.org/releng/jenkins092/controller-csit-3node-clustering-only-carbon/791/log.html.gz#s1-s16-t7-k7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://logs.opendaylight.org/releng/jenkins092/controller-csit-3node-clustering-only-carbon/791/log.html.gz#s1-s16-t7-k7&lt;/a&gt;&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="26296">CONTROLLER-1742</key>
            <summary>RetiredGenerationException in cluster sanity suite</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="2" iconUrl="https://jira.opendaylight.org/images/icons/priorities/critical.svg">High</priority>
                        <status id="10004" iconUrl="https://jira.opendaylight.org/images/icons/status_generic.gif" description="">Verified</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10003">Cannot Reproduce</resolution>
                                        <assignee username="jluhrsen">Jamo Luhrsen</assignee>
                                    <reporter username="vrpolak">Vratko Polak</reporter>
                        <labels>
                            <label>csit:3node</label>
                    </labels>
                <created>Mon, 24 Jul 2017 17:22:46 +0000</created>
                <updated>Tue, 25 Jul 2023 08:24:45 +0000</updated>
                            <resolved>Fri, 14 Sep 2018 00:10:12 +0000</resolved>
                                                    <fixVersion>Fluorine</fixVersion>
                    <fixVersion>Oxygen SR3</fixVersion>
                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="52514" author="vrpolak" created="Tue, 25 Jul 2017 15:49:30 +0000"  >&lt;p&gt;&amp;gt; I believe some steps are not required&lt;/p&gt;

&lt;p&gt;At the end, I just run the whole sanity suite as is.&lt;/p&gt;

&lt;p&gt;The huge log &lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt; shows the exception below, the test calls produce-transactions right after 15:00:46,566. I still do not know which preceding actions are causing this. The robot log to compare timestamps: look before &lt;span class=&quot;error&quot;&gt;&amp;#91;2&amp;#93;&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;2017-07-25 15:00:46,859 | ERROR | lt-dispatcher-34 | ClientActorBehavior              | 197 - org.opendaylight.controller.cds-access-client - 1.1.2.SNAPSHOT | member-1-frontend-datastore-Shard-id-ints!: current generation ClientIdentifier&lt;/p&gt;
{frontend=member-1-frontend-datastore-Shard-id-ints!, generation=0}
&lt;p&gt; has been superseded&lt;br/&gt;
org.opendaylight.controller.cluster.access.concepts.RetiredGenerationException: Originating generation was superseded by 1&lt;br/&gt;
        at org.opendaylight.controller.cluster.datastore.Shard.findFrontend(Shard.java:428)&lt;span class=&quot;error&quot;&gt;&amp;#91;199:org.opendaylight.controller.sal-distributed-datastore:1.5.2.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.datastore.Shard.getFrontend(Shard.java:442)&lt;span class=&quot;error&quot;&gt;&amp;#91;199:org.opendaylight.controller.sal-distributed-datastore:1.5.2.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.datastore.Shard.handleRequest(Shard.java:517)&lt;span class=&quot;error&quot;&gt;&amp;#91;199:org.opendaylight.controller.sal-distributed-datastore:1.5.2.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.datastore.Shard.handleNonRaftCommand(Shard.java:295)&lt;span class=&quot;error&quot;&gt;&amp;#91;199:org.opendaylight.controller.sal-distributed-datastore:1.5.2.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.raft.RaftActor.handleCommand(RaftActor.java:270)&lt;span class=&quot;error&quot;&gt;&amp;#91;193:org.opendaylight.controller.sal-akka-raft:1.5.2.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.onReceiveCommand(AbstractUntypedPersistentActor.java:31)&lt;span class=&quot;error&quot;&gt;&amp;#91;192:org.opendaylight.controller.sal-clustering-commons:1.5.2.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.persistence.UntypedPersistentActor.onReceive(PersistentActor.scala:170)&lt;span class=&quot;error&quot;&gt;&amp;#91;180:com.typesafe.akka.persistence:2.4.18&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at org.opendaylight.controller.cluster.common.actor.MeteringBehavior.apply(MeteringBehavior.java:104)&lt;span class=&quot;error&quot;&gt;&amp;#91;192:org.opendaylight.controller.sal-clustering-commons:1.5.2.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.actor.ActorCell$$anonfun$become$1.applyOrElse(ActorCell.scala:544)&lt;span class=&quot;error&quot;&gt;&amp;#91;173:com.typesafe.akka.actor:2.4.18&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.actor.Actor$class.aroundReceive(Actor.scala:502)&lt;span class=&quot;error&quot;&gt;&amp;#91;173:com.typesafe.akka.actor:2.4.18&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(PersistentActor.scala:168)&lt;span class=&quot;error&quot;&gt;&amp;#91;180:com.typesafe.akka.persistence:2.4.18&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.persistence.Eventsourced$$anon$1.stateReceive(Eventsourced.scala:727)&lt;span class=&quot;error&quot;&gt;&amp;#91;180:com.typesafe.akka.persistence:2.4.18&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.persistence.Eventsourced$class.aroundReceive(Eventsourced.scala:183)&lt;span class=&quot;error&quot;&gt;&amp;#91;180:com.typesafe.akka.persistence:2.4.18&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.persistence.UntypedPersistentActor.aroundReceive(PersistentActor.scala:168)&lt;span class=&quot;error&quot;&gt;&amp;#91;180:com.typesafe.akka.persistence:2.4.18&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.actor.ActorCell.receiveMessage(ActorCell.scala:526)&lt;span class=&quot;error&quot;&gt;&amp;#91;173:com.typesafe.akka.actor:2.4.18&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.actor.ActorCell.invoke(ActorCell.scala:495)&lt;span class=&quot;error&quot;&gt;&amp;#91;173:com.typesafe.akka.actor:2.4.18&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:257)&lt;span class=&quot;error&quot;&gt;&amp;#91;173:com.typesafe.akka.actor:2.4.18&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.dispatch.Mailbox.run(Mailbox.scala:224)&lt;span class=&quot;error&quot;&gt;&amp;#91;173:com.typesafe.akka.actor:2.4.18&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at akka.dispatch.Mailbox.exec(Mailbox.scala:234)&lt;span class=&quot;error&quot;&gt;&amp;#91;173:com.typesafe.akka.actor:2.4.18&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;169:org.scala-lang.scala-library:2.11.11.v20170413-090219-8a413ba7cc&amp;#93;&lt;/span&gt;&lt;br/&gt;
        at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)&lt;span class=&quot;error&quot;&gt;&amp;#91;169:org.scala-lang.scala-library:2.11.11.v20170413-090219-8a413ba7cc&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;169:org.scala-lang.scala-library:2.11.11.v20170413-090219-8a413ba7cc&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;169:org.scala-lang.scala-library:2.11.11.v20170413-090219-8a413ba7cc&amp;#93;&lt;/span&gt;&lt;/p&gt;


&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;1&amp;#93;&lt;/span&gt; &lt;a href=&quot;https://logs.opendaylight.org/sandbox/jenkins091/controller-csit-3node-clustering-san-only-carbon/9/odl1_karaf.log.gz&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://logs.opendaylight.org/sandbox/jenkins091/controller-csit-3node-clustering-san-only-carbon/9/odl1_karaf.log.gz&lt;/a&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;2&amp;#93;&lt;/span&gt; &lt;a href=&quot;https://logs.opendaylight.org/sandbox/jenkins091/controller-csit-3node-clustering-san-only-carbon/9/log.html.gz#s1-s2-t7-k7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://logs.opendaylight.org/sandbox/jenkins091/controller-csit-3node-clustering-san-only-carbon/9/log.html.gz#s1-s2-t7-k7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="52515" author="rovarga" created="Thu, 24 Aug 2017 12:41:00 +0000"  >&lt;p&gt;Is this still happening?&lt;/p&gt;</comment>
                            <comment id="52516" author="vrpolak" created="Mon, 18 Sep 2017 12:38:14 +0000"  >&lt;p&gt;&amp;gt; Is this still happening?&lt;/p&gt;

&lt;p&gt;Yes, this is still happening: &lt;span class=&quot;error&quot;&gt;&amp;#91;3&amp;#93;&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;But is not a part of an official suite, or otherwise a regression, so I was not monitoring the results closely enough.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;3&amp;#93;&lt;/span&gt; &lt;a href=&quot;https://logs.opendaylight.org/releng/jenkins092/controller-csit-3node-clustering-all-carbon/444/log.html.gz#s1-s16-t7-k8-k1-k1-k1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://logs.opendaylight.org/releng/jenkins092/controller-csit-3node-clustering-all-carbon/444/log.html.gz#s1-s16-t7-k8-k1-k1-k1&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="63778" author="jluhrsen" created="Thu, 28 Jun 2018 13:58:31 +0000"  >&lt;p&gt;btw, this is still happening and as we drive to get clustering more stable, these are the kinds of sporadic&lt;br/&gt;
failure noise we want to get rid of.&lt;/p&gt;</comment>
                            <comment id="63779" author="tpantelis" created="Thu, 28 Jun 2018 14:05:44 +0000"  >&lt;p&gt;This is an issue with tell-based only.&lt;/p&gt;</comment>
                            <comment id="63781" author="rovarga" created="Thu, 28 Jun 2018 14:07:54 +0000"  >&lt;p&gt;Do you have a newer reference?&lt;/p&gt;

&lt;p&gt;Does the test perhaps include wiping local data (i.e. akka persistence?)&lt;/p&gt;</comment>
                            <comment id="63788" author="vrpolak" created="Thu, 28 Jun 2018 14:34:23 +0000"  >&lt;p&gt;&amp;gt; Do you have a newer reference?&lt;/p&gt;

&lt;p&gt;Present in recent run, the first Robot failure (a RequestTimeoutException) is &lt;span class=&quot;error&quot;&gt;&amp;#91;4&amp;#93;&lt;/span&gt;, RetiredGenerationException is visible in member-1 karaf log &lt;span class=&quot;error&quot;&gt;&amp;#91;5&amp;#93;&lt;/span&gt;, at 2018-06-28T02:28:05,676 (so in the subsequent test case). I have not checked other members.&lt;/p&gt;

&lt;p&gt;&amp;gt; Does the test perhaps include wiping local data (i.e. akka persistence?)&lt;/p&gt;

&lt;p&gt;No, as far as I can see.&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;4&amp;#93;&lt;/span&gt; &lt;a href=&quot;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/controller-csit-3node-clustering-all-fluorine/130/robot-plugin/log.html.gz#s1-s16-t7-k8-k1-k1-k1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/controller-csit-3node-clustering-all-fluorine/130/robot-plugin/log.html.gz#s1-s16-t7-k8-k1-k1-k1&lt;/a&gt;&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;5&amp;#93;&lt;/span&gt; &lt;a href=&quot;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/controller-csit-3node-clustering-all-fluorine/130/odl1_karaf.log.gz&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/controller-csit-3node-clustering-all-fluorine/130/odl1_karaf.log.gz&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="63789" author="rovarga" created="Thu, 28 Jun 2018 14:46:24 +0000"  >&lt;p&gt;Let&apos;s see what info can we glean from &lt;a href=&quot;https://git.opendaylight.org/gerrit/73529&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/73529&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="64290" author="tpantelis" created="Thu, 26 Jul 2018 20:44:18 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/browse/CONTROLLER-1626&quot; title=&quot;Add an option to allow CDS FE to start its generation counting from non-zero&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CONTROLLER-1626&quot;&gt;&lt;del&gt;CONTROLLER-1626&lt;/del&gt;&lt;/a&gt; is another bug related to the retired generation checking although that involves wiping the persisted store on restart. While it&apos;s not normally recommended to wipe the persisted store, it can happen in a disaster recovery scenario where a new node instance is spun up new or if the persisted store was corrupted.&lt;/p&gt;</comment>
                            <comment id="64291" author="tpantelis" created="Thu, 26 Jul 2018 22:05:57 +0000"  >&lt;p&gt;Looking at the robot log in &lt;span class=&quot;error&quot;&gt;&amp;#91;4&amp;#93;&lt;/span&gt; above, the following steps are performed:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Create a new prefix-based shard named &quot;id-ints&quot; on all nodes&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Initially the leader is odl1. The Become_Prefix_Leader step promotes odl2 to leader via /restconf/operations/odl-mdsal-lowlevel-control:become-prefix-leader.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;The Remove_Leader_Prefix_Shard_Replica_And_Add_It_Back step issues /restconf/operations/cluster-admin:remove-prefix-shard-replica to odl2 to remove the &quot;id-ints&quot;&lt;br/&gt;
 shard replica.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;The shard is re-added on odl2 via /restconf/operations/cluster-admin:add-prefix-shard-replica&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;At this point odl3 is the &quot;id-ints&quot; shard leader with odl1 and odl3 as followers.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Remove_Follower_Prefix_Shard_Replica_And_Add_It_Back picks the first follower old1 and removes the shard replica.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;The shard is re-added on odl1. odl3 remains leader with followers odl1 and odl2 as expected&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Produce_Transactions_One_Node_Leader is a little unclear to me at this point. The first part of it is to extract the leader, odl2, for the default-config shard. Not sure why it does this. Then it issues the /restconf/operations/odl-mdsal-lowlevel-control:produce-transactions RPC to odl2 to produce 1000 txns per sec for 30 sec. The code for that is in MdsalLowLevelTestProvider. It uses the new data tree producer APIs and I &lt;b&gt;think&lt;/b&gt; it commits txns to the  &quot;id-ints&quot; shard, or at least that would seem to make sense. This RPC blocks and returned the RequestTimeoutException error.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;So this test suite is exercising the prefix-based shard and data tree producer functionality, neither of which is currently used to my knowledge, at least not in any upstream project.&lt;/p&gt;

&lt;p&gt;So it appears the RetiredGenerationEx failure in this test is related to removing and re-adding a dynamically-created prefix-based shard where the FE generation ID reverts back to 0 while the existing shard leader&apos;s cached state contains generation ID 1 from the previous incarnation. Perhaps when a prefix shard replica is removed, the leader needs to flush its cached state but that&apos;s just a guess at this point.&lt;/p&gt;</comment>
                            <comment id="64413" author="jluhrsen" created="Mon, 30 Jul 2018 17:53:07 +0000"  >&lt;blockquote&gt;
&lt;p&gt;So this test suite is exercising the prefix-based shard and data tree producer functionality, neither of which is currently used to my knowledge, at least not in any upstream project.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I know it&apos;s probably too simple-minded, but do we need to keep this functionality around if it&apos;s not used? If we remove&lt;br/&gt;
the functionality and any tests exercising it, we reduce the amount of noise we are dealing with while trying to stabilize&lt;br/&gt;
the controller 3node csit.&lt;/p&gt;</comment>
                            <comment id="64414" author="rovarga" created="Mon, 30 Jul 2018 18:07:12 +0000"  >&lt;p&gt;Splitting off would be fair, we do not want to stop testing this, though &#8211; strategic target and all...&lt;/p&gt;</comment>
                            <comment id="64415" author="jluhrsen" created="Mon, 30 Jul 2018 18:15:41 +0000"  >&lt;p&gt;what does &quot;splitting off&quot; mean?&lt;/p&gt;</comment>
                            <comment id="64416" author="rovarga" created="Mon, 30 Jul 2018 18:16:40 +0000"  >&lt;p&gt;... into a separate job, I meant to say &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;</comment>
                            <comment id="64417" author="tpantelis" created="Mon, 30 Jul 2018 19:03:22 +0000"  >&lt;p&gt;The functionality may be useful in the future, specifically for scale out use cases&lt;/p&gt;</comment>
                            <comment id="64418" author="jluhrsen" created="Mon, 30 Jul 2018 19:34:50 +0000"  >&lt;p&gt;well then, maybe it&apos;s worth it &lt;b&gt;now&lt;/b&gt; while things are hotter than usual, so actually dig in and see if we&lt;br/&gt;
can get a fix? instead of making a new job that will just go stale and forgotten and be a giant&lt;br/&gt;
pain in someone&apos;s side when they need to look at it.&lt;/p&gt;</comment>
                            <comment id="64517" author="rovarga" created="Thu, 2 Aug 2018 16:28:28 +0000"  >&lt;p&gt;Based on the discussion in the kernel call, where it was raised that people tend to wipe even frontend persistence (as opposed to backend persistence, which contains datastore data), if we confirm this indeed is the issue, we need to provide a way for the operator to bump the frontend generation for a particular ODL member. Once that version is bump and the node restarted, the problem should be cleared.&lt;/p&gt;</comment>
                            <comment id="64519" author="tpantelis" created="Thu, 2 Aug 2018 16:50:05 +0000"  >&lt;p&gt;End users of course aren&apos;t aware of frontend vs backend persistence and frankly shouldn&apos;t be - that&apos;s a technical implementation detail. In a disaster recovery scenario, a node will naturally restart clean. This needs to work seamlessly as it does today. Users/operators/integrators should not have to worry about knowing to somehow bump a generation ID (and per shard) and what&#160;value to bump it to, IMO.&#160; I certainly would not want to have to field a support ticket to explain it to an end user and fix up their environment.&lt;/p&gt;

&lt;p&gt;For this Jira, this is not the issue but it is a bigger issue we&apos;ll have to address before switching to tell-based.&lt;/p&gt;</comment>
                            <comment id="64767" author="jluhrsen" created="Sat, 25 Aug 2018 00:37:26 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=rovarga&quot; class=&quot;user-hover&quot; rel=&quot;rovarga&quot;&gt;rovarga&lt;/a&gt;, I finally had time to dig through this job looking for what I assume is the smoking&lt;br/&gt;
gun (seeing &quot;Originating generation was superseded by 1&quot;) in a karaf.log file.&lt;/p&gt;

&lt;p&gt;The most recent job was &lt;a href=&quot;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/controller-csit-3node-clustering-all-fluorine/130&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;#130 &lt;/a&gt;, in &lt;a href=&quot;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/controller-csit-3node-clustering-all-fluorine/130/odl2_karaf.log.gz&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;odl2&apos;s log &lt;/a&gt;. But, the patch above you were hoping could help us glean something new&lt;br/&gt;
was merged that same day (Jun 28th). I&apos;m not sure if it was before or after this job ran. Still that&apos;s very curious.&lt;/p&gt;

&lt;p&gt;Anyway, no other jobs saw this message in any of the 3 controller log files since June 28th. I do have 13 examples&lt;br/&gt;
in our logs server &lt;b&gt;before&lt;/b&gt; the 28th. (jobs 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129)&lt;/p&gt;

&lt;p&gt;Is this bug no longer reproducible in this job, or possibly fixed?&lt;/p&gt;</comment>
                            <comment id="64945" author="jluhrsen" created="Fri, 14 Sep 2018 00:10:12 +0000"  >&lt;p&gt;This has not occured since 6/28 with this &lt;a href=&quot;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/controller-csit-3node-clustering-all-fluorine/130/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;job&lt;/a&gt;. There have been 80 jobs run since&lt;br/&gt;
the last occurance. Marking this resolved as &quot;cannot reproduce&quot;. we can re-open if it&apos;s seen&lt;br/&gt;
again.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="26180">CONTROLLER-1626</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="30150">NETVIRT-1315</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </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>8881</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=8881]]></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_10202" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Priority</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10313"><![CDATA[Highest]]></customfieldvalue>

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

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