diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 397cb19c1fe..55c77f80216 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -1576,6 +1576,8 @@ Release 2.8.0 - UNRELEASED HDFS-9284. fsck command should not print exception trace when file not found. (Jagadesh Kiran N via wang) + HDFS-9291. Fix TestInterDatanodeProtocol to be FsDataset-agnostic. (lei) + OPTIMIZATIONS HDFS-8026. Trace FSOutputSummer#writeChecksumChunks rather than diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/FsDatasetTestUtils.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/FsDatasetTestUtils.java index 252b285b5b4..eb986ff107f 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/FsDatasetTestUtils.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/FsDatasetTestUtils.java @@ -192,4 +192,11 @@ Replica createReplicaWaitingToBeRecovered( */ Replica createReplicaUnderRecovery(ExtendedBlock block, long recoveryId) throws IOException; + + /** + * Check the stored files / data of a replica. + * @param replica a replica object. + * @throws IOException + */ + void checkStoredReplica(final Replica replica) throws IOException; } diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImplTestUtils.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImplTestUtils.java index 3058b549b7f..ed32faec792 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImplTestUtils.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImplTestUtils.java @@ -285,4 +285,11 @@ public Replica createReplicaUnderRecovery( return rur; } } + + @Override + public void checkStoredReplica(Replica replica) throws IOException { + Preconditions.checkArgument(replica instanceof ReplicaInfo); + ReplicaInfo r = (ReplicaInfo) replica; + FsDatasetImpl.checkReplicaFiles(r); + } } diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/TestInterDatanodeProtocol.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/TestInterDatanodeProtocol.java index 6cc3d7e3f2e..85818079134 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/TestInterDatanodeProtocol.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/TestInterDatanodeProtocol.java @@ -359,7 +359,7 @@ public void testUpdateReplicaUnderRecovery() throws IOException { Assert.assertEquals(ReplicaState.RUR, replica.getState()); //check meta data before update - FsDatasetImpl.checkReplicaFiles(replica); + cluster.getFsDatasetTestUtils(datanode).checkStoredReplica(replica); //case "THIS IS NOT SUPPOSED TO HAPPEN" //with (block length) != (stored replica's on disk length).