Contending block synchronizations can result in scary log messages ------------------------------------------------------------------
Key: HDFS-2970 URL: https://issues.apache.org/jira/browse/HDFS-2970 Project: Hadoop HDFS Issue Type: Bug Components: data-node Affects Versions: 0.23.0 Reporter: Todd Lipcon If multiple datanodes are attempting to act as the coordinator for a block recovery, but one is being particularly slow, it's possible that you see the following interleaving: - Primary A receives block recovery command for recovery genstamp = 1, then starts acting slow - Primary B receives block recovery command for recovery genstamp = 2 - Primary B calls initReplicaRecovery on other nodes for genstamp = 2 - Primary A calls initReplicaRecovery on other nodes for genstamp = 1 This results in a scary message. For example: java.io.IOException: java.io.IOException: THIS IS NOT SUPPOSED TO HAPPEN: replica.getGenerationStamp() >= recoveryId = 4148, block=blk_6899379920748342698_4136, replica=FinalizedReplica, blk_6899379920748342698_4176, FINALIZED BUT, this scenario is properly handled by the recovery protocol. We should tone down the message a bit. -- 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