Repository: accumulo
Updated Branches:
  refs/heads/1.6 d859e2aad -> f6dd62f71
  refs/heads/master 678a37852 -> 990dafbb2


ACCUMULO-3600 Fix deleterows to properly compute file counts.

The test might have failed if there was a migration while data
was being written. This would have caused one of the tablets to have
more than one file which would have failed the test case despite
being normal, expected Accumulo behavior.


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

Branch: refs/heads/1.6
Commit: f6dd62f71a9b9768814bc76b537abe93a169d381
Parents: d859e2a
Author: Josh Elser <els...@apache.org>
Authored: Tue Feb 17 19:12:01 2015 -0500
Committer: Josh Elser <els...@apache.org>
Committed: Tue Feb 17 19:12:01 2015 -0500

----------------------------------------------------------------------
 .../org/apache/accumulo/test/ShellServerIT.java | 26 ++++++++++++--------
 1 file changed, 16 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/f6dd62f7/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 a29a4bb..914a914 100644
--- a/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/ShellServerIT.java
@@ -792,23 +792,29 @@ public class ShellServerIT extends SharedMiniClusterIT {
     int base = countFiles(tableId);
     assertEquals(0, base);
 
+    log.info("Adding 2 splits");
     ts.exec("addsplits row5 row7");
+
+    log.info("Writing 10 records");
     make10();
+
+    log.info("Flushing table");
     ts.exec("flush -w -t " + table);
-    // Might have some cruft here. Check a couple of times.
-    List<String> files = null;
-    boolean found = false;
-    for (int i = 0; i < 50 && !found; i++) {
+    log.info("Table flush completed");
+
+    // One of the tablets we're writing to might migrate inbetween writing 
data which would create a 2nd file for that tablet
+    // If we notice this, compact and then move on.
+    List<String> files = getFiles(tableId);
+    if (3 < files.size()) {
+      log.info("More than 3 files were found, compacting before proceeding");
+      ts.exec("compact -w -t " + table);
       files = getFiles(tableId);
-      if (3 == files.size()) {
-        found = true;
-      } else {
-        UtilWaitThread.sleep(300);
-      }
+      assertEquals("Expected to only find 3 files after compaction: " + files, 
3, files.size());
     }
+
     assertNotNull(files);
     assertEquals("Found the following files: " + files, 3, files.size());
-    ts.exec("deleterows -t " + table + " -b row5 -e row7", true);
+    ts.exec("deleterows -t " + table + " -b row5 -e row7");
     assertEquals(2, countFiles(tableId));
     ts.exec("deletetable -f " + table);
   }

Reply via email to