curator-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "clive du (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CURATOR-325) Background retry falls into infinite loop of SessionExpiredException
Date Fri, 20 May 2016 05:33:12 GMT

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

clive du updated CURATOR-325:
-----------------------------
    Description: 
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]

  was:
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]


> 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.2, 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)

Mime
View raw message