2016-01-06 59 views
5

我運行的ZooKeeper的3個實例和配置是這樣的:領導人選舉與策展人和動物園管理員

tickTime=2000 
initLimit=10 
syncLimit=5 
dataDir=/tmp/zookeeper1 
clientPort=2181 
maxClientCnxns=1000 
server.1=127.0.0.1:2888:3888 
server.2=127.0.0.1:2889:3889 
server.3=127.0.0.1:2890:3890 

我使用這裏給出的領導人選舉示例代碼: https://git-wip-us.apache.org/repos/asf?p=curator.git;a=tree;f=curator-examples/src/main/java/leader;h=73b547eadb98995c0ccbd06a5b76d0741ffef263;hb=HEAD

的代碼運行正常與TestingServer但是當我更改連接字符串:"127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183",我得到的例外:

[main-SendThread(127.0.0.1:2183)] INFO org.apache.zookeeper.ClientCnxn - Opening socket connection to server 127.0.0.1/127.0.0.1:2183. Will not attempt to authenticate using SASL (unknown error) 
[main-SendThread(127.0.0.1:2183)] INFO org.apache.zookeeper.ClientCnxn - Socket connection established, initiating session, client: /127.0.0.1:56111, server: 127.0.0.1/127.0.0.1:2183 
[main-SendThread(127.0.0.1:2183)] INFO org.apache.zookeeper.ClientCnxn - Session establishment complete on server 127.0.0.1/127.0.0.1:2183, sessionid = 0x3521552283c0000, negotiated timeout = 40000 
[main-EventThread] INFO org.apache.curator.framework.state.ConnectionStateManager - State change: CONNECTED 
[main-SendThread(127.0.0.1:2183)] INFO org.apache.zookeeper.ClientCnxn - Unable to read additional data from server sessionid 0x3521552283c0000, likely server has closed socket, closing socket connection and attempting reconnect 
[main-EventThread] INFO org.apache.curator.framework.imps.EnsembleTracker - New config event received: null 
[main-EventThread] ERROR org.apache.curator.framework.imps.CuratorFrameworkImpl - Background exception was not retry-able or retry gave up 
java.lang.NullPointerException 
    at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:106) 
    at org.apache.curator.framework.imps.EnsembleTracker.processConfigData(EnsembleTracker.java:163) 
    at org.apache.curator.framework.imps.EnsembleTracker.access$200(EnsembleTracker.java:48) 
    at org.apache.curator.framework.imps.EnsembleTracker$2.processResult(EnsembleTracker.java:134) 
    at org.apache.curator.framework.imps.CuratorFrameworkImpl.sendToBackgroundCallback(CuratorFrameworkImpl.java:829) 
    at org.apache.curator.framework.imps.CuratorFrameworkImpl.processBackgroundOperation(CuratorFrameworkImpl.java:611) 
    at org.apache.curator.framework.imps.WatcherRemovalFacade.processBackgroundOperation(WatcherRemovalFacade.java:151) 
    at org.apache.curator.framework.imps.GetConfigBuilderImpl$2.processResult(GetConfigBuilderImpl.java:210) 
    at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:619) 
    at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:528) 
[main-EventThread] INFO org.apache.curator.framework.state.ConnectionStateManager - State change: SUSPENDED 

可能是什麼是起訴?

+0

我在使用Curator Framework版本3.0.0。我使用了2.9.1版本。不知道是什麼問題.. –

+2

如果你願意,請把它作爲一個錯誤發佈在https://issues.apache.org/jira/browse/CURATOR - 它看起來可能是一個新問題3.0.0 – Randgalt

+0

@Randgalt,謝謝。在這裏完成:https://issues.apache.org/jira/browse/CURATOR-285 –

回答

0

我遇到了同樣的問題。我認爲它可能與Zookeeper 3.5.1 ClientCnxn有關。即使我回到策展人2.6.0,我仍然看到相同的堆棧跟蹤。發送事件類型GET_CONFIG時沒有事件數據。

我的堆棧跟蹤看起來是這樣的:

 
org.apache.curator.framework.imps.CuratorFrameworkImpl: Background exception was not retry-able or retry gave up 
! java.lang.NullPointerException: null 
! at java.io.ByteArrayInputStream.(ByteArrayInputStream.java:106) 
! at org.apache.curator.framework.imps.EnsembleTracker.processConfigData(EnsembleTracker.java:163) 
! at org.apache.curator.framework.imps.EnsembleTracker.access$200(EnsembleTracker.java:48) 
! at org.apache.curator.framework.imps.EnsembleTracker$2.processResult(EnsembleTracker.java:134) 
! at org.apache.curator.framework.imps.CuratorFrameworkImpl.sendToBackgroundCallback(CuratorFrameworkImpl.java:829) 
! at org.apache.curator.framework.imps.CuratorFrameworkImpl.processBackgroundOperation(CuratorFrameworkImpl.java:611) 
! at org.apache.curator.framework.imps.WatcherRemovalFacade.processBackgroundOperation(WatcherRemovalFacade.java:151) 
! at org.apache.curator.framework.imps.GetConfigBuilderImpl$2.processResult(GetConfigBuilderImpl.java:210) 
! at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:619) 
! at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:528) 
0

如果使用動物園管理員3.5.1,然後策展人食譜3.2.1+解決此問題。