[
https://issues.apache.org/jira/browse/BOOKKEEPER-55?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sijie Guo updated BOOKKEEPER-55:
--------------------------------
Attachment: BOOKKEEPER-55.patch
Attach a patch. The idea is when a channel is disconnected, the subscriber
doesn't clear its channel until it resubscribed. after that it replaced its new
channel with old channel.
if some one close subscription during resubscribe, when it resubscribed
succeed, trying to replaced its new channel with old channel, it would find the
old channel is cleared (closesub) or changed (closesub, sub). then resubscribe
would stop resubscribing.
> SubscribeReconnectRetryTask might retry subscription endlessly when another
> subscription is already successfully created previously
> -----------------------------------------------------------------------------------------------------------------------------------
>
> Key: BOOKKEEPER-55
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-55
> Project: Bookkeeper
> Issue Type: Bug
> Components: hedwig-client
> Affects Versions: 4.0.0
> Reporter: Gavin Li
> Assignee: Sijie Guo
> Fix For: 4.2.0
>
> Attachments: BOOKKEEPER-55.patch, patch
>
>
> For channelDisconnected envent, we try to automatically recover the
> connection and subscription. But when users call HedwigSubscriber.subscribe()
> at the same time, it might succeed before the auto recovery. Then the auto
> recovery can never succeed as the server will report topic busy failure. Then
> the SubscribeReconnectRetryTask will retry again and again endlessly. We
> found this in our auto test.
> Fix is easy, we just need to firstly check if the channel for this topic and
> subscribe id is null, if not it means some subscription is already created
> before, we don't need to bother recover.
--
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