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

Jordan Zimmerman commented on CURATOR-325:
------------------------------------------

Can you provide a test case that shows the problem. Session expiration _should_ 
be a retry. Internally, Curator will recreate the ZooKeeper handle when the 
session expires so I don't see why this is a problem.

> Background retry falls into infinite loop of SessionExpiredException
> --------------------------------------------------------------------
>
>                 Key: CURATOR-325
>                 URL: https://issues.apache.org/jira/browse/CURATOR-325
>             Project: Apache Curator
>          Issue Type: Bug
>          Components: Client
>    Affects Versions: 2.9.1, 2.10.0
>         Environment: sun java jdk 1.7.0_55, curator 2.9.1, zookeeper 3.4.6
>            Reporter: clive du
>              Labels: SessionExpiredException, loop
>
> after long time gc pause,which longer than zookeeper session time,the 
> zookeeper cluster invalidate the session id holding by the client and waiting 
> the client to reconnect,but client consider the  SessionExpiredException as 
> retry exception and re-put to the background queue,so wo get the stacktrace 
> infinitely.
> 12:50:54.337 [configuration-0-EventThread] DEBUG org.apache.curator.RetryLoop 
> - Retrying operation
> 12:50:54.337 [configuration-0-EventThread] DEBUG org.apache.curator.RetryLoop 
> - Retry-able exception received
> org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode 
> = Session expired for /dynamic/apps/258741001/DEV
>     at org.apache.zookeeper.KeeperException.create(KeeperException.java:127) 
> ~[zookeeper-3.4.6.jar:3.4.6-1569965]
>     at org.apache.zookeeper.KeeperException.create(KeeperException.java:51) 
> ~[zookeeper-3.4.6.jar:3.4.6-1569965]
>     at org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.java:1155) 
> ~[zookeeper-3.4.6.jar:3.4.6-1569965]
>     at 
> org.apache.curator.framework.imps.GetDataBuilderImpl$4.call(GetDataBuilderImpl.java:304)
>  ~[curator-framework-2.10.0.jar:na]
>     at 
> org.apache.curator.framework.imps.GetDataBuilderImpl$4.call(GetDataBuilderImpl.java:293)
>  ~[curator-framework-2.10.0.jar:na]
>     at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:108) 
> ~[curator-client-2.10.0.jar:na]
>     at 
> org.apache.curator.framework.imps.GetDataBuilderImpl.pathInForeground(GetDataBuilderImpl.java:290)
>  [curator-framework-2.10.0.jar:na]
>     at 
> org.apache.curator.framework.imps.GetDataBuilderImpl.forPath(GetDataBuilderImpl.java:281)
>  [curator-framework-2.10.0.jar:na]
>     at 
> org.apache.curator.framework.imps.GetDataBuilderImpl$1.forPath(GetDataBuilderImpl.java:105)
>  [curator-framework-2.10.0.jar:na]
>     at 
> org.apache.curator.framework.imps.GetDataBuilderImpl$1.forPath(GetDataBuilderImpl.java:65)
>  [curator-framework-2.10.0.jar:na]
>     at 
> com.ctrip.flight.configuration.client.AbstractZookeeperClient.getData(AbstractZookeeperClient.java:68)
>  [classes/:na]
>     at 
> com.ctrip.flight.configuration.client.ZooKeeperConfigurationSource.getPublishNodeValue(ZooKeeperConfigurationSource.java:258)
>  [classes/:na]
>     at 
> com.ctrip.flight.configuration.client.ZooKeeperConfigurationSource.access$100(ZooKeeperConfigurationSource.java:45)
>  [classes/:na]
>     at 
> com.ctrip.flight.configuration.client.ZooKeeperConfigurationSource$1.nodeChanged(ZooKeeperConfigurationSource.java:105)
>  [classes/:na]
>     at 
> org.apache.curator.framework.recipes.cache.NodeCache$4.apply(NodeCache.java:310)
>  [curator-recipes-2.10.0.jar:na]
>     at 
> org.apache.curator.framework.recipes.cache.NodeCache$4.apply(NodeCache.java:304)
>  [curator-recipes-2.10.0.jar:na]
>     at 
> org.apache.curator.framework.listen.ListenerContainer$1.run(ListenerContainer.java:93)
>  [curator-framework-2.10.0.jar:na]
>     at 
> com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:310)
>  [guava-19.0.jar:na]
>     at 
> org.apache.curator.framework.listen.ListenerContainer.forEach(ListenerContainer.java:85)
>  [curator-framework-2.10.0.jar:na]
>     at 
> org.apache.curator.framework.recipes.cache.NodeCache.setNewData(NodeCache.java:302)
>  [curator-recipes-2.10.0.jar:na]
>     at 
> org.apache.curator.framework.recipes.cache.NodeCache.processBackgroundResult(NodeCache.java:269)
>  [curator-recipes-2.10.0.jar:na]
>     at 
> org.apache.curator.framework.recipes.cache.NodeCache.access$300(NodeCache.java:56)
>  [curator-recipes-2.10.0.jar:na]
>     at 
> org.apache.curator.framework.recipes.cache.NodeCache$3.processResult(NodeCache.java:122)
>  [curator-recipes-2.10.0.jar:na]
>     at 
> org.apache.curator.framework.imps.CuratorFrameworkImpl.sendToBackgroundCallback(CuratorFrameworkImpl.java:749)
>  [curator-framework-2.10.0.jar:na]
>     at 
> org.apache.curator.framework.imps.CuratorFrameworkImpl.processBackgroundOperation(CuratorFrameworkImpl.java:522)
>  [curator-framework-2.10.0.jar:na]
>     at 
> org.apache.curator.framework.imps.GetDataBuilderImpl$3.processResult(GetDataBuilderImpl.java:256)
>  [curator-framework-2.10.0.jar:na]
>     at 
> org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:561) 
> [zookeeper-3.4.6.jar:3.4.6-1569965]
>     at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:498) 
> [zookeeper-3.4.6.jar:3.4.6-1569965]



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

Reply via email to