You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by an...@apache.org on 2019/01/29 15:32:02 UTC
[zookeeper] branch master updated: ZOOKEEPER-3240: Close socket on Learner shutdown to avoid dangling so…
This is an automated email from the ASF dual-hosted git repository.
andor pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zookeeper.git
The following commit(s) were added to refs/heads/master by this push:
new de7b87c ZOOKEEPER-3240: Close socket on Learner shutdown to avoid dangling so…
de7b87c is described below
commit de7b87cd69dfd38787270c71f00576f9a235e582
Author: Brian Nixon <ni...@fb.com>
AuthorDate: Tue Jan 29 16:31:58 2019 +0100
ZOOKEEPER-3240: Close socket on Learner shutdown to avoid dangling so…
…cket
Author: Brian Nixon <ni...@fb.com>
Reviewers: hanm@apache.org, andor@apache.org
Closes #767 from enixon/learner-close-socket
---
.../java/org/apache/zookeeper/server/quorum/Follower.java | 6 +-----
.../main/java/org/apache/zookeeper/server/quorum/Learner.java | 11 +++++++++++
.../java/org/apache/zookeeper/server/quorum/Observer.java | 6 +-----
3 files changed, 13 insertions(+), 10 deletions(-)
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 49280d3..7dcc9cf 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 @@ public class Follower extends Learner{
}
} 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 307b644..b5865f8 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 class Learner {
self.setZooKeeperServer(null);
self.closeAllConnections();
self.adminServer.setZooKeeperServer(null);
+ closeSocket();
// shutdown previous zookeeper
if (zk != null) {
zk.shutdown();
@@ -682,4 +683,14 @@ public class Learner {
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 b688e03..3792a04 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 @@ public class Observer extends Learner{
}
} 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();