You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2015/08/26 16:14:54 UTC
svn commit: r1697939 - in /qpid/java/trunk/bdbstore/src:
main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java
test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java
Author: orudyy
Date: Wed Aug 26 14:14:54 2015
New Revision: 1697939
URL: http://svn.apache.org/r1697939
Log:
QPID-6710: Remove redundant# setting of StateChangeListener on restart
Modified:
qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java
qpid/java/trunk/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java
Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java?rev=1697939&r1=1697938&r2=1697939&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java Wed Aug 26 14:14:54 2015
@@ -1038,11 +1038,6 @@ public class ReplicatedEnvironmentFacade
createEnvironment(false, null);
- if (stateChangeListener != null)
- {
- getEnvironment().setStateChangeListener(this);
- }
-
LOGGER.info("Environment is restarted");
}
Modified: qpid/java/trunk/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java?rev=1697939&r1=1697938&r2=1697939&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java (original)
+++ qpid/java/trunk/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java Wed Aug 26 14:14:54 2015
@@ -72,7 +72,7 @@ import org.apache.qpid.util.FileUtils;
public class ReplicatedEnvironmentFacadeTest extends QpidTestCase
{
private static final Logger LOGGER = LoggerFactory.getLogger(ReplicatedEnvironmentFacadeTest.class);
- private static final int LISTENER_TIMEOUT = 5;
+ private static final int LISTENER_TIMEOUT = 7;
private static final int WAIT_STATE_CHANGE_TIMEOUT = 30;
private final PortHelper _portHelper = new PortHelper();
@@ -498,6 +498,7 @@ public class ReplicatedEnvironmentFacade
public void testEnvironmentAutomaticallyRestartsAndBecomesUnknownOnInsufficientReplicas() throws Exception
{
final CountDownLatch masterLatch = new CountDownLatch(1);
+ final CountDownLatch secondMasterLatch = new CountDownLatch(1);
final AtomicInteger masterStateChangeCount = new AtomicInteger();
final CountDownLatch unknownLatch = new CountDownLatch(1);
final AtomicInteger unknownStateChangeCount = new AtomicInteger();
@@ -509,7 +510,14 @@ public class ReplicatedEnvironmentFacade
if (stateChangeEvent.getState() == State.MASTER)
{
masterStateChangeCount.incrementAndGet();
- masterLatch.countDown();
+ if (masterLatch.getCount() == 1)
+ {
+ masterLatch.countDown();
+ }
+ else
+ {
+ secondMasterLatch.countDown();
+ }
}
else if (stateChangeEvent.getState() == State.UNKNOWN)
{
@@ -519,7 +527,11 @@ public class ReplicatedEnvironmentFacade
}
};
- addNode(stateChangeListener, new NoopReplicationGroupListener());
+ // make sure that node is re-elected as MASTER on second start-up
+ ReplicatedEnvironmentConfiguration config = createReplicatedEnvironmentConfiguration(TEST_NODE_NAME, TEST_NODE_HOST_PORT, TEST_DESIGNATED_PRIMARY);
+ when(config.getPriority()).thenReturn(2);
+ createReplicatedEnvironmentFacade(TEST_NODE_NAME, stateChangeListener, new NoopReplicationGroupListener(), config);
+
assertTrue("Master was not started", masterLatch.await(LISTENER_TIMEOUT, TimeUnit.SECONDS));
int replica1Port = _portHelper.getNextAvailable();
@@ -537,8 +549,13 @@ public class ReplicatedEnvironmentFacade
assertTrue("Environment should be recreated and go into unknown state",
unknownLatch.await(WAIT_STATE_CHANGE_TIMEOUT, TimeUnit.SECONDS));
- assertEquals("Node made master an unexpected number of times", 1, masterStateChangeCount.get());
- assertEquals("Node made unknown an unexpected number of times", 1, unknownStateChangeCount.get());
+ // bring back the cluster in order to make sure that no extra state transition happens between UNKNOWN and MASTER
+ createReplica(TEST_NODE_NAME + "_1", node1NodeHostPort, new NoopReplicationGroupListener());
+
+ assertTrue("Master node did not resume", secondMasterLatch.await(LISTENER_TIMEOUT, TimeUnit.SECONDS));
+
+ assertEquals("Node transited into Master state unexpected number of times", 2, masterStateChangeCount.get());
+ assertEquals("Node transited into Unknown state unexpected number of times", 1, unknownStateChangeCount.get());
}
public void testTransferMasterToSelf() throws Exception
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org