You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by te...@apache.org on 2018/08/15 00:22:27 UTC
hadoop git commit: HDFS-13819.
TestDirectoryScanner#testDirectoryScannerInFederatedCluster is flaky
Repository: hadoop
Updated Branches:
refs/heads/trunk 363bd16e3 -> 4a5006b1d
HDFS-13819. TestDirectoryScanner#testDirectoryScannerInFederatedCluster is flaky
Change-Id: I1cea6e67fcec72702ad202775dee3373261ac5cd
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/4a5006b1
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/4a5006b1
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/4a5006b1
Branch: refs/heads/trunk
Commit: 4a5006b1d08c19ec096b3936541672ad6a225470
Parents: 363bd16
Author: Daniel Templeton <te...@apache.org>
Authored: Tue Aug 14 17:03:10 2018 -0700
Committer: Daniel Templeton <te...@apache.org>
Committed: Tue Aug 14 17:22:15 2018 -0700
----------------------------------------------------------------------
.../server/datanode/TestDirectoryScanner.java | 42 +++++++++++++++-----
1 file changed, 32 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4a5006b1/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDirectoryScanner.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDirectoryScanner.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDirectoryScanner.java
index f792523..893fe20 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDirectoryScanner.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/TestDirectoryScanner.java
@@ -40,6 +40,7 @@ import java.util.Random;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.commons.io.FileUtils;
@@ -312,18 +313,29 @@ public class TestDirectoryScanner {
return id;
}
- private void scan(long totalBlocks, int diffsize, long missingMetaFile, long missingBlockFile,
- long missingMemoryBlocks, long mismatchBlocks) throws IOException {
+ private void scan(long totalBlocks, int diffsize, long missingMetaFile,
+ long missingBlockFile, long missingMemoryBlocks, long mismatchBlocks)
+ throws IOException, InterruptedException, TimeoutException {
scan(totalBlocks, diffsize, missingMetaFile, missingBlockFile,
missingMemoryBlocks, mismatchBlocks, 0);
}
private void scan(long totalBlocks, int diffsize, long missingMetaFile,
long missingBlockFile, long missingMemoryBlocks, long mismatchBlocks,
- long duplicateBlocks) throws IOException {
+ long duplicateBlocks)
+ throws IOException, InterruptedException, TimeoutException {
scanner.reconcile();
- verifyStats(totalBlocks, diffsize, missingMetaFile, missingBlockFile,
- missingMemoryBlocks, mismatchBlocks, duplicateBlocks);
+
+ GenericTestUtils.waitFor(() -> {
+ try {
+ verifyStats(totalBlocks, diffsize, missingMetaFile, missingBlockFile,
+ missingMemoryBlocks, mismatchBlocks, duplicateBlocks);
+ } catch (AssertionError ex) {
+ return false;
+ }
+
+ return true;
+ }, 50, 2000);
}
private void verifyStats(long totalBlocks, int diffsize, long missingMetaFile,
@@ -785,7 +797,8 @@ public class TestDirectoryScanner {
}
}
- private float runThrottleTest(int blocks) throws IOException {
+ private float runThrottleTest(int blocks)
+ throws IOException, InterruptedException, TimeoutException {
scanner.setRetainDiffs(true);
scan(blocks, 0, 0, 0, 0, 0);
scanner.shutdown();
@@ -1069,10 +1082,19 @@ public class TestDirectoryScanner {
scanner.setRetainDiffs(true);
scanner.reconcile();
//Check blocks in corresponding BP
- bpid = cluster.getNamesystem(1).getBlockPoolId();
- verifyStats(bp1Files, 0, 0, 0, 0, 0, 0);
- bpid = cluster.getNamesystem(3).getBlockPoolId();
- verifyStats(bp2Files, 0, 0, 0, 0, 0, 0);
+
+ GenericTestUtils.waitFor(() -> {
+ try {
+ bpid = cluster.getNamesystem(1).getBlockPoolId();
+ verifyStats(bp1Files, 0, 0, 0, 0, 0, 0);
+ bpid = cluster.getNamesystem(3).getBlockPoolId();
+ verifyStats(bp2Files, 0, 0, 0, 0, 0, 0);
+ } catch (AssertionError ex) {
+ return false;
+ }
+
+ return true;
+ }, 50, 2000);
} finally {
if (scanner != null) {
scanner.shutdown();
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org