[ https://issues.apache.org/jira/browse/BOOKKEEPER-410?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13460097#comment-13460097 ]
Sijie Guo commented on BOOKKEEPER-410: -------------------------------------- {quote} Because of this, when a subscription request goes through with another message handler, the subscription goes fine, but we can't start delivery. The only reason for keeping the message handler is to support restartDelivery. {quote} we removed the message handler from SubscribeReconnectCallback to fix race condition on start/stop message handler. I think the bug is quite straightforward in RegionManager itself. we could stopDelivery when a topic released. For hedwig client, we'd better call stopDelivery when closeSubscription. > Hedwig client should remove message handler while closing subscription > ---------------------------------------------------------------------- > > Key: BOOKKEEPER-410 > URL: https://issues.apache.org/jira/browse/BOOKKEEPER-410 > Project: Bookkeeper > Issue Type: Bug > Components: hedwig-client, hedwig-server > Affects Versions: 4.2.0 > Reporter: Aniruddha > > The hedwig java client does not remove a message handler for the topic (by > calling stopDelivery) when we close a subscription channel. Because of this, > when a subscription request goes through with another message handler, the > subscription goes fine, but we can't start delivery. The only reason for > keeping the message handler is to support restartDelivery. We should change > the way restart delivery is handled by storing the existing message handler > in the SubscribeReconnectCallback and forcing the subscribe handler to use it > when we restart delivery. > This manifests as a bug in the region manager. When a topic moves from one > hub to another and then returns to this hub, because the client still has a > dangling MessageHandler, none of the subscriptions succeed because they can't > start delivery. As an additional check, the region manager's client should > not start delivery for a topic if there is an existing message handler. Any > thoughts? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira