[ https://issues.apache.org/jira/browse/ZOOKEEPER-2188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14537821#comment-14537821 ]
sunhaitao commented on ZOOKEEPER-2188: -------------------------------------- shuting down the cluster is just one case, another case is like in safe authentication failed, the clientCnxn just keeps trying to connect but no feed back. > 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)