From 08cebe000ade997fd2c84ee0e690beddd4ce9209 Mon Sep 17 00:00:00 2001 From: Tom Pantelis Date: Sat, 2 Jul 2016 02:09:34 -0400 Subject: [PATCH] Fix intermittent failure in ClusterAdminRpcServiceTest testRemoveShardLeaderReplica(org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcServiceTest) Time elapsed: 8.187 sec <<< FAILURE! java.lang.AssertionError: Leader Id Expected: (a string containing "member-2" or a string containing "member-3") but: was "member-1-shard-cars-config_testRemoveShardLeaderReplica" at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20) at org.junit.Assert.assertThat(Assert.java:865) at org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcServiceTest$2.verify(ClusterAdminRpcServiceTest.java:412) at org.opendaylight.controller.cluster.datastore.MemberNode.verifyRaftState(MemberNode.java:140) at org.opendaylight.controller.cluster.datastore.admin.ClusterAdminRpcServiceTest.testRemoveShardLeaderReplica(ClusterAdminRpcServiceTest.java:409) member3 tried to become leader but hadn't gotten MemberUp for member2 yet so it didn't have its address when it sent out RequestVote. The verification of new leader timed out before it coild try again. The call to waitForMembersUp on line 397 should be for replica3 and not replica2. Change-Id: I3a714c91ba974b16b2c310027b09f9658915a639 Signed-off-by: Tom Pantelis --- .../cluster/datastore/admin/ClusterAdminRpcServiceTest.java | 2 +- .../DistributedEntityOwnershipIntegrationTest.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/opendaylight/md-sal/sal-cluster-admin/src/test/java/org/opendaylight/controller/cluster/datastore/admin/ClusterAdminRpcServiceTest.java b/opendaylight/md-sal/sal-cluster-admin/src/test/java/org/opendaylight/controller/cluster/datastore/admin/ClusterAdminRpcServiceTest.java index 38368dbd52..08996d6f00 100644 --- a/opendaylight/md-sal/sal-cluster-admin/src/test/java/org/opendaylight/controller/cluster/datastore/admin/ClusterAdminRpcServiceTest.java +++ b/opendaylight/md-sal/sal-cluster-admin/src/test/java/org/opendaylight/controller/cluster/datastore/admin/ClusterAdminRpcServiceTest.java @@ -394,7 +394,7 @@ public class ClusterAdminRpcServiceTest { verifyRaftPeersPresent(replicaNode3.configDataStore(), "cars", "member-1", "member-2"); replicaNode2.waitForMembersUp("member-1", "member-3"); - replicaNode2.waitForMembersUp("member-1", "member-2"); + replicaNode3.waitForMembersUp("member-1", "member-2"); // Invoke RPC service on leader member-1 to remove it's local shard diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipIntegrationTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipIntegrationTest.java index 48baef5b16..c03f869da4 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipIntegrationTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/DistributedEntityOwnershipIntegrationTest.java @@ -471,11 +471,11 @@ public class DistributedEntityOwnershipIntegrationTest { follower2EntityOwnershipService.registerListener(ENTITY_TYPE1, follower2MockListener); final EntityOwnershipCandidateRegistration candidate1 = leaderEntityOwnershipService.registerCandidate(ENTITY1); + verify(leaderMockListener, timeout(5000)).ownershipChanged(ownershipChange(ENTITY1, false, true, true)); + final EntityOwnershipCandidateRegistration candidate2 = follower1EntityOwnershipService.registerCandidate(ENTITY1); final EntityOwnershipCandidateRegistration candidate3 = follower2EntityOwnershipService.registerCandidate(ENTITY1); - verify(leaderMockListener, timeout(5000)).ownershipChanged(ownershipChange(ENTITY1, false, true, true)); - Mockito.reset(leaderMockListener); ArgumentCaptor leaderChangeCaptor = ArgumentCaptor.forClass(EntityOwnershipChange.class); -- 2.36.6