Hi Yiqun Lin much appreciate your patch. The patch itself looks good to me.
However, I have been hesitate to give my non-binding +1, because when this method is being called, a block is corrupt. After this patch, VolumeScanner will not terminate prematurely, which is good, but it still won't tell NameNode to mark this replica corrupt. And that's still a really bad thing to have.
Any comments? Xiaoyu Yao or other watchers?
Do you think this patch should go in despite we do not know the root cause of NPE?
This is a really bad bug, which causes pipeline to abort, because it will never transmit correct block to the downstream pipeline, and pipeline can not construct three good replicas.
BTW, I have found the root cause of corrupt replica, and I'll file another jira today, but I still think it would be nice to know what causes NPE.