You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by cj...@apache.org on 2014/09/19 02:38:15 UTC

[3/6] git commit: ACCUMULO-3145 Fix loop invariants in listscans

ACCUMULO-3145 Fix loop invariants in listscans

Added some extra logging and (automatically) fixed formatting.


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

Branch: refs/heads/1.6.1-rc1
Commit: 992414ebba8109b601846b5c279bf72b8165485d
Parents: 32570d5
Author: Josh Elser <el...@apache.org>
Authored: Thu Sep 18 15:01:02 2014 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Thu Sep 18 15:01:02 2014 -0400

----------------------------------------------------------------------
 .../org/apache/accumulo/test/ShellServerIT.java | 89 +++++++++++---------
 1 file changed, 48 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/992414eb/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java b/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
index 1cd787e..7449148 100644
--- a/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
@@ -94,7 +94,7 @@ public class ShellServerIT extends SimpleMacIT {
       sb.setLength(0);
     }
   }
-  
+
   private static final Logger log = Logger.getLogger(ShellServerIT.class);
 
   public static class StringInputStream extends InputStream {
@@ -118,10 +118,11 @@ public class ShellServerIT extends SimpleMacIT {
   private static abstract class ErrorMessageCallback {
     public abstract String getErrorMessage();
   }
-  
+
   private static class NoOpErrorMessageCallback extends ErrorMessageCallback {
     private static final String empty = "";
-    public String getErrorMessage() { 
+    @Override
+    public String getErrorMessage() {
       return empty;
     }
   }
@@ -235,7 +236,7 @@ public class ShellServerIT extends SimpleMacIT {
     // give the tracer some time to start
     UtilWaitThread.sleep(1000);
   }
-  
+
   @Before
   public void setupShell() throws Exception {
     ts = new TestShell(ROOT_PASSWORD, getStaticCluster().getConfig().getInstanceName(), getStaticCluster().getConfig().getZooKeepers(),
@@ -268,7 +269,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 60000)
   public void exporttableImporttable() throws Exception {
     final String table = name.getMethodName(), table2 = table + "2";
-    
+
     // exporttable / importtable
     ts.exec("createtable " + table + " -evc", true);
     make10();
@@ -312,7 +313,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 45000)
   public void setscaniterDeletescaniter() throws Exception {
     final String table = name.getMethodName();
-    
+
     // setscaniter, deletescaniter
     ts.exec("createtable " + table);
     ts.exec("insert a cf cq 1");
@@ -341,7 +342,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 45000)
   public void egrep() throws Exception {
     final String table = name.getMethodName();
-    
+
     // egrep
     ts.exec("createtable " + table);
     make10();
@@ -353,7 +354,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 45000)
   public void du() throws Exception {
     final String table = name.getMethodName();
-    
+
     // create and delete a table so we get out of a table context in the shell
     ts.exec("notable", true);
 
@@ -388,7 +389,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 45000)
   public void user() throws Exception {
     final String table = name.getMethodName();
-    
+
     // createuser, deleteuser, user, users, droptable, grant, revoke
     ts.input.set("secret\nsecret\n");
     ts.exec("createuser xyzzy", true);
@@ -424,7 +425,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 45000)
   public void iter() throws Exception {
     final String table = name.getMethodName();
-    
+
     // setshelliter, listshelliter, deleteshelliter
     ts.exec("createtable " + table);
     ts.exec("insert a cf cq 1");
@@ -557,7 +558,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 45000)
   public void notable() throws Exception {
     final String table = name.getMethodName();
-    
+
     // notable
     ts.exec("createtable " + table, true);
     ts.exec("scan", true, " " + table + ">", true);
@@ -587,6 +588,7 @@ public class ShellServerIT extends SimpleMacIT {
     for (int i = 0; i < 9 && !success; i++) {
       try {
         ts.exec("insert a b c d -l foo", false, "does not have authorization", true, new ErrorMessageCallback() {
+          @Override
           public String getErrorMessage() {
             try {
               Connector c = getConnector();
@@ -602,6 +604,7 @@ public class ShellServerIT extends SimpleMacIT {
     }
     if (!success) {
       ts.exec("insert a b c d -l foo", false, "does not have authorization", true, new ErrorMessageCallback() {
+        @Override
         public String getErrorMessage() {
           try {
             Connector c = getConnector();
@@ -662,7 +665,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 45000)
   public void clonetable() throws Exception {
     final String table = name.getMethodName(), clone = table + "_clone";
-    
+
     // clonetable
     ts.exec("createtable " + table + " -evc");
     ts.exec("config -t " + table + " -s table.split.threshold=123M", true);
@@ -677,16 +680,16 @@ public class ShellServerIT extends SimpleMacIT {
     ts.exec("deletetable -f " + table);
     ts.exec("deletetable -f " + clone);
   }
-  
+
   @Test(timeout = 45000)
   public void testCompactions() throws Exception {
     final String table = name.getMethodName();
-    
+
     // compact
     ts.exec("createtable " + table);
-    
+
     String tableId = getTableId(table);
-    
+
     // make two files
     ts.exec("insert a b c d");
     ts.exec("flush -w");
@@ -706,7 +709,7 @@ public class ShellServerIT extends SimpleMacIT {
 
     // at this point there are 4 files in the default tablet
     assertEquals("Files that were found: " + oldFiles, 4, oldFiles.size());
-    
+
     // compact some data:
     ts.exec("compact -b g -e z -w");
     assertEquals(2, countFiles(tableId));
@@ -721,7 +724,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 45000)
   public void constraint() throws Exception {
     final String table = name.getMethodName();
-    
+
     // constraint
     ts.exec("constraint -l -t " + MetadataTable.NAME + "", true, "MetadataConstraints=1", true);
     ts.exec("createtable " + table + " -evc");
@@ -740,7 +743,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 45000)
   public void deletemany() throws Exception {
     final String table = name.getMethodName();
-    
+
     // deletemany
     ts.exec("createtable " + table);
     make10();
@@ -772,11 +775,11 @@ public class ShellServerIT extends SimpleMacIT {
 
     ts.exec("createtable " + table);
     final String tableId = getTableId(table);
-    
+
     // deleterows
     int base = countFiles(tableId);
     assertEquals(0, base);
-    
+
     ts.exec("addsplits row5 row7");
     make10();
     ts.exec("flush -w -t " + table);
@@ -801,7 +804,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 45000)
   public void groups() throws Exception {
     final String table = name.getMethodName();
-    
+
     ts.exec("createtable " + table);
     ts.exec("setgroups -t " + table + " alpha=a,b,c num=3,2,1");
     ts.exec("getgroups -t " + table, true, "alpha=a,b,c", true);
@@ -812,7 +815,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 45000)
   public void grep() throws Exception {
     final String table = name.getMethodName();
-    
+
     ts.exec("createtable " + table, true);
     make10();
     ts.exec("grep row[123]", true, "row1", false);
@@ -836,7 +839,7 @@ public class ShellServerIT extends SimpleMacIT {
   // @Test(timeout = 45000)
   public void history() throws Exception {
     final String table = name.getMethodName();
-    
+
     ts.exec("history -c", true);
     ts.exec("createtable " + table);
     ts.exec("deletetable -f " + table);
@@ -847,7 +850,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 45000)
   public void importDirectory() throws Exception {
     final String table = name.getMethodName();
-    
+
     Configuration conf = new Configuration();
     FileSystem fs = FileSystem.get(conf);
     File importDir = new File(getFolder(), "import");
@@ -890,7 +893,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 45000)
   public void interpreter() throws Exception {
     final String table = name.getMethodName();
-    
+
     ts.exec("createtable " + table, true);
     ts.exec("interpreter -l", true, "HexScan", false);
     ts.exec("insert \\x02 cf cq value", true);
@@ -907,7 +910,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 45000)
   public void listcompactions() throws Exception {
     final String table = name.getMethodName();
-    
+
     ts.exec("createtable " + table, true);
     ts.exec("config -t " + table + " -s table.iterator.minc.slow=30,org.apache.accumulo.test.functional.SlowIterator", true);
     ts.exec("config -t " + table + " -s table.iterator.minc.slow.opt.sleepTime=1000", true);
@@ -928,7 +931,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 45000)
   public void maxrow() throws Exception {
     final String table = name.getMethodName();
-    
+
     ts.exec("createtable " + table, true);
     ts.exec("insert a cf cq value", true);
     ts.exec("insert b cf cq value", true);
@@ -943,7 +946,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 45000)
   public void merge() throws Exception {
     final String table = name.getMethodName();
-    
+
     ts.exec("createtable " + table);
     ts.exec("addsplits a m z");
     ts.exec("getsplits", true, "z", true);
@@ -975,7 +978,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 45000)
   public void renametable() throws Exception {
     final String table = name.getMethodName() + "1", rename = name.getMethodName() + "2";
-    
+
     ts.exec("createtable " + table);
     ts.exec("insert this is a value");
     ts.exec("renametable " + table + " " + rename);
@@ -1008,7 +1011,7 @@ public class ShellServerIT extends SimpleMacIT {
   @Test(timeout = 45000)
   public void listscans() throws Exception {
     final String table = name.getMethodName();
-    
+
     ts.exec("createtable " + table, true);
 
     // Should be about a 3 second scan
@@ -1037,11 +1040,15 @@ public class ShellServerIT extends SimpleMacIT {
     // Try to find the active scan for about 15seconds
     for (int i = 0; i < 50 && scans.isEmpty(); i++) {
       String currentScans = ts.exec("listscans", true);
+      log.info("Got output from listscans:\n" + currentScans);
       String[] lines = currentScans.split("\n");
-      for (int scanOffset = 2; i < lines.length; i++) {
+      for (int scanOffset = 2; scanOffset < lines.length; scanOffset++) {
         String currentScan = lines[scanOffset];
         if (currentScan.contains(table)) {
+          log.info("Retaining scan: " + currentScan);
           scans.add(currentScan);
+        } else {
+          log.info("Ignoring scan because of wrong table: " + currentScan);
         }
       }
       UtilWaitThread.sleep(300);
@@ -1062,7 +1069,7 @@ public class ShellServerIT extends SimpleMacIT {
       String client = parts[1].trim();
       assertTrue(client.matches(hostPortPattern));
     }
-    
+
     ts.exec("deletetable -f " + table, true);
   }
 
@@ -1071,7 +1078,7 @@ public class ShellServerIT extends SimpleMacIT {
     final String table = name.getMethodName();
 
     File fooFilterJar = File.createTempFile("FooFilter", ".jar", getFolder());
-    
+
     FileUtils.copyURLToFile(this.getClass().getResource("/FooFilter.jar"), fooFilterJar);
     fooFilterJar.deleteOnExit();
 
@@ -1117,7 +1124,7 @@ public class ShellServerIT extends SimpleMacIT {
   public void trace() throws Exception {
     // Make sure to not collide with the "trace" table
     final String table = name.getMethodName() + "Test";
-    
+
     ts.exec("trace on", true);
     ts.exec("createtable " + table, true);
     ts.exec("insert a b c value", true);
@@ -1253,14 +1260,14 @@ public class ShellServerIT extends SimpleMacIT {
       ts.exec(String.format("insert row%d cf col%d value", i, i));
     }
   }
-  
+
   private List<String> getFiles(String tableId) throws IOException {
     ts.output.clear();
 
     ts.exec("scan -t " + MetadataTable.NAME + " -np -c file -b " + tableId + " -e " + tableId + "~");
-    
+
     log.debug("countFiles(): " + ts.output.get());
-    
+
     String[] lines = StringUtils.split(ts.output.get(), "\n");
     ts.output.clear();
 
@@ -1274,10 +1281,10 @@ public class ShellServerIT extends SimpleMacIT {
   private int countFiles(String tableId) throws IOException {
     return getFiles(tableId).size();
   }
-  
+
   private String getTableId(String tableName) throws Exception {
     Connector conn = getConnector();
-    
+
     for (int i = 0; i < 5; i++) {
       Map<String,String> nameToId = conn.tableOperations().tableIdMap();
       if (nameToId.containsKey(tableName)) {
@@ -1286,7 +1293,7 @@ public class ShellServerIT extends SimpleMacIT {
         Thread.sleep(1000);
       }
     }
-    
+
     fail("Could not find ID for table: " + tableName);
     // Will never get here
     return null;