[ https://issues.apache.org/jira/browse/HDFS-13527?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
hemanthboyina reassigned HDFS-13527: ------------------------------------ Assignee: hemanthboyina > craeteLocatedBlock IsCorrupt logic is fault when all block are corrupt. > ----------------------------------------------------------------------- > > Key: HDFS-13527 > URL: https://issues.apache.org/jira/browse/HDFS-13527 > Project: Hadoop HDFS > Issue Type: Bug > Components: hdfs, namenode > Affects Versions: 3.2.0 > Reporter: maobaolong > Assignee: hemanthboyina > Priority: Major > > the step is: > 1. put a small file into hdfs FILEPATH > 2. remove block replicas in all datanode blockpool. > 3. restart datanode > 4. restart namenode( leave safemode) > 5. hdfs fsck FILEPATH -files -blocks -locations > 6. namenode think this block is not corrupt block. > the code logic is: > {code:java} > // get block locations > NumberReplicas numReplicas = countNodes(blk); > final int numCorruptNodes = numReplicas.corruptReplicas(); > final int numCorruptReplicas = corruptReplicas.numCorruptReplicas(blk); > if (numCorruptNodes != numCorruptReplicas) { > LOG.warn("Inconsistent number of corrupt replicas for {}" > + " blockMap has {} but corrupt replicas map has {}", > blk, numCorruptNodes, numCorruptReplicas); > } > final int numNodes = blocksMap.numNodes(blk); > final boolean isCorrupt; > if (blk.isStriped()) { > BlockInfoStriped sblk = (BlockInfoStriped) blk; > isCorrupt = numCorruptReplicas != 0 && > numReplicas.liveReplicas() < sblk.getRealDataBlockNum(); > } else { > isCorrupt = numCorruptReplicas != 0 && numCorruptReplicas == numNodes; > } > {code} -- This message was sent by Atlassian Jira (v8.3.2#803003) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org