You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bookkeeper.apache.org by Ivan Kelly <iv...@apache.org> on 2012/11/02 12:48:00 UTC
Re: Review Request: [BOOKKEEPER-442] Failed to deliver messages due to
inconsistency between SubscriptionState and LedgerRanges.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/7775/#review13035
-----------------------------------------------------------
hedwig-server/src/main/java/org/apache/hedwig/server/persistence/BookkeeperPersistenceManager.java
<https://reviews.apache.org/r/7775/#comment28050>
Are you sure you want to throw a RuntimeException here, as this will probably take the whole hub down.
hedwig-server/src/main/java/org/apache/hedwig/server/subscriptions/AbstractSubscriptionManager.java
<https://reviews.apache.org/r/7775/#comment28049>
Am I correct in thinking that the original logic here was incorrect?
- Ivan Kelly
On Oct. 30, 2012, 10:17 a.m., Jiannan Wang wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/7775/
> -----------------------------------------------------------
>
> (Updated Oct. 30, 2012, 10:17 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
> -----
>
> 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
>
>
Re: Review Request: [BOOKKEEPER-442] Failed to deliver messages due to
inconsistency between SubscriptionState and LedgerRanges.
Posted by Jiannan Wang <ji...@yahoo-inc.com>.
> On Nov. 2, 2012, 11:48 a.m., Ivan Kelly wrote:
> > hedwig-server/src/main/java/org/apache/hedwig/server/subscriptions/AbstractSubscriptionManager.java, line 145
> > <https://reviews.apache.org/r/7775/diff/1/?file=182289#file182289line145>
> >
> > Am I correct in thinking that the original logic here was incorrect?
Yeah, I think both of the orignal comment and its implementation code were incorrect.
> On Nov. 2, 2012, 11:48 a.m., Ivan Kelly wrote:
> > hedwig-server/src/main/java/org/apache/hedwig/server/persistence/BookkeeperPersistenceManager.java, line 237
> > <https://reviews.apache.org/r/7775/diff/1/?file=182288#file182288line237>
> >
> > Are you sure you want to throw a RuntimeException here, as this will probably take the whole hub down.
I don't quit sure about the criterial when to throw a RuntimeException in a system, but it seems use an error logging is Ok here.
- Jiannan
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/7775/#review13035
-----------------------------------------------------------
On Oct. 30, 2012, 10:17 a.m., Jiannan Wang wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/7775/
> -----------------------------------------------------------
>
> (Updated Oct. 30, 2012, 10:17 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
> -----
>
> 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
>
>