HDFS-4338. TestNameNodeMetrics#testCorruptBlock is flaky. Contributed by Andrew Wang.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1428144 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Aaron Myers 2013-01-03 02:25:08 +00:00
parent 16cf201042
commit 6f0eb6f5b1
2 changed files with 4 additions and 3 deletions

View File

@ -288,6 +288,9 @@ Trunk (Unreleased)
HDFS-4275. MiniDFSCluster-based tests fail on Windows due to failure HDFS-4275. MiniDFSCluster-based tests fail on Windows due to failure
to delete test namenode directory. (Chris Nauroth via suresh) to delete test namenode directory. (Chris Nauroth via suresh)
HDFS-4338. TestNameNodeMetrics#testCorruptBlock is flaky. (Andrew Wang via
atm)
Release 2.0.3-alpha - Unreleased Release 2.0.3-alpha - Unreleased
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -222,11 +222,9 @@ public void testCorruptBlock() throws Exception {
cluster.getNamesystem().writeUnlock(); cluster.getNamesystem().writeUnlock();
} }
BlockManagerTestUtil.getComputedDatanodeWork(bm); BlockManagerTestUtil.getComputedDatanodeWork(bm);
BlockManagerTestUtil.updateState(bm);
MetricsRecordBuilder rb = getMetrics(NS_METRICS); MetricsRecordBuilder rb = getMetrics(NS_METRICS);
assertGauge("CorruptBlocks", 1L, rb); assertGauge("CorruptBlocks", 1L, rb);
assertGauge("PendingReplicationBlocks", 1L, rb); assertGauge("PendingReplicationBlocks", 1L, rb);
assertGauge("ScheduledReplicationBlocks", 1L, rb);
fs.delete(file, true); fs.delete(file, true);
// During the file deletion, both BlockManager#corruptReplicas and // During the file deletion, both BlockManager#corruptReplicas and
@ -235,7 +233,7 @@ public void testCorruptBlock() throws Exception {
// corruptReplicas and pendingReplications. The corresponding // corruptReplicas and pendingReplications. The corresponding
// metrics (CorruptBlocks and PendingReplicationBlocks) will only be updated // metrics (CorruptBlocks and PendingReplicationBlocks) will only be updated
// when BlockManager#computeDatanodeWork is run where the // when BlockManager#computeDatanodeWork is run where the
// BlockManager#udpateState is called. And in // BlockManager#updateState is called. And in
// BlockManager#computeDatanodeWork the metric ScheduledReplicationBlocks // BlockManager#computeDatanodeWork the metric ScheduledReplicationBlocks
// will also be updated. // will also be updated.
rb = waitForDnMetricValue(NS_METRICS, "CorruptBlocks", 0L); rb = waitForDnMetricValue(NS_METRICS, "CorruptBlocks", 0L);