[ 
https://issues.apache.org/jira/browse/HDFS-9561?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15061059#comment-15061059
 ] 

Zhe Zhang commented on HDFS-9561:
---------------------------------

Thanks for reporting this Kihwal. It seems {{addDatanode2ExistingPipeline}} has 
logic to process last packet in a block:
{code}
    } else if (stage == BlockConstructionStage.PIPELINE_CLOSE
        || stage == BlockConstructionStage.PIPELINE_CLOSE_RECOVERY) {
      //pipeline is closing
      return;
{code}

Did you see this error in tests / production?

> PIpieline recovery near the end of a block may fail
> ---------------------------------------------------
>
>                 Key: HDFS-9561
>                 URL: https://issues.apache.org/jira/browse/HDFS-9561
>             Project: Hadoop HDFS
>          Issue Type: Bug
>            Reporter: Kihwal Lee
>
> When the client wants to add additional nodes to the pipeline during a 
> recovery, it will fail if all existing replicas are already finalized.  This 
> is because the partial block copy only works when the replica is in rbw.  
> Clients cannot reliably tell whether a node has finalized the replica during 
> a recovery.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to