HDFS-17197. Show file replication when listing corrupt files. (#6095). Contributed by Shuyan Zhang.

Signed-off-by: He Xiaoqiao <hexiaoqiao@apache.org>
This commit is contained in:
zhangshuyan 2023-09-25 13:01:25 +08:00 committed by GitHub
parent 13c5825c00
commit ecee022e49
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -6131,15 +6131,20 @@ void releaseBackupNode(NamenodeRegistration registration)
static class CorruptFileBlockInfo {
final String path;
final Block block;
private final int replication;
private final String ecPolicy;
public CorruptFileBlockInfo(String p, Block b) {
CorruptFileBlockInfo(String p, Block b, int r, String ec) {
path = p;
block = b;
replication = r;
ecPolicy = ec;
}
@Override
public String toString() {
return block.getBlockName() + "\t" + path;
return block.getBlockName() + "\t" +
(replication == -1 ? ecPolicy : replication) + "\t" + path;
}
}
/**
@ -6195,7 +6200,21 @@ Collection<CorruptFileBlockInfo> listCorruptFileBlocks(String path,
if (inode != null) {
String src = inode.getFullPathName();
if (isParentEntry(src, path)) {
corruptFiles.add(new CorruptFileBlockInfo(src, blk));
int repl = -1;
String ecPolicyName = null;
if (inode.isFile()) {
if (inode.asFile().isStriped()) {
ErasureCodingPolicy ecPolicy =
ErasureCodingPolicyManager.getInstance()
.getByID(inode.asFile().getErasureCodingPolicyID());
if (ecPolicy != null) {
ecPolicyName = ecPolicy.getName();
}
} else {
repl = inode.asFile().getFileReplication();
}
}
corruptFiles.add(new CorruptFileBlockInfo(src, blk, repl, ecPolicyName));
count++;
if (count >= maxCorruptFileBlocksReturn)
break;