[ 
https://issues.apache.org/jira/browse/CURATOR-617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Angad Singh updated CURATOR-617:
--------------------------------
    Description: 
The unregisterService( ) method in ServiceDiscoveryImpl throws an unhandled 
KeeperException.ConnectionLossException the first time it is invoked while the 
server connection is down. The next time, however, the service has already been 
removed from the internal _services_ cache. Hence the internalUnregisterService 
function does not proceed since the entry is null the second time around.

We are not using the blockUntilConnected option, and instead are trying to 
implement a local retry mechanism. We are dependent upon the 
ConnectionLossException to be thrown, in order to catch and evaluate it before 
retrying with an exponential back-off.

  was:
The unregisterService( ) method in ServiceDiscoveryImpl throws a 
KeeperException.ConnectionLossException the first time it is invoked while the 
server connection is down. The next time, however, the service has already been 
removed from the internal _services_ cache. Hence the internalUnregisterService 
function does not proceed since the entry is null the second time around.

We are not using the blockUntilConnected option, and instead are trying to 
implement a local retry mechanism. We are dependent upon the 
ConnectionLossException to be thrown, in order to catch and evaluate it before 
retrying with an exponential back-off.


> UnregisterService Method in ServiceDiscoveryImpl is non-Idempotent in case of 
> connection-failure
> ------------------------------------------------------------------------------------------------
>
>                 Key: CURATOR-617
>                 URL: https://issues.apache.org/jira/browse/CURATOR-617
>             Project: Apache Curator
>          Issue Type: Bug
>    Affects Versions: 5.1.0
>         Environment: Windows 10, 64-Bit
>            Reporter: Angad Singh
>            Assignee: Jordan Zimmerman
>            Priority: Minor
>
> The unregisterService( ) method in ServiceDiscoveryImpl throws an unhandled 
> KeeperException.ConnectionLossException the first time it is invoked while 
> the server connection is down. The next time, however, the service has 
> already been removed from the internal _services_ cache. Hence the 
> internalUnregisterService function does not proceed since the entry is null 
> the second time around.
> We are not using the blockUntilConnected option, and instead are trying to 
> implement a local retry mechanism. We are dependent upon the 
> ConnectionLossException to be thrown, in order to catch and evaluate it 
> before retrying with an exponential back-off.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to