ZanderXu commented on PR #5583:
URL: https://github.com/apache/hadoop/pull/5583#issuecomment-1537101605

   Modify some logic of `markBlockAsCorrupt` directly may can not solve the 
following abnormal case:
   
   - Supposing there is a block, blk_1024_1002 with 3 replicas, and these 
replicas are stored in DN1, DN2 and DN3
   - One day, some one changes the meta file of this block on DN2, such as 
delete the original meta file blk_1024_1002 and create an new meta file 
blk_1024_1001 with some random data
   - The DN2 will report this replica to namenode after directory scanner or 
volume scanner found this inconsistent replica
   - The nameNode will doesn't mark this replica as a corrupt replica because 
the storage list already contains DN2 if we modify `markBlockAsCorrupt` directly
   
   So I think it looks better to modify `processAllPendingDNMessages` to solve 
this problem.
   
   @Hexiaoqiao @ayushtkn Looking forward your good idea. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-issues-h...@hadoop.apache.org

Reply via email to