<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:56:04 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-1642] DistributedShardedDOMDataTreeRemotingTest.testProducerRegistrations fails intermittently</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1642</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;testProducerRegistrations(org.opendaylight.controller.cluster.sharding.DistributedShardedDOMDataTreeRemotingTest)  Time elapsed: 108.576 sec  &amp;lt;&amp;lt;&amp;lt; ERROR!&lt;br/&gt;
 java.lang.RuntimeException: org.opendaylight.controller.cluster.sharding.DOMDataTreeShardCreationFailedException: Unable to create a cds shard.&lt;br/&gt;
 	at org.opendaylight.controller.cluster.sharding.DistributedShardedDOMDataTree.initDefaultShard(DistributedShardedDOMDataTree.java:559)&lt;br/&gt;
 	at org.opendaylight.controller.cluster.sharding.DistributedShardedDOMDataTree.init(DistributedShardedDOMDataTree.java:247)&lt;br/&gt;
 	at org.opendaylight.controller.cluster.sharding.DistributedShardedDOMDataTreeRemotingTest.initEmptyDatastores(DistributedShardedDOMDataTreeRemotingTest.java:165)&lt;br/&gt;
 	at org.opendaylight.controller.cluster.sharding.DistributedShardedDOMDataTreeRemotingTest.testProducerRegistrations(DistributedShardedDOMDataTreeRemotingTest.java:178)&lt;br/&gt;
 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br/&gt;
 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)&lt;br/&gt;
 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&lt;br/&gt;
 	at java.lang.reflect.Method.invoke(Method.java:498)&lt;br/&gt;
 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)&lt;br/&gt;
 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)&lt;br/&gt;
 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)&lt;br/&gt;
 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)&lt;br/&gt;
 	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)&lt;br/&gt;
 	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)&lt;br/&gt;
 	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)&lt;br/&gt;
 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)&lt;br/&gt;
 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)&lt;br/&gt;
 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)&lt;br/&gt;
 	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)&lt;br/&gt;
 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)&lt;br/&gt;
 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)&lt;br/&gt;
 	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)&lt;br/&gt;
 	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)&lt;br/&gt;
 	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)&lt;br/&gt;
 	at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)&lt;br/&gt;
 	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)&lt;br/&gt;
 	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)&lt;br/&gt;
 	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)&lt;br/&gt;
 	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)&lt;br/&gt;
 	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)&lt;br/&gt;
 Caused by: org.opendaylight.controller.cluster.sharding.DOMDataTreeShardCreationFailedException: Unable to create a cds shard.&lt;br/&gt;
 	at org.opendaylight.controller.cluster.sharding.DistributedShardedDOMDataTree$2$2.apply(DistributedShardedDOMDataTree.java:358)&lt;br/&gt;
 	at org.opendaylight.controller.cluster.sharding.DistributedShardedDOMDataTree$2$2.apply(DistributedShardedDOMDataTree.java:355)&lt;br/&gt;
 	at scala.concurrent.Future$$anonfun$transform$1$$anonfun$apply$2.apply(Future.scala:224)&lt;br/&gt;
 	at scala.concurrent.Future$$anonfun$transform$1$$anonfun$apply$2.apply(Future.scala:224)&lt;br/&gt;
 	at scala.util.Try$.apply(Try.scala:192)&lt;br/&gt;
 	at scala.concurrent.Future$$anonfun$transform$1.apply(Future.scala:224)&lt;br/&gt;
 	at scala.concurrent.Future$$anonfun$transform$1.apply(Future.scala:222)&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: org.opendaylight.controller.cluster.sharding.DOMDataTreeShardCreationFailedException: Unable to find the backend shard.Failing..&lt;br/&gt;
 	at org.opendaylight.controller.cluster.sharding.LookupTask.fail(LookupTask.java:50)&lt;br/&gt;
 	at org.opendaylight.controller.cluster.sharding.LookupTask.tryReschedule(LookupTask.java:40)&lt;br/&gt;
 	at org.opendaylight.controller.cluster.sharding.ShardedDataTreeActor$ShardCreationLookupTask$1.onComplete(ShardedDataTreeActor.java:451)&lt;br/&gt;
 	at org.opendaylight.controller.cluster.sharding.ShardedDataTreeActor$ShardCreationLookupTask$1.onComplete(ShardedDataTreeActor.java:447)&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;
 	... 13 more&lt;br/&gt;
 Caused by: org.opendaylight.controller.cluster.datastore.exceptions.LocalShardNotFoundException: Local shard for default does not exist.&lt;br/&gt;
 	at org.opendaylight.controller.cluster.datastore.utils.ActorContext$3.checkedApply(ActorContext.java:294)&lt;br/&gt;
 	at org.opendaylight.controller.cluster.datastore.utils.ActorContext$3.checkedApply(ActorContext.java:283)&lt;br/&gt;
 	at akka.dispatch.Mapper.apply(Future.scala:359)&lt;br/&gt;
 	at scala.util.Success$$anonfun$map$1.apply(Try.scala:237)&lt;br/&gt;
 	at scala.util.Try$.apply(Try.scala:192)&lt;br/&gt;
 	at scala.util.Success.map(Try.scala:237)&lt;br/&gt;
 	at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:237)&lt;br/&gt;
 	at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:237)&lt;br/&gt;
 	... 13 more&lt;/p&gt;

