nsnycde commented on PR #4607:
URL: https://github.com/apache/bookkeeper/pull/4607#issuecomment-3233511135

   > @oneby-wang oh yes, based on your description, you are pointing that this 
is an issue:
   > 
   > 
https://github.com/apache/bookkeeper/blob/e80d0318cfdebbc79f37d9120de8df28c8c1c13a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/DefaultEntryLogger.java#L1104-L1106
   > 
   > It seems that this code might explain the negative value:
   > 
   > 
https://github.com/apache/bookkeeper/blob/e80d0318cfdebbc79f37d9120de8df28c8c1c13a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/DefaultEntryLogger.java#L159-L171
   > 
   > However it's also very strange that it assumes that `ledgersMap` is 
concurrently modified and has a stable iteration order after concurrent 
modifications:
   > 
   > 
https://github.com/apache/bookkeeper/blob/e80d0318cfdebbc79f37d9120de8df28c8c1c13a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/DefaultEntryLogger.java#L143-L188
   
   @lhotari @oneby-wang 
   Theoretically, judging that ledgerMapSize <= 0 here should not lead to 
incorrect deletion, because in the above judgment, if the leaderMapIndex data 
is not written successfully, the offset data pointed to by the logHeader header 
is 0, and an exception will be thrown directly before this judgment.
   > 
https://github.com/apache/bookkeeper/blob/e80d0318cfdebbc79f37d9120de8df28c8c1c13a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/DefaultEntryLogger.java#L1079-L1082
   
   Moreover, the offset data pointed to by the logHeader header in 
leaderMapIndex will only be set after the index data is written. If it crashes 
abnormally, the offset should not be written.
   > 
https://github.com/apache/bookkeeper/blob/e80d0318cfdebbc79f37d9120de8df28c8c1c13a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/DefaultEntryLogger.java#L204-L208
   


-- 
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]

Reply via email to