Apache Curator无法重置过期的会话Apache Curator 4.2.0; Apache Zookeeper 3.4.0

问题描述

关于Apache Curator和Zookeeper的旧版本(Apache Curator failing to reset expired session),我问了类似的问题,建议升级。我现在已经更新到客户端软件的最新版本,并且遇到了非常相似的问题。

当Zookeeper会话到期时,似乎在某些情况下不会重置客户端连接。这导致Curator客户端进入指数退避状态,从而反复尝试使用过期的会话,每次均失败,但出现以下异常:“ org.apache.zookeeper.KeeperException $ SessionExpiredException:KeeperErrorCode =会话已过期/ zk / path ”。

如果客户端服务完全重新启动,一切都会恢复正常。

客户端日志记录(Apache Curator 4.2.0; Apache Zookeeper 3.4.8):

2020-08-17 16:25:47.521 [main-SendThread(hostname:2181)] [INFO ] [org.apache.zookeeper.ClientCnxn         ] - Client session timed out,have not heard from server in 6037ms for sessionid 0x10003f181c10087,closing socket connection and attempting reconnect
2020-08-17 16:25:50.848 [main-SendThread(hostname:2181)] [INFO ] [org.apache.zookeeper.ClientCnxn         ] - Opening socket connection to server hostname:2181. Will not attempt to authenticate using SASL (unknown error)
2020-08-17 16:25:50.848 [main-SendThread(hostname:2181)] [INFO ] [org.apache.zookeeper.ClientCnxn         ] - Socket connection established to hostname:2181,initiating session
2020-08-17 16:25:50.851 [main-SendThread(hostname:2181)] [DEBUG] [org.apache.zookeeper.ClientCnxn         ] - Session establishment request sent on hostname:2181
2020-08-17 16:25:50.853 [main-SendThread(hostname:2181)] [TRACE] [org.apache.zookeeper.ClientCnxnSocket   ] - readConnectResult 37 0x[0,10,]
2020-08-17 16:25:50.853 [main-SendThread(hostname:2181)] [WARN ] [org.apache.zookeeper.ClientCnxn         ] - Unable to reconnect to ZooKeeper service,session 0x10003f181c10087 has expired
2020-08-17 16:25:50.853 [main-SendThread(hostname:2181)] [INFO ] [org.apache.zookeeper.ClientCnxn         ] - Unable to reconnect to ZooKeeper service,session 0x10003f181c10087 has expired,closing socket connection
2020-08-17 16:25:50.962 [main-EventThread    ] [DEBUG] [org.apache.curator.RetryLoop            ] - Retry-able exception received
org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = Session expired for /zk/path
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:127)
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
    at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1102)
    at org.apache.curator.framework.imps.ExistsBuilderImpl$3.call(ExistsBuilderImpl.java:237)
    at org.apache.curator.framework.imps.ExistsBuilderImpl$3.call(ExistsBuilderImpl.java:226)
    at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:109)
    at org.apache.curator.framework.imps.ExistsBuilderImpl.pathInForegroundStandard(ExistsBuilderImpl.java:223)
    at org.apache.curator.framework.imps.ExistsBuilderImpl.pathInForeground(ExistsBuilderImpl.java:216)
    at org.apache.curator.framework.imps.ExistsBuilderImpl.forPath(ExistsBuilderImpl.java:175)
    at org.apache.curator.framework.imps.ExistsBuilderImpl.forPath(ExistsBuilderImpl.java:32)
        [...]
    at org.apache.curator.framework.imps.NamespaceWatcher.process(NamespaceWatcher.java:68)
    at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:530)
    at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:505)
2020-08-17 16:25:51.054 [main-SendThread(hostname:2181)] [TRACE] [org.apache.zookeeper.ClientCnxnSocketNIO] - Doing client selector close
2020-08-17 16:25:51.055 [main-SendThread(hostname:2181)] [TRACE] [org.apache.zookeeper.ClientCnxnSocketNIO] - Closed client selector
2020-08-17 16:25:51.056 [main-SendThread(hostname:2181)] [TRACE] [org.apache.zookeeper.ClientCnxn         ] - SendThread exited loop for session: 0x10003f181c10087
2020-08-17 16:25:53.991 [main-EventThread    ] [TRACE] [o.a.curator.utils.DefaultTracerDriver   ] - Counter retries-allowed: 1
2020-08-17 16:25:53.991 [main-EventThread    ] [DEBUG] [org.apache.curator.RetryLoop            ] - Retrying operation
2020-08-17 16:25:53.992 [main-EventThread    ] [DEBUG] [org.apache.curator.RetryLoop            ] - Retry-able exception received
org.apache.zookeeper.KeeperException$SessionExpiredException: KeeperErrorCode = Session expired for /zk/path
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:127)
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
    at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1102)
    at org.apache.curator.framework.imps.ExistsBuilderImpl$3.call(ExistsBuilderImpl.java:237)
    at org.apache.curator.framework.imps.ExistsBuilderImpl$3.call(ExistsBuilderImpl.java:226)
    at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:109)
    at org.apache.curator.framework.imps.ExistsBuilderImpl.pathInForegroundStandard(ExistsBuilderImpl.java:223)
    at org.apache.curator.framework.imps.ExistsBuilderImpl.pathInForeground(ExistsBuilderImpl.java:216)
    at org.apache.curator.framework.imps.ExistsBuilderImpl.forPath(ExistsBuilderImpl.java:175)
    at org.apache.curator.framework.imps.ExistsBuilderImpl.forPath(ExistsBuilderImpl.java:32)
        [...]
    at org.apache.curator.framework.imps.NamespaceWatcher.process(NamespaceWatcher.java:68)
    at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:530)
    at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:505)

服务器日志记录(Zookeeper 3.4.13)

2020-08-17 16:25:47,519 - INFO  [SessionTracker:ZooKeeperServer@355] - Expiring session 0x10003f181c10087,timeout of 4000ms exceeded
2020-08-17 16:25:47,521 - INFO  [ProcessThread(sid:0 cport:2181)::PrepRequestProcessor@487] - Processed session termination for sessionid: 0x10003f181c10087
2020-08-17 16:25:47,522 - INFO  [SyncThread:0:NIOServerCnxn@1056] - Closed socket connection for client which had sessionid 0x10003f181c10087
2020-08-17 16:25:50,849 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@215] - Accepted socket connection from 
2020-08-17 16:25:50,851 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:ZooKeeperServer@942] - Client attempting to renew session 0x10003f181c10087 at 
2020-08-17 16:25:50,852 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:ZooKeeperServer@687] - Invalid session 0x10003f181c10087 for client,probably expired
2020-08-17 16:25:50,852 - INFO  [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1056] - Closed socket connection for client which had sessionid 0x10003f181c10087

没有与“ KeeperErrorCode =会话已过期”客户端错误相对应的服务器日志记录。

非常感谢您对此问题有任何见解。谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...