summaryrefslogtreecommitdiff
path: root/qpid/java/bdbstore/src/test
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2014-05-01 15:16:20 +0000
committerAlex Rudyy <orudyy@apache.org>2014-05-01 15:16:20 +0000
commitf60e2533a75aa49ab986341835c57d66ee88b75b (patch)
treee44876ca64aed5955519a79b84bf487267ff4bb9 /qpid/java/bdbstore/src/test
parent7781dfa9b4dbd3897c9d1ce6e38daa417dc42e5d (diff)
downloadqpid-python-f60e2533a75aa49ab986341835c57d66ee88b75b.tar.gz
QPID-5715: Fix sporadically faling BDB HA tests
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1591677 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/bdbstore/src/test')
-rw-r--r--qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostNodeTest.java47
1 files changed, 27 insertions, 20 deletions
diff --git a/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostNodeTest.java b/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostNodeTest.java
index 78a86c685d..5e5458b382 100644
--- a/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostNodeTest.java
+++ b/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBHAVirtualHostNodeTest.java
@@ -47,6 +47,7 @@ import org.apache.qpid.server.model.VirtualHostNode;
import org.apache.qpid.server.store.DurableConfigurationStore;
import org.apache.qpid.server.util.BrokerTestHelper;
import org.apache.qpid.server.virtualhostnode.berkeleydb.BDBHARemoteReplicationNode;
+import org.apache.qpid.server.virtualhostnode.berkeleydb.BDBHARemoteReplicationNodeImpl;
import org.apache.qpid.server.virtualhostnode.berkeleydb.BDBHAVirtualHostNode;
import org.apache.qpid.test.utils.QpidTestCase;
import org.apache.qpid.util.FileUtils;
@@ -315,19 +316,9 @@ public class BDBHAVirtualHostNodeTest extends QpidTestCase
replica.setAttribute(BDBHAVirtualHostNode.ROLE, "REPLICA", "MASTER");
- int awaitMastershipCount = 0;
- while(!"MASTER".equals(replica.getRole()))
- {
- Thread.sleep(100);
- if (awaitMastershipCount > 50)
- {
- fail("Replica did not assume master role");
- }
- awaitMastershipCount++;
- }
+ assertNodeRole(replica, "MASTER");
}
-
public void testTransferMasterToReplica() throws Exception
{
int node1PortNumber = findFreePort();
@@ -404,20 +395,22 @@ public class BDBHAVirtualHostNodeTest extends QpidTestCase
assertTrue("Replication nodes have not been seen during 5s", remoteNodeLatch.await(5, TimeUnit.SECONDS));
Collection<? extends RemoteReplicationNode> remoteNodes = node1.getRemoteReplicationNodes();
- RemoteReplicationNode replicaRemoteNode = remoteNodes.iterator().next();
- replicaRemoteNode.setAttribute(BDBHARemoteReplicationNode.ROLE, "REPLICA", "MASTER");
+ BDBHARemoteReplicationNodeImpl replicaRemoteNode = (BDBHARemoteReplicationNodeImpl)remoteNodes.iterator().next();
- BDBHAVirtualHostNode<?> replica = replicaRemoteNode.getName().equals(node2.getName())? node2 : node3;
- int awaitMastershipCount = 0;
- while(!"MASTER".equals(replica.getRole()))
+ long awaitReplicaRoleCount = 0;
+ while(!"REPLICA".equals(replicaRemoteNode.getRole()))
{
Thread.sleep(100);
- if (awaitMastershipCount > 50)
+ if (awaitReplicaRoleCount > 50)
{
- fail("Replica did not assume master role");
+ fail("Remote replication node is not in a REPLICA role");
}
- awaitMastershipCount++;
+ awaitReplicaRoleCount++;
}
+ replicaRemoteNode.setAttributes(Collections.<String,Object>singletonMap(BDBHARemoteReplicationNode.ROLE, "MASTER"));
+
+ BDBHAVirtualHostNode<?> replica = replicaRemoteNode.getName().equals(node2.getName())? node2 : node3;
+ assertNodeRole(replica, "MASTER");
}
public void testMutatingRoleWhenNotReplica_IsDisallowed() throws Exception
@@ -438,7 +431,7 @@ public class BDBHAVirtualHostNodeTest extends QpidTestCase
BDBHAVirtualHostNode<?> node = createHaVHN(node1Attributes);
assertEquals("Failed to activate node", State.ACTIVE, node.setDesiredState(node.getState(), State.ACTIVE));
- assertEquals("Node is expected to be master", "MASTER", node.getRole());
+ assertNodeRole(node, "MASTER");
try
{
@@ -458,6 +451,20 @@ public class BDBHAVirtualHostNodeTest extends QpidTestCase
_nodes.add(node);
return node;
}
+
+ private void assertNodeRole(BDBHAVirtualHostNode<?> node, String roleName) throws InterruptedException
+ {
+ int awaitMastershipCount = 0;
+ while(!roleName.equals(node.getRole()))
+ {
+ Thread.sleep(100);
+ if (awaitMastershipCount > 50)
+ {
+ fail("Node " + node.getName() + " did not transit into role " + roleName);
+ }
+ awaitMastershipCount++;
+ }
+ }
}