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]
