Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
Improves the error message when datanode removes a replica which is not found.
Description
The following error check and message is incorrect, because info is null if (1) the block id does not exist in ReplicaMap or (2) the generation stamp of block does not match the replica entry in ReplicaMap.
FsDatasetImpl#invalidate
final ReplicaInfo info = volumeMap.get(bpid, invalidBlks[i]); if (info == null) { // It is okay if the block is not found -- it may be deleted earlier. LOG.info("Failed to delete replica " + invalidBlks[i] + ": ReplicaInfo not found."); continue; } if (info.getGenerationStamp() != invalidBlks[i].getGenerationStamp()) { errors.add("Failed to delete replica " + invalidBlks[i] + ": GenerationStamp not matched, info=" + info); continue; }