The Datanode generates a report of the period block scanning that verifies crcs. It reports something like the following:
Scans since restart : 192266
Scan errors since restart : 33
Transient scan errors : 0
The statement saying that there were 33 errors is slightly midleading because these are not crc mismatches, rather the block was being deleted when the crc verification was about to happen.
I propose that DataBlockScanner.totalScanErrors is not updated if the dataset.getFile(block) is null, i.e. the block is now deleted from the datanode.