&lt;p&gt;Since this is happening in initEmptyDatastores it could affect any of the tests. I&apos;ve looked into it but haven&apos;t found the cause yet. It seems to happen if member-2 becomes the leader of prefix-configuration shard. The PrefixedShardConfigUpdateHandler DTCL for the ShardManager doesn&apos;t get notified so the local default shard on member-1 isn&apos;t found. I&apos;ve also seen it fail where the PrefixedShardConfigUpdateHandler DTCL for the DistributedShardedDOMDataTree doesn&apos;t get notified.&lt;/p&gt;

&lt;p&gt;For now I&apos;ll submit a patch to ignore the tests.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="26196">CONTROLLER-1642</key>
            <summary>DistributedShardedDOMDataTreeRemotingTest.testProducerRegistrations fails intermittently</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="tpantelis">Tom Pantelis</reporter>
                        <labels>
                    </labels>
                <created>Tue, 25 Apr 2017 17:52:18 +0000</created>
                <updated>Tue, 25 Jul 2023 08:24:31 +0000</updated>
                            <resolved>Sat, 6 May 2017 12:13:00 +0000</resolved>
                                                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="52006" author="tpantelis" created="Thu, 27 Apr 2017 10:31:54 +0000"  >&lt;p&gt;I fixed a couple things but still seeing a really weird scenario wrt the DTCL registations for the prefix-configuration-shard. I&apos;ve added more debug and the following shows the ShardDataTreeChangeListenerPublisherActorProxy sending&lt;br/&gt;
the RegisterListener message to the ShardDataTreeChangePublisherActor:&lt;/p&gt;

&lt;p&gt;09:03:42,342 PM &lt;span class=&quot;error&quot;&gt;&amp;#91;cluster-test-akka.actor.default-dispatcher-9&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;DEBUG&amp;#93;&lt;/span&gt; ShardDataTreeChangeListenerPublisherActorProxy - member-1-shard-prefix-configuration-shard-config: Sending RegisterListener [path=/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:prefix-shard-configuration?revision=2017-01-10)prefix-shards/shard, listener=ForwardingDataTreeChangeListener [actor=ActorSelection&lt;span class=&quot;error&quot;&gt;&amp;#91;Anchor(akka://cluster-test/), Path(/user/$e)&amp;#93;&lt;/span&gt;], initialState present=true] to publisher actor Actor&lt;a href=&quot;#1456071537&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;akka://cluster-test/user/shardmanager-config/member-1-shard-prefix-configuration-shard-config/member-1-shard-prefix-configuration-shard-config-DTCL-publisher#1456071537&lt;/a&gt;,  ACTORREF: 1171733008, REF: 2141773456&lt;/p&gt;

