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

Arpit Agarwal commented on HDFS-12942:
--------------------------------------

Thanks for reporting this issue [~ajayydv] and the fix. One question.
{code}
    if (replicaInfo.deleteBlockData() || !replicaInfo.blockDataExists()) {
      FsVolumeImpl volume = (FsVolumeImpl) replicaInfo.getVolume();
      volume.onBlockFileDeletion(bpid, replicaInfo.getBytesOnDisk());
      if (replicaInfo.deleteMetadata() || !replicaInfo.metadataExists()) {
        volume.onMetaFileDeletion(bpid, replicaInfo.getMetadataLength());
      }
{code}

While cleaning up the new replica on failure, we call 
volume.onBlockFileDeletion which decrements the space used for the block on the 
new target volume. However I am not sure that the space used was incremented in 
the first place by copyReplicaToVolume. This may be a pre-existing bug actually.

> Synchronization issue in FSDataSetImpl#moveBlock
> ------------------------------------------------
>
>                 Key: HDFS-12942
>                 URL: https://issues.apache.org/jira/browse/HDFS-12942
>             Project: Hadoop HDFS
>          Issue Type: Bug
>            Reporter: Ajay Kumar
>            Assignee: Ajay Kumar
>         Attachments: HDFS-12942.001.patch, HDFS-12942.002.patch, 
> HDFS-12942.003.patch, HDFS-12942.004.patch
>
>
> FSDataSetImpl#moveBlock  works in following following 3 steps:
> # first creates a new replicaInfo object
> # calls finalizeReplica to finalize it.
> # Calls removeOldReplica to remove oldReplica.
> A client can potentially append to the old replica between step 1 and 2.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to