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); }