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 ar...@apache.org on 2014/09/12 20:47:11 UTC
[28/41] git commit: HDFS-7042. Upgrade fails for Windows HA cluster
due to file locks held during rename in JournalNode. Contributed by Chris
Nauroth.
HDFS-7042. Upgrade fails for Windows HA cluster due to file locks held during rename in JournalNode. Contributed by Chris Nauroth.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/80ac6aab
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/80ac6aab
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/80ac6aab
Branch: refs/heads/HDFS-6581
Commit: 80ac6aabcea9f808fd55504cdaef2da7b50da7f1
Parents: c11ada5
Author: cnauroth <cn...@apache.org>
Authored: Thu Sep 11 12:16:19 2014 -0700
Committer: cnauroth <cn...@apache.org>
Committed: Thu Sep 11 12:16:19 2014 -0700
----------------------------------------------------------------------
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++
.../java/org/apache/hadoop/hdfs/qjournal/server/Journal.java | 8 +++++++-
.../java/org/apache/hadoop/hdfs/util/BestEffortLongFile.java | 1 +
3 files changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/80ac6aab/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
index 4c9dbaf..a11371a 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -751,6 +751,9 @@ Release 2.6.0 - UNRELEASED
HDFS-6776. Using distcp to copy data between insecure and secure cluster via webdhfs
doesn't work. (yzhangal via tucu)
+ HDFS-7042. Upgrade fails for Windows HA cluster due to file locks held during
+ rename in JournalNode. (cnauroth)
+
Release 2.5.1 - UNRELEASED
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/80ac6aab/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/Journal.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/Journal.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/Journal.java
index b36e547..c79e269 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/Journal.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/Journal.java
@@ -988,6 +988,9 @@ public class Journal implements Closeable {
}
public synchronized void doPreUpgrade() throws IOException {
+ // Do not hold file lock on committedTxnId, because the containing
+ // directory will be renamed. It will be reopened lazily on next access.
+ committedTxnId.close();
storage.getJournalManager().doPreUpgrade();
}
@@ -1037,7 +1040,10 @@ public class Journal implements Closeable {
targetLayoutVersion);
}
- public void doRollback() throws IOException {
+ public synchronized void doRollback() throws IOException {
+ // Do not hold file lock on committedTxnId, because the containing
+ // directory will be renamed. It will be reopened lazily on next access.
+ committedTxnId.close();
storage.getJournalManager().doRollback();
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/80ac6aab/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/util/BestEffortLongFile.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/util/BestEffortLongFile.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/util/BestEffortLongFile.java
index b2626e9..2fdf547 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/util/BestEffortLongFile.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/util/BestEffortLongFile.java
@@ -112,6 +112,7 @@ public class BestEffortLongFile implements Closeable {
public void close() throws IOException {
if (ch != null) {
ch.close();
+ ch = null;
}
}
}