hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "sam rash (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HDFS-1263) 0.20: in tryUpdateBlock, the meta file is renamed away before genstamp validation is done
Date Wed, 23 Jun 2010 18:15:52 GMT

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

sam rash commented on HDFS-1263:

so if i follow:

checking that the genstamp of the file is < the one we are trying to update before doing
any mutation of blocks or metadata (ie renaming) should fix this issue

regarding throwing ioe on concurrent recovery in the same node, that might be problematic

DN A can talk to DN B, not DN C
DN B can talk to DN A and DN C

DN A starts recovery first
DN B starts after
if DN B talks to DN A before DN A times out talking to C, we'll fail a recovery that could
succeed, no?

i like the idea of failing on these as early in the pipe, but i lean towards fixing the genstamp
detection.  seems like the whole genstamp process is designed for this--there's just a tiny
bug with the rename

> 0.20: in tryUpdateBlock, the meta file is renamed away before genstamp validation is
> -----------------------------------------------------------------------------------------
>                 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.

View raw message