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

Michael Morello commented on CURATOR-72:
----------------------------------------

There's a kind of race condition :

First CuratorFramework-0-EventThread  sets connection state to RECONNECTED 
because Zookeeper told it to do so
{quote}
        at 
org.apache.curator.framework.state.ConnectionStateManager.addStateChange(ConnectionStateManager.java:159)
        at 
org.apache.curator.framework.imps.CuratorFrameworkImpl.validateConnection(CuratorFrameworkImpl.java:757)
        at 
org.apache.curator.framework.imps.CuratorFrameworkImpl.processEvent(CuratorFrameworkImpl.java:717)
        at 
org.apache.curator.framework.imps.CuratorFrameworkImpl.access$000(CuratorFrameworkImpl.java:56)
        at 
org.apache.curator.framework.imps.CuratorFrameworkImpl$1.process(CuratorFrameworkImpl.java:133)
        at org.apache.curator.ConnectionState.process(ConnectionState.java:145)
        at 
org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:519)
        at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:495)
{quote}

Right after CuratorFramework-0 sets connection state to LOST because of a 
background retry that is still in the pipeline :
{quote}
        at 
org.apache.curator.framework.state.ConnectionStateManager.addStateChange(ConnectionStateManager.java:168)
        at 
org.apache.curator.framework.imps.CuratorFrameworkImpl.logError(CuratorFrameworkImpl.java:517)
        at 
org.apache.curator.framework.imps.CuratorFrameworkImpl.checkBackgroundRetry(CuratorFrameworkImpl.java:593)
        at 
org.apache.curator.framework.imps.CuratorFrameworkImpl.performBackgroundOperation(CuratorFrameworkImpl.java:699)
        at 
org.apache.curator.framework.imps.CuratorFrameworkImpl.backgroundOperationsLoop(CuratorFrameworkImpl.java:665)
        at 
org.apache.curator.framework.imps.CuratorFrameworkImpl.access$300(CuratorFrameworkImpl.java:56)
        at 
org.apache.curator.framework.imps.CuratorFrameworkImpl$3.call(CuratorFrameworkImpl.java:244)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:662)
{quote}


> Background operations don't wait for connection timeout
> -------------------------------------------------------
>
>                 Key: CURATOR-72
>                 URL: https://issues.apache.org/jira/browse/CURATOR-72
>             Project: Apache Curator
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: 2.3.0
>            Reporter: Evaristo Camarero
>            Assignee: Jordan Zimmerman
>             Fix For: 2.4.0
>
>         Attachments: TestListener.java, TestListenerConnectedAtStart.java, 
> TestListenerSequence.java, TestListenerWithLeaderSelector.java, test.java
>
>
> Background operations don't wait for the configured connection timeout before 
> failing. Attached test shows the problem.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to