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 "Kitti Nanasi (JIRA)" <ji...@apache.org> on 2018/08/22 15:10:00 UTC
[jira] [Created] (HDFS-13846) Safe blocks counter is not
decremented correctly if the block is striped
Kitti Nanasi created HDFS-13846:
-----------------------------------
Summary: Safe blocks counter is not decremented correctly if the block is striped
Key: HDFS-13846
URL: https://issues.apache.org/jira/browse/HDFS-13846
Project: Hadoop HDFS
Issue Type: Bug
Components: hdfs
Affects Versions: 3.1.0
Reporter: Kitti Nanasi
Assignee: Kitti Nanasi
In BlockManagerSafeMode class, the "safe blocks" counter is incremented if the number of nodes containing the block equals to the number of data units specified by the erasure coding policy, which looks like this in the code:
{code:java}
final int safe = storedBlock.isStriped() ?
((BlockInfoStriped)storedBlock).getRealDataBlockNum() : safeReplication;
if (storageNum == safe) {
this.blockSafe++;
{code}
But when it is decremented the code does not check if the block is striped or not, just compares the number of nodes containing the block with 0 (safeReplication - 1) if the block is complete, which is not correct.
{code:java}
if (storedBlock.isComplete() &&
blockManager.countNodes(b).liveReplicas() == safeReplication - 1) {
this.blockSafe--;
assert blockSafe >= 0;
checkSafeMode();
}
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-help@hadoop.apache.org