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

Todd Lipcon commented on HDFS-1263:
-----------------------------------

bq. also, we check the genstamp is moving upwards both at the start of 
updateBlock and at the end of tryUpdateBlock. do you know why?

Oops, missed this question - probably because synchronization blocks are 
dropped and reclaimed in every cycle of checking that no threads are writing 
the block. But we should certainly do the sanity check at the top of the 
function instead of after renaming the meta file

> 0.20: in tryUpdateBlock, the meta file is renamed away before genstamp 
> validation is done
> -----------------------------------------------------------------------------------------
>
>                 Key: HDFS-1263
>                 URL: https://issues.apache.org/jira/browse/HDFS-1263
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: data-node
>    Affects Versions: 0.20-append
>            Reporter: Todd Lipcon
>            Assignee: Todd Lipcon
>             Fix For: 0.20-append
>
>
> Saw an issue where multiple datanodes are trying to recover at the same time, 
> and all of them failed. I think the issue is in FSDataset.tryUpdateBlock, we 
> do the rename of blk_B_OldGS to blk_B_OldGS_tmpNewGS and *then* check that 
> the generation stamp is moving upwards. Because of this, invalid update block 
> calls are blocked, but they then cause future updateBlock calls to fail with 
> "Meta file not found" errors.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to