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 br...@apache.org on 2021/04/02 04:18:08 UTC

[hadoop] branch trunk updated: HDFS-15222. Correct the "hdfs fsck -list-corruptfileblocks" command output. Contributed by Ravuri Sushma sree.

This is an automated email from the ASF dual-hosted git repository.

brahma pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/trunk by this push:
     new ed74479  HDFS-15222. Correct the "hdfs fsck -list-corruptfileblocks" command output. Contributed by  Ravuri Sushma sree.
ed74479 is described below

commit ed74479ea56ba2113d40b32f28be5c963f2928fa
Author: Brahma Reddy Battula <br...@apache.org>
AuthorDate: Fri Apr 2 09:47:20 2021 +0530

    HDFS-15222. Correct the "hdfs fsck -list-corruptfileblocks" command output. Contributed by  Ravuri Sushma sree.
---
 .../java/org/apache/hadoop/hdfs/tools/DFSck.java   |  4 +--
 .../hadoop/hdfs/TestClientReportBadBlock.java      |  2 +-
 .../hadoop/hdfs/server/namenode/TestFsck.java      | 36 ++++++++++++----------
 3 files changed, 23 insertions(+), 19 deletions(-)

diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/DFSck.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/DFSck.java
index 8a2ef8b..db30133 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/DFSck.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/DFSck.java
@@ -227,7 +227,7 @@ public class DFSck extends Configured implements Tool {
             continue;
           numCorrupt++;
           if (numCorrupt == 1) {
-            out.println("The list of corrupt files under path '"
+            out.println("The list of corrupt blocks under path '"
                 + dir + "' are:");
           }
           out.println(line);
@@ -237,7 +237,7 @@ public class DFSck extends Configured implements Tool {
       }
     }
     out.println("The filesystem under path '" + dir + "' has " 
-        + numCorrupt + " CORRUPT files");
+        + numCorrupt + " CORRUPT blocks");
     if (numCorrupt == 0)
       errCode = 0;
     return errCode;
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestClientReportBadBlock.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestClientReportBadBlock.java
index 935a639..2f5aa96 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestClientReportBadBlock.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestClientReportBadBlock.java
@@ -316,7 +316,7 @@ public class TestClientReportBadBlock {
     String outStr = runFsck(conf, errorCode, true, filePath.toString(), "-list-corruptfileblocks");
     LOG.info("fsck -list-corruptfileblocks out: " + outStr);
     if (errorCode != 0) {
-      Assert.assertTrue(outStr.contains("CORRUPT files"));
+      Assert.assertTrue(outStr.contains("CORRUPT blocks"));
     }
   }
 
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFsck.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFsck.java
index ca5a870..2c9075e 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFsck.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestFsck.java
@@ -1136,7 +1136,7 @@ public class TestFsck {
     String outStr = runFsck(conf, 0, false, "/corruptData",
         "-list-corruptfileblocks");
     System.out.println("1. good fsck out: " + outStr);
-    assertTrue(outStr.contains("has 0 CORRUPT files"));
+    assertTrue(outStr.contains("has 0 CORRUPT blocks"));
     // delete the blocks
     final String bpid = cluster.getNamesystem().getBlockPoolId();
     for (int i=0; i<4; i++) {
@@ -1159,19 +1159,19 @@ public class TestFsck {
     waitForCorruptionBlocks(3, "/corruptData");
     outStr = runFsck(conf, -1, true, "/corruptData", "-list-corruptfileblocks");
     System.out.println("2. bad fsck out: " + outStr);
-    assertTrue(outStr.contains("has 3 CORRUPT files"));
+    assertTrue(outStr.contains("has 3 CORRUPT blocks"));
 
     // Do a listing on a dir which doesn't have any corrupt blocks and validate
     util.createFiles(fs, "/goodData");
     outStr = runFsck(conf, 0, true, "/goodData", "-list-corruptfileblocks");
     System.out.println("3. good fsck out: " + outStr);
-    assertTrue(outStr.contains("has 0 CORRUPT files"));
+    assertTrue(outStr.contains("has 0 CORRUPT blocks"));
     util.cleanup(fs, "/goodData");
 
     // validate if a directory have any invalid entries
     util.createFiles(fs, "/corruptDa");
     outStr = runFsck(conf, 0, true, "/corruptDa", "-list-corruptfileblocks");
-    assertTrue(outStr.contains("has 0 CORRUPT files"));
+    assertTrue(outStr.contains("has 0 CORRUPT blocks"));
     util.cleanup(fs, "/corruptData");
     util.cleanup(fs, "/corruptDa");
   }
@@ -2120,7 +2120,7 @@ public class TestFsck {
     String outStr =
         runFsck(conf, 0, false, "/corruptData", "-list-corruptfileblocks");
     System.out.println("1. good fsck out: " + outStr);
-    assertTrue(outStr.contains("has 0 CORRUPT files"));
+    assertTrue(outStr.contains("has 0 CORRUPT blocks"));
     // delete the blocks
     final String bpid = cluster.getNamesystem().getBlockPoolId();
     for (int i=0; i<numFiles; i++) {
@@ -2150,14 +2150,14 @@ public class TestFsck {
         "-list-corruptfileblocks", "-includeSnapshots");
     System.out.println("2. bad fsck include snapshot out: " + outStr);
     assertTrue(outStr
-        .contains("has " + (numFiles + numSnapshots) + " CORRUPT files"));
+        .contains("has " + (numFiles + numSnapshots) + " CORRUPT blocks"));
     assertTrue(outStr.contains("/.snapshot/"));
 
     // without -includeSnapshots only non-snapshots are reported
     outStr =
         runFsck(conf, -1, true, "/corruptData", "-list-corruptfileblocks");
     System.out.println("3. bad fsck exclude snapshot out: " + outStr);
-    assertTrue(outStr.contains("has " + numFiles + " CORRUPT files"));
+    assertTrue(outStr.contains("has " + numFiles + " CORRUPT blocks"));
     assertFalse(outStr.contains("/.snapshot/"));
   }
 
@@ -2403,7 +2403,7 @@ public class TestFsck {
     assertTrue(outStr.contains(NamenodeFsck.CORRUPT_STATUS));
     assertTrue(outStr.contains("Under-erasure-coded block groups:\t0"));
     outStr = runFsck(conf, -1, true, "/", "-list-corruptfileblocks");
-    assertTrue(outStr.contains("has 1 CORRUPT files"));
+    assertTrue(outStr.contains("has 1 CORRUPT blocks"));
   }
 
   @Test (timeout = 300000)
@@ -2448,7 +2448,7 @@ public class TestFsck {
     assertTrue(outStr.contains("Live_repl=" + (dataBlocks - 1)));
     assertTrue(outStr.contains("Under-erasure-coded block groups:\t0"));
     outStr = runFsck(conf, -1, true, "/", "-list-corruptfileblocks");
-    assertTrue(outStr.contains("has 1 CORRUPT files"));
+    assertTrue(outStr.contains("has 1 CORRUPT blocks"));
   }
 
   private void waitForUnrecoverableBlockGroup(Configuration configuration)
@@ -2511,13 +2511,17 @@ public class TestFsck {
     ugi.doAs(new PrivilegedExceptionAction<Void>() {
        @Override
         public Void run() throws Exception {
-         String path = "/";
-         String outStr = runFsck(conf, -1, true, path, "-list-corruptfileblocks");
-
-         assertFalse(outStr.contains("The list of corrupt files under path '" + path + "' are:"));
-         assertFalse(outStr.contains("The filesystem under path '" + path + "' has "));
-         assertTrue(outStr.contains("Failed to open path '" + path + "': Permission denied"));
-         return null;
+        String path = "/";
+        String outStr =
+            runFsck(conf, -1, true, path, "-list-corruptfileblocks");
+
+        assertFalse(outStr.contains(
+            "The list of corrupt blocks under path '" + path + "' are:"));
+        assertFalse(
+            outStr.contains("The filesystem under path '" + path + "' has "));
+        assertTrue(outStr
+            .contains("Failed to open path '" + path + "': Permission denied"));
+        return null;
        }
       });
   }

---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org