You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Fei Hui (Jira)" <ji...@apache.org> on 2019/09/18 11:56:00 UTC
[jira] [Created] (HDFS-14852) Remove of LowRedundancyBlocks do NOT
remove the block from all queues
Fei Hui created HDFS-14852:
------------------------------
Summary: Remove of LowRedundancyBlocks do NOT remove the block from all queues
Key: HDFS-14852
URL: https://issues.apache.org/jira/browse/HDFS-14852
Project: Hadoop HDFS
Issue Type: Bug
Components: hdfs
Affects Versions: 3.1.2, 3.0.3, 3.2.0, 3.3.0
Reporter: Fei Hui
Assignee: Fei Hui
LowRedundancyBlocks.java
{code:java}
// Some comments here
if(priLevel >= 0 && priLevel < LEVEL
&& priorityQueues.get(priLevel).remove(block)) {
NameNode.blockStateChangeLog.debug(
"BLOCK* NameSystem.LowRedundancyBlock.remove: Removing block {}"
+ " from priority queue {}",
block, priLevel);
decrementBlockStat(block, priLevel, oldExpectedReplicas);
return true;
} else {
// Try to remove the block from all queues if the block was
// not found in the queue for the given priority level.
for (int i = 0; i < LEVEL; i++) {
if (i != priLevel && priorityQueues.get(i).remove(block)) {
NameNode.blockStateChangeLog.debug(
"BLOCK* NameSystem.LowRedundancyBlock.remove: Removing block" +
" {} from priority queue {}", block, i);
decrementBlockStat(block, i, oldExpectedReplicas);
return true;
}
}
}
return false;
}
{code}
Source code is above, the comments as follow
{quote}
// Try to remove the block from all queues if the block was
// not found in the queue for the given priority level.
{quote}
The function "remove" does NOT remove the block from all queues.
Function add from LowRedundancyBlocks.java is used on some places and maybe one block in two or more queues.
We found that corrupt blocks mismatch corrupt files on NN web UI. Maybe it is related to this.
Upload initial patch
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-help@hadoop.apache.org