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

Kihwal Lee commented on HDFS-9561:
----------------------------------

{{recoverClose()}} itself works fine. If a block is already finalized, its gen 
stamp is bumped up and another IBR is sent to the NN. This happens when the 
client didn't get an ack for the very last "end of block" empty packet. 

If the client wrote everything but didn't get the second to the last ack 
(actual last packet containing real data) for example, the data packet and the 
end of block packet will be resent after recovering pipeline.  If the client 
decides to add more nodes to the pipeline at this point, there can be a 
problem.  If the existing nodes actually finalized the block, block copy will 
fail because it is not in the rbw state.

> 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