[
https://issues.apache.org/jira/browse/HDFS-9535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15053819#comment-15053819
]
Mingliang Liu commented on HDFS-9535:
-------------------------------------
Thanks [~jingzhao] and [~iwasakims] for your comments. The guarantee
[~jingzhao] proposed in {{addStoredBlock}} makes sense to me. So we can add the
just completed replicas to pending queue in order to avoiding under-replication
work.
{code:title=hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java}
@@ -2876,6 +2876,7 @@ private Block addStoredBlock(final BlockInfo block,
if(storedBlock.getBlockUCState() == BlockUCState.COMMITTED &&
hasMinStorage(storedBlock, numLiveReplicas)) {
+ addExpectedReplicasToPending(storedBlock);
completeBlock(storedBlock, false);
} else if (storedBlock.isComplete() && result == AddBlockResult.ADDED) {
// check whether safe replication is reached for the block
{code}
This way, the unit test will pass because newly completed blocks will be added
to pending replications either by client's complete file request, or IBR.
[~iwasakims], what's your opinion?
> Fix TestReplication#testNoExtraReplicationWhenBlockReceivedIsLate
> -----------------------------------------------------------------
>
> Key: HDFS-9535
> URL: https://issues.apache.org/jira/browse/HDFS-9535
> Project: Hadoop HDFS
> Issue Type: Bug
> Affects Versions: 2.8.0
> Reporter: Jing Zhao
> Assignee: Mingliang Liu
> Attachments: HDFS-9535.000.patch
>
>
> TestReplication#testNoExtraReplicationWhenBlockReceivedIsLate failed in
> several Jenkins run (e.g.,
> https://builds.apache.org/job/PreCommit-HDFS-Build/13818/testReport/). The
> failure is on the last {{assertNoReplicationWasPerformed}} check.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)