You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by el...@apache.org on 2016/07/11 21:49:48 UTC

[2/6] accumulo git commit: ACCUMULO-4370 Replace bounded checks for replication table state with unbounded checks

ACCUMULO-4370 Replace bounded checks for replication table state with unbounded checks

The execution time for the test is still bounded by a global junit timeout rule.
Leaving bounded checks for the replication table to hit an online state is just
going to cause more problems.


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/8949e3d8
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/8949e3d8
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/8949e3d8

Branch: refs/heads/1.8
Commit: 8949e3d83ecf534904ce3df2b515e10234cd3cb0
Parents: 196b6bd
Author: Josh Elser <el...@apache.org>
Authored: Mon Jul 11 17:25:12 2016 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Mon Jul 11 17:25:12 2016 -0400

----------------------------------------------------------------------
 .../test/replication/ReplicationIT.java         | 77 ++++++--------------
 1 file changed, 23 insertions(+), 54 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/8949e3d8/test/src/test/java/org/apache/accumulo/test/replication/ReplicationIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/replication/ReplicationIT.java b/test/src/test/java/org/apache/accumulo/test/replication/ReplicationIT.java
index 61e0191..c312409 100644
--- a/test/src/test/java/org/apache/accumulo/test/replication/ReplicationIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/replication/ReplicationIT.java
@@ -106,6 +106,7 @@ import com.google.protobuf.TextFormat;
  */
 public class ReplicationIT extends ConfigurableMacIT {
   private static final Logger log = LoggerFactory.getLogger(ReplicationIT.class);
+  private static final long MILLIS_BETWEEN_REPLICATION_TABLE_ONLINE_CHECKS = 5000l;
 
   @Override
   public int defaultTimeoutSeconds() {
@@ -277,16 +278,10 @@ public class ReplicationIT extends ConfigurableMacIT {
     bw.close();
 
     // After writing data, we'll get a replication table online
-    boolean online = ReplicationTable.isOnline(conn);
-    int attempts = 10;
-    do {
-      if (!online) {
-        UtilWaitThread.sleep(2000);
-        online = ReplicationTable.isOnline(conn);
-        attempts--;
-      }
-    } while (!online && attempts > 0);
-    Assert.assertTrue("Replication table was not online", online);
+    while (!ReplicationTable.isOnline(conn)) {
+      UtilWaitThread.sleep(MILLIS_BETWEEN_REPLICATION_TABLE_ONLINE_CHECKS);
+    }
+    Assert.assertTrue("Replication table did not exist", ReplicationTable.isOnline(conn));
 
     for (int i = 0; i < 5; i++) {
       if (conn.securityOperations().hasTablePermission("root", ReplicationTable.NAME, TablePermission.READ)) {
@@ -301,7 +296,7 @@ public class ReplicationIT extends ConfigurableMacIT {
 
     Set<String> replRows = new HashSet<>();
     Scanner scanner;
-    attempts = 5;
+    int attempts = 5;
     while (replRows.isEmpty() && attempts > 0) {
       scanner = ReplicationTable.getScanner(conn);
       StatusSection.limit(scanner);
@@ -426,17 +421,9 @@ public class ReplicationIT extends ConfigurableMacIT {
     // Don't want to compact table1 as it ultimately cause the entry in accumulo.metadata to be removed before we can verify it's there
 
     // After writing data, we'll get a replication table online
-    boolean online = ReplicationTable.isOnline(conn);
-    int attempts = 10;
-    do {
-      if (!online) {
-        UtilWaitThread.sleep(5000);
-        online = ReplicationTable.isOnline(conn);
-        attempts--;
-      }
-    } while (!online && attempts > 0);
-    Assert.assertTrue("Replication table did not exist", online);
-
+    while (!ReplicationTable.isOnline(conn)) {
+      UtilWaitThread.sleep(MILLIS_BETWEEN_REPLICATION_TABLE_ONLINE_CHECKS);
+    }
     Assert.assertTrue(ReplicationTable.isOnline(conn));
     conn.securityOperations().grantTablePermission("root", ReplicationTable.NAME, TablePermission.READ);
 
@@ -444,7 +431,7 @@ public class ReplicationIT extends ConfigurableMacIT {
     Scanner s = ReplicationTable.getScanner(conn);
     StatusSection.limit(s);
     Iterator<Entry<Key,Value>> iter = s.iterator();
-    attempts = 5;
+    int attempts = 5;
     while (attempts > 0) {
       if (!iter.hasNext()) {
         s.close();
@@ -812,7 +799,7 @@ public class ReplicationIT extends ConfigurableMacIT {
     conn.tableOperations().flush(table, null, null, true);
 
     while (!ReplicationTable.isOnline(conn)) {
-      UtilWaitThread.sleep(2000);
+      UtilWaitThread.sleep(MILLIS_BETWEEN_REPLICATION_TABLE_ONLINE_CHECKS);
     }
 
     for (int i = 0; i < 10; i++) {
@@ -919,16 +906,10 @@ public class ReplicationIT extends ConfigurableMacIT {
     bw.close();
 
     // Make sure the replication table is online at this point
-    boolean online = ReplicationTable.isOnline(conn);
-    attempts = 10;
-    do {
-      if (!online) {
-        UtilWaitThread.sleep(2000);
-        online = ReplicationTable.isOnline(conn);
-        attempts--;
-      }
-    } while (!online && attempts > 0);
-    Assert.assertTrue("Replication table was never created", online);
+    while (!ReplicationTable.isOnline(conn)) {
+      UtilWaitThread.sleep(MILLIS_BETWEEN_REPLICATION_TABLE_ONLINE_CHECKS);
+    }
+    Assert.assertTrue("Replication table was never created", ReplicationTable.isOnline(conn));
 
     // ACCUMULO-2743 The Observer in the tserver has to be made aware of the change to get the combiner (made by the master)
     for (int i = 0; i < 10 && !conn.tableOperations().listIterators(ReplicationTable.NAME).keySet().contains(ReplicationTable.COMBINER_NAME); i++) {
@@ -1103,16 +1084,10 @@ public class ReplicationIT extends ConfigurableMacIT {
     Assert.assertNotNull("Table ID was null", tableId);
 
     // Make sure the replication table exists at this point
-    boolean online = ReplicationTable.isOnline(conn);
-    attempts = 5;
-    do {
-      if (!online) {
-        UtilWaitThread.sleep(500);
-        online = ReplicationTable.isOnline(conn);
-        attempts--;
-      }
-    } while (!online && attempts > 0);
-    Assert.assertTrue("Replication table did not exist", online);
+    while (!ReplicationTable.isOnline(conn)) {
+      UtilWaitThread.sleep(MILLIS_BETWEEN_REPLICATION_TABLE_ONLINE_CHECKS);
+    }
+    Assert.assertTrue("Replication table did not exist", ReplicationTable.isOnline(conn));
 
     for (int i = 0; i < 5 && !conn.securityOperations().hasTablePermission("root", ReplicationTable.NAME, TablePermission.READ); i++) {
       Thread.sleep(1000);
@@ -1410,16 +1385,10 @@ public class ReplicationIT extends ConfigurableMacIT {
     conn.tableOperations().flush(table1, null, null, true);
 
     // Make sure the replication table exists at this point
-    boolean online = ReplicationTable.isOnline(conn);
-    attempts = 10;
-    do {
-      if (!online) {
-        UtilWaitThread.sleep(1000);
-        online = ReplicationTable.isOnline(conn);
-        attempts--;
-      }
-    } while (!online && attempts > 0);
-    Assert.assertTrue("Replication table did not exist", online);
+    while (!ReplicationTable.isOnline(conn)) {
+      UtilWaitThread.sleep(MILLIS_BETWEEN_REPLICATION_TABLE_ONLINE_CHECKS);
+    }
+    Assert.assertTrue("Replication table did not exist", ReplicationTable.isOnline(conn));
 
     // Grant ourselves the write permission for later
     conn.securityOperations().grantTablePermission("root", ReplicationTable.NAME, TablePermission.WRITE);