From bd724fad0c954f1e607a0a90cbca3eb41d1f2460 Mon Sep 17 00:00:00 2001
From: pgamba <pgamba@localhost>
Date: Mon, 17 Sep 2007 08:00:37 +0000
Subject: [PATCH] Fixes repl init and total update #2253 #845 #1733
---
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java | 101 ++++++++++++++++++++++++++------------------------
1 files changed, 53 insertions(+), 48 deletions(-)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
index 523ba60..4b100b5 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
@@ -719,7 +719,6 @@
long genId;
replServer1 = createReplicationServer(changelog1ID, false, testCase);
- assertEquals(replServer1.getGenerationId(baseDn), -1);
/*
* Test : empty replicated backend
@@ -892,6 +891,13 @@
* Test: Reset the replication server in order to allow new data set.
*/
+ debugInfo("Launch an on-line import on DS.");
+ genId=-1;
+ Entry importTask = getTaskImport();
+ addTask(importTask, ResultCode.SUCCESS, null);
+ waitTaskState(importTask, TaskState.COMPLETED_SUCCESSFULLY, null);
+ Thread.sleep(500);
+
Entry taskReset = TestCaseUtils.makeEntry(
"dn: ds-task-id=resetgenid"+genId+ UUID.randomUUID() +
",cn=Scheduled Tasks,cn=Tasks",
@@ -908,33 +914,17 @@
// TODO: Test that replication server db has been cleared
- assertEquals(replServer1.getGenerationId(baseDn),
- -1, "Expected genId to be reset in replServer1");
+ debugInfo("Expect new genId to be computed on DS and sent to all replServers after on-line import.");
+ genId = readGenId();
+ assertTrue(genId != -1, "DS is expected to have a new genID computed " +
+ " after on-line import but genId=" + genId);
- ReplicationMessage rcvmsg = broker2.receive();
- if (!(rcvmsg instanceof ErrorMessage))
- {
- fail("Broker2 is expected to receive an ErrorMessage " +
- " to signal degradation due to reset" + rcvmsg);
- }
- ErrorMessage emsg = (ErrorMessage)rcvmsg;
- debugInfo(testCase + " " + emsg.getMsgID() + " " + emsg.getDetails());
+ rgenId = replServer1.getGenerationId(baseDn);
+ assertEquals(genId, rgenId, "DS and replServer are expected to have same genId.");
- rcvmsg = broker3.receive();
- if (!(rcvmsg instanceof ErrorMessage))
- {
- fail("Broker3 is expected to receive an ErrorMessage " +
- " to signal degradation due to reset" + rcvmsg);
- }
- emsg = (ErrorMessage)rcvmsg;
- debugInfo(testCase + " " + emsg.getMsgID() + " " + emsg.getDetails());
-
- rgenId = replServer1.getGenerationId(baseDn);
- assertTrue(rgenId==-1,"Expecting that genId has been reset in replServer1: rgenId="+rgenId);
-
- assertTrue(replServer1.getReplicationCache(baseDn, false).
+ assertTrue(!replServer1.getReplicationCache(baseDn, false).
isDegradedDueToGenerationId(server1ID),
- "Expecting that DS is degraded since domain genId has been reset");
+ "Expecting that DS is not degraded since domain genId has been reset");
assertTrue(replServer1.getReplicationCache(baseDn, false).
isDegradedDueToGenerationId(server2ID),
@@ -946,8 +936,39 @@
// Now create a change that normally would be replicated
// but will not be replicated here since DS and brokers are degraded
- String[] ent2 = { createEntry(UUID.randomUUID()) };
- this.addTestEntriesToDB(ent2);
+ String[] ent3 = { createEntry(UUID.randomUUID()) };
+ this.addTestEntriesToDB(ent3);
+
+ try
+ {
+ ReplicationMessage msg = broker2.receive();
+ if (!(msg instanceof ErrorMessage))
+ {
+ fail("Broker 2 connection is expected to receive an ErrorMessage."
+ + msg);
+ }
+ ErrorMessage emsg = (ErrorMessage)msg;
+ debugInfo(testCase + " " + emsg.getMsgID() + " " + emsg.getDetails());
+ }
+ catch(SocketTimeoutException se)
+ {
+ fail("Broker 2 is expected to receive an ErrorMessage.");
+ }
+ try
+ {
+ ReplicationMessage msg = broker3.receive();
+ if (!(msg instanceof ErrorMessage))
+ {
+ fail("Broker 3 connection is expected to receive an ErrorMessage."
+ + msg);
+ }
+ ErrorMessage emsg = (ErrorMessage)msg;
+ debugInfo(testCase + " " + emsg.getMsgID() + " " + emsg.getDetails());
+ }
+ catch(SocketTimeoutException se)
+ {
+ fail("Broker 3 is expected to receive an ErrorMessage.");
+ }
try
{
@@ -969,23 +990,7 @@
ReplicationMessage msg = broker3.receive();
fail("No update message is supposed to be received by degraded broker3"+ msg);
} catch(SocketTimeoutException e) { /* expected */ }
-
-
- debugInfo("Launch an on-line import on DS.");
- genId=-1;
- Entry importTask = getTaskImport();
- addTask(importTask, ResultCode.SUCCESS, null);
- waitTaskState(importTask, TaskState.COMPLETED_SUCCESSFULLY, null);
- Thread.sleep(500);
-
- debugInfo("Expect new genId to be computed on DS and sent to all replServers after on-line import.");
- genId = readGenId();
- assertTrue(genId != -1, "DS is expected to have a new genID computed " +
- " after on-line import but genId=" + genId);
-
- rgenId = replServer1.getGenerationId(baseDn);
- assertEquals(genId, rgenId, "DS and replServer are expected to have same genId.");
-
+
// In S1 launch the total update to initialize S2
addTask(taskInitRemoteS2, ResultCode.SUCCESS, null);
@@ -1008,7 +1013,7 @@
Thread.sleep(200);
debugInfo("Verifying that replServer1 has been reset.");
- assertEquals(replServer1.getGenerationId(baseDn), -1);
+ assertEquals(replServer1.getGenerationId(baseDn), rgenId);
debugInfo("Disconnect DS from replServer1 (required in order to DEL entries).");
disconnectFromReplServer(changelog1ID);
@@ -1163,9 +1168,9 @@
debugInfo("Verifying that all replservers genIds have been reset.");
genId = readGenId();
- assertEquals(replServer1.getGenerationId(baseDn), -1);
- assertEquals(replServer2.getGenerationId(baseDn), -1);
- assertEquals(replServer3.getGenerationId(baseDn), -1);
+ assertEquals(replServer2.getGenerationId(baseDn), genId);
+ assertEquals(replServer2.getGenerationId(baseDn), genId);
+ assertEquals(replServer3.getGenerationId(baseDn), genId);
debugInfo("Disconnect DS from replServer1 (required in order to DEL entries).");
disconnectFromReplServer(changelog1ID);
--
Gitblit v1.10.0