You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by in...@apache.org on 2019/02/18 19:00:11 UTC
[hadoop] branch trunk updated: HDFS-14287. DataXceiverServer May
Double-Close PeerServer. Contributed by BELUGA BEHR.
This is an automated email from the ASF dual-hosted git repository.
inigoiri pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/trunk by this push:
new 235e3da HDFS-14287. DataXceiverServer May Double-Close PeerServer. Contributed by BELUGA BEHR.
235e3da is described below
commit 235e3da90a4212d0c204afaef09db3408abfab82
Author: Inigo Goiri <in...@apache.org>
AuthorDate: Mon Feb 18 11:00:04 2019 -0800
HDFS-14287. DataXceiverServer May Double-Close PeerServer. Contributed by BELUGA BEHR.
---
.../hadoop/hdfs/server/datanode/DataXceiverServer.java | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataXceiverServer.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataXceiverServer.java
index 8faae63..46cb21e 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataXceiverServer.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/DataXceiverServer.java
@@ -244,12 +244,17 @@ class DataXceiverServer implements Runnable {
}
// Close the server to stop reception of more requests.
+ lock.lock();
try {
- peerServer.close();
- closed = true;
+ if (!closed) {
+ peerServer.close();
+ closed = true;
+ }
} catch (IOException ie) {
LOG.warn("{}:DataXceiverServer: close exception",
datanode.getDisplayName(), ie);
+ } finally {
+ lock.unlock();
}
// if in restart prep stage, notify peers before closing them.
@@ -270,11 +275,16 @@ class DataXceiverServer implements Runnable {
assert (datanode.shouldRun == false || datanode.shutdownForUpgrade) :
"shoudRun should be set to false or restarting should be true"
+ " before killing";
+ lock.lock();
try {
- this.peerServer.close();
- this.closed = true;
+ if (!closed) {
+ peerServer.close();
+ closed = true;
+ }
} catch (IOException ie) {
LOG.warn("{}:DataXceiverServer.kill()", datanode.getDisplayName(), ie);
+ } finally {
+ lock.unlock();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org