[
https://issues.apache.org/jira/browse/BOOKKEEPER-407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13458473#comment-13458473
]
Sijie Guo commented on BOOKKEEPER-407:
--------------------------------------
the reason why I don't use Collections.synchronizedSet is that I added a
double-checking when add to topic set. so add and iteration needs to write the
synchronized() blocks, to keep them consistent I added for remove too. If you
think Collections.synchronizedSet is better, I could change it.
{code}
+ synchronized (topicsForHost) {
+ // check whether the ownership changed, since it might happened
+ // after replace succeed
+ if (host.equals(topic2Host.get(topic))) {
+ topicsForHost.add(topic);
}
- topicsForHost.add(pubSubData.topic);
}
{code}
> Hedwig client doesn't remove old topic2Host mapping in case of redirect
> -----------------------------------------------------------------------
>
> Key: BOOKKEEPER-407
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-407
> Project: Bookkeeper
> Issue Type: Bug
> Affects Versions: 4.2.0
> Reporter: Aniruddha
> Fix For: 4.2.0
>
> Attachments: BK-407.patch, BOOKKEEPER-407.diff
>
>
> In the storeTopic2HostMapping function, there is a topic2Host.putIfAbsent().
> This doesn't seem correct as we should always update the mapping in case of a
> redirect.
> Reviewboard : https://reviews.apache.org/r/7139/
--
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