----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/7775/ -----------------------------------------------------------
(Updated Nov. 5, 2012, 10:36 a.m.) Review request for bookkeeper. Description ------- Since InMemorySubscriptionState and LedgerRanges is maintained separately, there may exist such inconsistent state: (1). Topic ledgers: L1 [1 ~ 2], L2 [3 ~ ] (2). Subscriber consumes to 2 and InMemorySubscriptionState is updated successfully but failed when updating subscription state metadata (3). AbstractSubscriptionManager#MessagesConsumedTask use InMemorySubscriptionState to do garbage collection and L1 is delete (4). If Hub restarts at this time, old subscription state is read and Hub will try to deliver message from 1 This addresses bug BOOKKEEPER-442. https://issues.apache.org/jira/browse/BOOKKEEPER-442 Diffs (updated) ----- hedwig-server/src/main/java/org/apache/hedwig/server/persistence/BookkeeperPersistenceManager.java 40811de hedwig-server/src/main/java/org/apache/hedwig/server/subscriptions/AbstractSubscriptionManager.java bbe8edf hedwig-server/src/main/java/org/apache/hedwig/server/subscriptions/InMemorySubscriptionState.java 34b54b8 hedwig-server/src/test/java/org/apache/hedwig/server/persistence/TestBookKeeperPersistenceManager.java c645b11 Diff: https://reviews.apache.org/r/7775/diff/ Testing ------- Two test are added Thanks, Jiannan Wang