HDFS-7660. BlockReceiver#close() might be called multiple times, which causes the fsvolume reference being released incorrectly. (Lei Xu via yliu)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/5f124efb Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/5f124efb Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/5f124efb Branch: refs/heads/YARN-2928 Commit: 5f124efb3e090f96f217bee22f3c8897f9772f14 Parents: aee4500 Author: yliu <y...@apache.org> Authored: Fri Jan 23 02:37:44 2015 +0800 Committer: yliu <y...@apache.org> Committed: Fri Jan 23 02:37:44 2015 +0800 ---------------------------------------------------------------------- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 4 ++++ .../org/apache/hadoop/hdfs/server/datanode/BlockReceiver.java | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/5f124efb/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 74eb160..9176ec7 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -768,6 +768,10 @@ Release 2.7.0 - UNRELEASED HDFS-3519. Checkpoint upload may interfere with a concurrent saveNamespace. (Ming Ma via cnauroth) + HDFS-7660. BlockReceiver#close() might be called multiple times, which + causes the fsvolume reference being released incorrectly. (Lei Xu via + yliu) + Release 2.6.1 - UNRELEASED INCOMPATIBLE CHANGES http://git-wip-us.apache.org/repos/asf/hadoop/blob/5f124efb/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockReceiver.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockReceiver.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockReceiver.java index 12041a6..3d37df5 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockReceiver.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockReceiver.java @@ -123,7 +123,7 @@ class BlockReceiver implements Closeable { private boolean syncOnClose; private long restartBudget; /** the reference of the volume where the block receiver writes to */ - private final ReplicaHandler replicaHandler; + private ReplicaHandler replicaHandler; /** * for replaceBlock response @@ -334,6 +334,7 @@ class BlockReceiver implements Closeable { } if (replicaHandler != null) { IOUtils.cleanup(null, replicaHandler); + replicaHandler = null; } if (measuredFlushTime) { datanode.metrics.addFlushNanos(flushTotalNanos);