&lt;p&gt;The FE DTCL actor&apos;s path ends in &quot;/user/$e&quot;. This is for the CONFIG shard:&lt;br/&gt;
member-1-shard-prefix-configuration-shard-config. The ShardDataTreeChangePublisherActor&apos;s&lt;br/&gt;
path ends in &quot;member-1-shard-prefix-configuration-shard-config-DTCL-publisher#1456071537&quot;. I also printed the publisher ActorRef reference identity (ACTORREF) and &quot;this&quot; ref identity (REF).&lt;/p&gt;

&lt;p&gt;The ShardDataTreeChangePublisherActor for  member-1-shard-prefix-configuration-shard-config receives the message as expected:&lt;/p&gt;

&lt;p&gt;09:03:42,346 PM &lt;span class=&quot;error&quot;&gt;&amp;#91;cluster-test-akka.actor.default-dispatcher-2&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;DEBUG&amp;#93;&lt;/span&gt; ShardDataTreeChangePublisherActor - member-1-shard-prefix-configuration-shard-config: Received RegisterListener [path=/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:prefix-shard-configuration?revision=2017-01-10)prefix-shards/shard, listener=ForwardingDataTreeChangeListener [actor=ActorSelection&lt;span class=&quot;error&quot;&gt;&amp;#91;Anchor(akka://cluster-test/), Path(/user/$e)&amp;#93;&lt;/span&gt;], initialState present=true]: path: akka://cluster-test/user/shardmanager-config/member-1-shard-prefix-configuration-shard-config/member-1-shard-prefix-configuration-shard-config-DTCL-publisher, ref: 446773763&lt;/p&gt;

&lt;p&gt;So far so good. Shortly thereafter another DTCL is registered for the same shard. Here&apos;s the ShardDataTreeChangeListenerPublisherActorProxy log message:&lt;/p&gt;

&lt;p&gt;09:03:42,346 PM &lt;span class=&quot;error&quot;&gt;&amp;#91;cluster-test-akka.actor.default-dispatcher-9&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;DEBUG&amp;#93;&lt;/span&gt; ShardDataTreeChangeListenerPublisherActorProxy - member-1-shard-prefix-configuration-shard-config: Sending RegisterListener [path=/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:prefix-shard-configuration?revision=2017-01-10)prefix-shards/shard, listener=ForwardingDataTreeChangeListener [actor=ActorSelection&lt;span class=&quot;error&quot;&gt;&amp;#91;Anchor(akka://cluster-test/), Path(/user/$h)&amp;#93;&lt;/span&gt;], initialState present=true] to publisher actor Actor&lt;a href=&quot;#1456071537&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;akka://cluster-test/user/shardmanager-config/member-1-shard-prefix-configuration-shard-config/member-1-shard-prefix-configuration-shard-config-DTCL-publisher#1456071537&lt;/a&gt;,  ACTORREF: 1171733008, REF: 2141773456&lt;/p&gt;

&lt;p&gt;The DTCL listener actor path ends in &quot;user/$h&quot;. Same ACTORREF, REF, and &lt;br/&gt;
ShardDataTreeChangePublisherActor path. Looks good. However the message doesn&apos;t go to the same (member-1-shard-prefix-configuration-shard-config) ShardDataTreeChangePublisherActor instance. Instead it inexplicably goes to the member-1-shard-prefix-configuration-shard-operational instance:&lt;/p&gt;

&lt;p&gt;09:03:42,351 PM &lt;span class=&quot;error&quot;&gt;&amp;#91;cluster-test-akka.actor.default-dispatcher-12&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;DEBUG&amp;#93;&lt;/span&gt; ShardDataTreeChangePublisherActor - member-1-shard-prefix-configuration-shard-operational: Received RegisterListener [path=/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:prefix-shard-configuration?revision=2017-01-10)prefix-shards/shard, listener=ForwardingDataTreeChangeListener [actor=ActorSelection&lt;span class=&quot;error&quot;&gt;&amp;#91;Anchor(akka://cluster-test/), Path(/user/$h)&amp;#93;&lt;/span&gt;], initialState present=true]: path: akka://cluster-test/user/shardmanager-operational/member-1-shard-prefix-configuration-shard-operational/member-1-shard-prefix-configuration-shard-operational-DTCL-publisher, ref: 202318682&lt;/p&gt;

