[
https://issues.apache.org/jira/browse/ZOOKEEPER-2188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14647212#comment-14647212
]
sunhaitao commented on ZOOKEEPER-2188:
--------------------------------------
no, i get yourpoint
> client connection hung up because of dead loop
> -----------------------------------------------
>
> Key: ZOOKEEPER-2188
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2188
> Project: ZooKeeper
> Issue Type: Bug
> Components: java client
> Affects Versions: 3.5.0
> Reporter: sunhaitao
>
> There is something wrong with the client code ClientCnxn.java, it will keep
> trying to connect to server in a dead loop.
> This is my test step, shut down zookeeper cluster, exectue zkCli.sh script to
> connect to zookeeper cluster, it will keep trying to connect to zookeeper
> server without stop.
> public void run() {
> clientCnxnSocket.introduce(this, sessionId, outgoingQueue);
> clientCnxnSocket.updateNow();
> clientCnxnSocket.updateLastSendAndHeard();
> int to;
> long lastPingRwServer = Time.currentElapsedTime();
> final int MAX_SEND_PING_INTERVAL = 10000; //10 seconds
> while (state.isAlive()) {
> try {
> if (!clientCnxnSocket.isConnected()) {
> // don't re-establish connection if we are closing
> if (closing) {
> break;
> }
> startConnect();
> clientCnxnSocket.updateLastSendAndHeard();
> }
> public boolean isAlive() {
> return this != CLOSED && this != AUTH_FAILED;
> }
> because at the beginning it is CONNECTING so isAlive always returns true,
> which leads to dead loop.
> we should add some retry limit to stop this
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)