hfutatzhanghb commented on PR #5398: URL: https://github.com/apache/hadoop/pull/5398#issuecomment-1432581037
> > Thanks to involve me here. It is interesting issue. I am confused about some points of the description. > > > dn3 is writting the blk_12345_002 , but dn2 is blocked by recoverClose method and does not send ack to client. > > is this another injects or related this write flow? > > > dn3 writes blk_12345_003 successfully. > > dn3 writes blk_12345_002 successfully and notifyNamenodeReceivedBlock. > > Here dn3 writes the same block replica twice, is it expected? > > Sorry didn't dig deeply this logic, will trace it for a while. @hfutatzhanghb Thanks again for your report and offer the solution. Hi, @Hexiaoqiao , thanks for your reply. For the question 1: dn2 is blocked by recoverClose() because of the datasetWriteLock acquire in branch-3.3.2 For the question 2: yes, dn3 writes the same block replica twice, but the two replicas have different generation stamp. and when blk_12345_003 and blk_12345_002 are written in the same IBR interval, the IncrementalBlockReportManager#addRDBI will remove the report of blk_12345_003. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