&lt;p&gt;This only happens very intermittently. Most times it takes up to 100 runs for it to happen (once was about 250). I&apos;m scratching my head. It seems like akka is routing the message to the wrong actor - that&apos;s the only thing I can see at this point.&lt;/p&gt;</comment>
                            <comment id="52007" author="tpantelis" created="Thu, 27 Apr 2017 10:53:09 +0000"  >&lt;p&gt;Submitted &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/56150/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/56150/&lt;/a&gt; to fix a couple issues.&lt;/p&gt;</comment>
                            <comment id="52008" author="jmorvay@cisco.com" created="Tue, 2 May 2017 08:44:25 +0000"  >&lt;p&gt;(In reply to Tom Pantelis from comment #1)&lt;br/&gt;
&amp;gt; I fixed a couple things but still seeing a really weird scenario wrt the&lt;br/&gt;
&amp;gt; DTCL registations for the prefix-configuration-shard. I&apos;ve added more debug&lt;br/&gt;
&amp;gt; and the following shows the ShardDataTreeChangeListenerPublisherActorProxy&lt;br/&gt;
&amp;gt; sending&lt;br/&gt;
&amp;gt; the RegisterListener message to the ShardDataTreeChangePublisherActor:&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; 09:03:42,342 PM &lt;span class=&quot;error&quot;&gt;&amp;#91;cluster-test-akka.actor.default-dispatcher-9&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;DEBUG&amp;#93;&lt;/span&gt;&lt;br/&gt;
&amp;gt; ShardDataTreeChangeListenerPublisherActorProxy -&lt;br/&gt;
&amp;gt; member-1-shard-prefix-configuration-shard-config: Sending RegisterListener&lt;br/&gt;
&amp;gt; [path=/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:&lt;br/&gt;
&amp;gt; prefix-shard-configuration?revision=2017-01-10)prefix-shards/shard,&lt;br/&gt;
&amp;gt; listener=ForwardingDataTreeChangeListener&lt;br/&gt;
&amp;gt; [actor=ActorSelection&lt;span class=&quot;error&quot;&gt;&amp;#91;Anchor(akka://cluster-test/), Path(/user/$e)&amp;#93;&lt;/span&gt;],&lt;br/&gt;
&amp;gt; initialState present=true] to publisher actor&lt;br/&gt;
&amp;gt; Actor[akka://cluster-test/user/shardmanager-config/member-1-shard-prefix-&lt;br/&gt;
&amp;gt; configuration-shard-config/member-1-shard-prefix-configuration-shard-config-&lt;br/&gt;
&amp;gt; DTCL-publisher#1456071537],  ACTORREF: 1171733008, REF: 2141773456&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; The FE DTCL actor&apos;s path ends in &quot;/user/$e&quot;. This is for the CONFIG shard:&lt;br/&gt;
&amp;gt; member-1-shard-prefix-configuration-shard-config. The&lt;br/&gt;
&amp;gt; ShardDataTreeChangePublisherActor&apos;s&lt;br/&gt;
&amp;gt; path ends in&lt;br/&gt;
&amp;gt; &quot;member-1-shard-prefix-configuration-shard-config-DTCL-publisher#1456071537&quot;.&lt;br/&gt;
&amp;gt; I also printed the publisher ActorRef reference identity (ACTORREF) and&lt;br/&gt;
&amp;gt; &quot;this&quot; ref identity (REF).&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; The ShardDataTreeChangePublisherActor for &lt;br/&gt;
&amp;gt; member-1-shard-prefix-configuration-shard-config receives the message as&lt;br/&gt;
&amp;gt; expected:&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; 09:03:42,346 PM &lt;span class=&quot;error&quot;&gt;&amp;#91;cluster-test-akka.actor.default-dispatcher-2&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;DEBUG&amp;#93;&lt;/span&gt;&lt;br/&gt;
&amp;gt; ShardDataTreeChangePublisherActor -&lt;br/&gt;
&amp;gt; member-1-shard-prefix-configuration-shard-config: Received RegisterListener&lt;br/&gt;
&amp;gt; [path=/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:&lt;br/&gt;
&amp;gt; prefix-shard-configuration?revision=2017-01-10)prefix-shards/shard,&lt;br/&gt;
&amp;gt; listener=ForwardingDataTreeChangeListener&lt;br/&gt;
&amp;gt; [actor=ActorSelection&lt;span class=&quot;error&quot;&gt;&amp;#91;Anchor(akka://cluster-test/), Path(/user/$e)&amp;#93;&lt;/span&gt;],&lt;br/&gt;
&amp;gt; initialState present=true]: path:&lt;br/&gt;
&amp;gt; akka://cluster-test/user/shardmanager-config/member-1-shard-prefix-&lt;br/&gt;
&amp;gt; configuration-shard-config/member-1-shard-prefix-configuration-shard-config-&lt;br/&gt;
&amp;gt; DTCL-publisher, ref: 446773763&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; So far so good. Shortly thereafter another DTCL is registered for the same&lt;br/&gt;
&amp;gt; shard. Here&apos;s the ShardDataTreeChangeListenerPublisherActorProxy log message:&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; 09:03:42,346 PM &lt;span class=&quot;error&quot;&gt;&amp;#91;cluster-test-akka.actor.default-dispatcher-9&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;DEBUG&amp;#93;&lt;/span&gt;&lt;br/&gt;
&amp;gt; ShardDataTreeChangeListenerPublisherActorProxy -&lt;br/&gt;
&amp;gt; member-1-shard-prefix-configuration-shard-config: Sending RegisterListener&lt;br/&gt;
&amp;gt; [path=/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:&lt;br/&gt;
&amp;gt; prefix-shard-configuration?revision=2017-01-10)prefix-shards/shard,&lt;br/&gt;
&amp;gt; listener=ForwardingDataTreeChangeListener&lt;br/&gt;
&amp;gt; [actor=ActorSelection&lt;span class=&quot;error&quot;&gt;&amp;#91;Anchor(akka://cluster-test/), Path(/user/$h)&amp;#93;&lt;/span&gt;],&lt;br/&gt;
&amp;gt; initialState present=true] to publisher actor&lt;br/&gt;
&amp;gt; Actor[akka://cluster-test/user/shardmanager-config/member-1-shard-prefix-&lt;br/&gt;
&amp;gt; configuration-shard-config/member-1-shard-prefix-configuration-shard-config-&lt;br/&gt;
&amp;gt; DTCL-publisher#1456071537],  ACTORREF: 1171733008, REF: 2141773456&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; The DTCL listener actor path ends in &quot;user/$h&quot;. Same ACTORREF, REF, and &lt;br/&gt;
&amp;gt; ShardDataTreeChangePublisherActor path. Looks good. However the message&lt;br/&gt;
&amp;gt; doesn&apos;t go to the same (member-1-shard-prefix-configuration-shard-config)&lt;br/&gt;
&amp;gt; ShardDataTreeChangePublisherActor instance. Instead it inexplicably goes to&lt;br/&gt;
&amp;gt; the member-1-shard-prefix-configuration-shard-operational instance:&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; 09:03:42,351 PM &lt;span class=&quot;error&quot;&gt;&amp;#91;cluster-test-akka.actor.default-dispatcher-12&amp;#93;&lt;/span&gt; &lt;span class=&quot;error&quot;&gt;&amp;#91;DEBUG&amp;#93;&lt;/span&gt;&lt;br/&gt;
&amp;gt; ShardDataTreeChangePublisherActor -&lt;br/&gt;
&amp;gt; member-1-shard-prefix-configuration-shard-operational: Received&lt;br/&gt;
&amp;gt; RegisterListener&lt;br/&gt;
&amp;gt; [path=/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:&lt;br/&gt;
&amp;gt; prefix-shard-configuration?revision=2017-01-10)prefix-shards/shard,&lt;br/&gt;
&amp;gt; listener=ForwardingDataTreeChangeListener&lt;br/&gt;
&amp;gt; [actor=ActorSelection&lt;span class=&quot;error&quot;&gt;&amp;#91;Anchor(akka://cluster-test/), Path(/user/$h)&amp;#93;&lt;/span&gt;],&lt;br/&gt;
&amp;gt; initialState present=true]: path:&lt;br/&gt;
&amp;gt; akka://cluster-test/user/shardmanager-operational/member-1-shard-prefix-&lt;br/&gt;
&amp;gt; configuration-shard-operational/member-1-shard-prefix-configuration-shard-&lt;br/&gt;
&amp;gt; operational-DTCL-publisher, ref: 202318682&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; This only happens very intermittently. Most times it takes up to 100 runs&lt;br/&gt;
&amp;gt; for it to happen (once was about 250). I&apos;m scratching my head. It seems like&lt;br/&gt;
&amp;gt; akka is routing the message to the wrong actor - that&apos;s the only thing I can&lt;br/&gt;
&amp;gt; see at this point.&lt;/p&gt;

&lt;p&gt;Hi Tom,&lt;/p&gt;

&lt;p&gt;We have also witnessed this strange behavior. The only difference is that we can see this on almost half of our test runs. Our test is pretty simple. We have 3-node cluster and we are creating a prefix based shard in config DS.&lt;/p&gt;

&lt;p&gt;I can attach logs here, but basically there is nothing new in them. It boils down to bad registration.&lt;/p&gt;

&lt;p&gt;2017-04-28 14:51:45,409 | DEBUG | lt-dispatcher-49 | hangeListenerPublisherActorProxy | 226 - org.opendaylight.controller.sal-distributed-datastore - 1.5.0.SNAPSHOT | member-1-shard-prefix-configuration-shard-operational: Sending RegisterListener [path=/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:prefix-shard-configuration?revision=2017-01-10)prefix-shards/shard, listener=ForwardingDataTreeChangeListener [actor=ActorSelection&lt;span class=&quot;error&quot;&gt;&amp;#91;Anchor(akka://opendaylight-cluster-data/), Path(/user/$g)&amp;#93;&lt;/span&gt;], initialState present=true] to publisher actor Actor&lt;a href=&quot;#1253759913&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;akka://opendaylight-cluster-data/user/shardmanager-operational/member-1-shard-prefix-configuration-shard-operational/member-1-shard-prefix-configuration-shard-operational-DTCL-publisher#1253759913&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2017-04-28 14:51:45,412 | DEBUG | on-dispatcher-57 | hardDataTreeChangePublisherActor | 219 - org.opendaylight.controller.sal-clustering-commons - 1.5.0.SNAPSHOT | member-1-shard-prefix-configuration-shard-config: Received RegisterListener [path=/(urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:prefix-shard-configuration?revision=2017-01-10)prefix-shards/shard, listener=ForwardingDataTreeChangeListener [actor=ActorSelection&lt;span class=&quot;error&quot;&gt;&amp;#91;Anchor(akka://opendaylight-cluster-data/), Path(/user/$g)&amp;#93;&lt;/span&gt;], initialState present=true]&lt;/p&gt;</comment>
                            <comment id="52009" author="tcere" created="Thu, 4 May 2017 13:18:28 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/56456/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/56456/&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/56472/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/56472/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We think if the create is called from multiple threads it raced and multiple actors were created with the same queue which would explain the mixed up messages for the config and operational listeners when the actors otherwise had no way to actually have an ActorRef to the counterpart in the otherdatastore.&lt;/p&gt;</comment>
                            <comment id="52010" author="tpantelis" created="Thu, 4 May 2017 14:13:16 +0000"  >&lt;p&gt;(In reply to Tomas Cere from comment #4)&lt;br/&gt;
&amp;gt; &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/56456/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/56456/&lt;/a&gt;&lt;br/&gt;
&amp;gt; &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/56472/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/56472/&lt;/a&gt;&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; We think if the create is called from multiple threads it raced and multiple&lt;br/&gt;
&amp;gt; actors were created with the same queue which would explain the mixed up&lt;br/&gt;
&amp;gt; messages for the config and operational listeners when the actors otherwise&lt;br/&gt;
&amp;gt; had no way to actually have an ActorRef to the counterpart in the&lt;br/&gt;
&amp;gt; otherdatastore.&lt;/p&gt;

&lt;p&gt;yeah - good find. I forgot all about the MeteredBoundedMailbox.&lt;/p&gt;</comment>
                    </comments>
                    <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>8301</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=8301]]></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_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i02rtz:</customfieldvalue>

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