recoverBlock timeout in DFSClient should be longer
--------------------------------------------------

                 Key: HDFS-2378
                 URL: https://issues.apache.org/jira/browse/HDFS-2378
             Project: Hadoop HDFS
          Issue Type: Bug
          Components: hdfs client
    Affects Versions: 0.20.206.0, 0.23.0
            Reporter: Todd Lipcon
            Assignee: Todd Lipcon
            Priority: Critical
             Fix For: 0.20.206.0, 0.23.0


In a failure scenario when one of the datanodes in a pipeline has "frozen" (eg 
hard swapping or disk controller issues) we sometimes see timeouts in the call 
to recoverBlock(). This is because recoverBlock's implementation sends several 
RPCs internally (to the NN and to other nodes in the pipeline) with the same 
timeout. Since the timeouts are equal, the "outer" call times out first. The 
retry then fails since recovery is already in progress, or already finished.

The best fix would be to make recoverBlock idempotent so the retry doesn't 
fail, but in the absence of that we can likely fix this issue by increasing the 
timeout to be equal to the sum of the timeouts of the underlying recovery calls.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to