From dev-return-77145-archive-asf-public=cust-asf.ponee.io@zookeeper.apache.org Sat Jan 12 01:34:04 2019 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id EBF00180648 for ; Sat, 12 Jan 2019 01:34:03 +0100 (CET) Received: (qmail 60537 invoked by uid 500); 12 Jan 2019 00:34:03 -0000 Mailing-List: contact dev-help@zookeeper.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@zookeeper.apache.org Delivered-To: mailing list dev@zookeeper.apache.org Received: (qmail 60526 invoked by uid 99); 12 Jan 2019 00:34:02 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 12 Jan 2019 00:34:02 +0000 From: GitBox To: dev@zookeeper.apache.org Subject: =?utf-8?q?=5BGitHub=5D_enixon_closed_pull_request_=23767=3A_ZOOKEEPER-324?= =?utf-8?q?0=3A_Close_socket_on_Learner_shutdown_to_avoid_dangling_so?= =?utf-8?b?4oCm?= Message-ID: <154725324239.4550.7251908882785983351.gitbox@gitbox.apache.org> Date: Sat, 12 Jan 2019 00:34:02 -0000 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit enixon closed pull request #767: ZOOKEEPER-3240: Close socket on Learner shutdown to avoid dangling so… URL: https://github.com/apache/zookeeper/pull/767 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Follower.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Follower.java index 49280d3dd3..7dcc9cff1e 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Follower.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Follower.java @@ -114,11 +114,7 @@ void followLeader() throws InterruptedException { } } catch (Exception e) { LOG.warn("Exception when following the leader", e); - try { - sock.close(); - } catch (IOException e1) { - e1.printStackTrace(); - } + closeSocket(); // clear pending revalidations pendingRevalidations.clear(); diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Learner.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Learner.java index 307b644fc1..b5865f8538 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Learner.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Learner.java @@ -673,6 +673,7 @@ public void shutdown() { self.setZooKeeperServer(null); self.closeAllConnections(); self.adminServer.setZooKeeperServer(null); + closeSocket(); // shutdown previous zookeeper if (zk != null) { zk.shutdown(); @@ -682,4 +683,14 @@ public void shutdown() { boolean isRunning() { return self.isRunning() && zk.isRunning(); } + + void closeSocket() { + try { + if (sock != null && !sock.isClosed()) { + sock.close(); + } + } catch (IOException e) { + LOG.warn("Ignoring error closing connection to leader", e); + } + } } diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Observer.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Observer.java index b688e03f8d..3792a04afd 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Observer.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/Observer.java @@ -107,11 +107,7 @@ void observeLeader() throws Exception { } } catch (Exception e) { LOG.warn("Exception when observing the leader", e); - try { - sock.close(); - } catch (IOException e1) { - e1.printStackTrace(); - } + closeSocket(); // clear pending revalidations pendingRevalidations.clear(); ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: users@infra.apache.org With regards, Apache Git Services