You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@curator.apache.org by "Jordan Zimmerman (JIRA)" <ji...@apache.org> on 2015/04/28 04:36:06 UTC

[jira] [Comment Edited] (CURATOR-164) curator-x-discovery: unregisterService is not guaranteed to remove the service, due to reconnectListener concurrency issue

    [ https://issues.apache.org/jira/browse/CURATOR-164?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14516213#comment-14516213 ] 

Jordan Zimmerman edited comment on CURATOR-164 at 4/28/15 2:35 AM:
-------------------------------------------------------------------

It looks like it might be a ZK bug: https://issues.apache.org/jira/browse/ZOOKEEPER-832 - let me see if I can fix this in the testing server somehow

FYI - this is why server.restart() works. I think the easiest thing is to just use server.restart() as needed.


was (Author: randgalt):
It looks like it might be a ZK bug: https://issues.apache.org/jira/browse/ZOOKEEPER-832 - let me see if I can fix this in the testing server somehow

> curator-x-discovery: unregisterService is not guaranteed to remove the service, due to reconnectListener concurrency issue
> --------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CURATOR-164
>                 URL: https://issues.apache.org/jira/browse/CURATOR-164
>             Project: Apache Curator
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: 2.7.0
>            Reporter: Rasmus Berg Palm
>            Assignee: Jordan Zimmerman
>            Priority: Critical
>             Fix For: 2.8.0
>
>
> In ServiceDiscoveryImpl:
> When unregistering a service, the reconnect listener might fire while deleting the path.
> This can cause a condition where the delete finishes successfully, the service is removed from services, and then the reRegisterServices completes successfully and the service is added back in ZK and in services, end result being that the service was not removed, even though unregisterService did not throw any exceptions. 
> Essentially the use of the internal 'services' cache makes for a nightmare of concurrency issues. I put this as critical as the library it's really not usable IMO.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)