DFSClient has a retry mechanism on block acquiring for read. If the number of retries attends to a certain limit (defined by dfs.client.max.block.acquire.failures), DFSClient will throw a BlockMissingException back to the user application. In the current implementation, DFSClient counts the failures across multiple block acquiring operations but the block acquiring operations are supposed to be independent. HDFS-127 fixes this problem by counting the failures within a single operation.
I propose to commit HDFS-127 to 0.20 and above since this fix is safe and very useful. Nicholas Sze