You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ca...@apache.org on 2017/08/23 00:16:33 UTC

zookeeper git commit: ZOOKEEPER-2836: fix SocketTimeoutException

Repository: zookeeper
Updated Branches:
  refs/heads/master b64d50441 -> 52aff3eca


ZOOKEEPER-2836: fix SocketTimeoutException

Author: bitgaoshu <bi...@gmail.com>

Reviewers: camille camille@apache.org

Closes #336 from bitgaoshu/ZOOKEEPER-2836


Project: http://git-wip-us.apache.org/repos/asf/zookeeper/repo
Commit: http://git-wip-us.apache.org/repos/asf/zookeeper/commit/52aff3ec
Tree: http://git-wip-us.apache.org/repos/asf/zookeeper/tree/52aff3ec
Diff: http://git-wip-us.apache.org/repos/asf/zookeeper/diff/52aff3ec

Branch: refs/heads/master
Commit: 52aff3eca439bba70f2b4d175ce331754dcd03db
Parents: b64d504
Author: bitgaoshu <bi...@gmail.com>
Authored: Tue Aug 22 20:16:27 2017 -0400
Committer: Camille Fournier <ca...@apache.org>
Committed: Tue Aug 22 20:16:27 2017 -0400

----------------------------------------------------------------------
 .../server/quorum/QuorumCnxManager.java          | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zookeeper/blob/52aff3ec/src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java
----------------------------------------------------------------------
diff --git a/src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java b/src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java
index eab1338..c8f73a3 100644
--- a/src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java
+++ b/src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java
@@ -26,6 +26,7 @@ import java.net.InetSocketAddress;
 import java.net.ServerSocket;
 import java.net.Socket;
 import java.net.SocketException;
+import java.net.SocketTimeoutException;
 import java.nio.BufferUnderflowException;
 import java.nio.ByteBuffer;
 import java.nio.channels.UnresolvedAddressException;
@@ -639,12 +640,18 @@ public class QuorumCnxManager {
                     setName(addr.toString());
                     ss.bind(addr);
                     while (!shutdown) {
-                        client = ss.accept();
-                        setSockOpts(client);
-                        LOG.info("Received connection request "
-                                + client.getRemoteSocketAddress());
-                        receiveConnection(client);
-                        numRetries = 0;
+                        try {
+                            client = ss.accept();
+                            setSockOpts(client);
+                            LOG.info("Received connection request "
+                                     + client.getRemoteSocketAddress());
+                            receiveConnection(client);
+                            numRetries = 0;
+                        } catch (SocketTimeoutException e) {
+                            LOG.warn("The socket is listening for the election accepted "
+                                     + "and it timed out unexpectedly, but will retry."
+                                     + "see ZOOKEEPER-2836");
+                        }
                     }
                 } catch (IOException e) {
                     if (shutdown) {