From 8d724dd8b97cc4c10c03742eb359796c2f51b7a9 Mon Sep 17 00:00:00 2001 From: Aaron Myers Date: Tue, 28 Aug 2012 17:01:38 +0000 Subject: [PATCH] HDFS-3860. HeartbeatManager#Monitor may wrongly hold the writelock of namesystem. Contributed by Jing Zhao. git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1378228 13f79535-47bb-0310-9956-ffa450edef68 --- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++ .../hdfs/server/blockmanagement/HeartbeatManager.java | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 28f0c46cd1..42814c19fd 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -687,6 +687,9 @@ Branch-2 ( Unreleased changes ) HDFS-3856. TestHDFSServerPorts failure is causing surefire fork failure. (eli) + HDFS-3860. HeartbeatManager#Monitor may wrongly hold the writelock of + namesystem. (Jing Zhao via atm) + BREAKDOWN OF HDFS-3042 SUBTASKS HDFS-2185. HDFS portion of ZK-based FailoverController (todd) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/HeartbeatManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/HeartbeatManager.java index 73926010a4..449619ced7 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/HeartbeatManager.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/HeartbeatManager.java @@ -223,10 +223,10 @@ class HeartbeatManager implements DatanodeStatistics { if (!allAlive) { // acquire the fsnamesystem lock, and then remove the dead node. namesystem.writeLock(); - if (namesystem.isInSafeMode()) { - return; - } try { + if (namesystem.isInSafeMode()) { + return; + } synchronized(this) { dm.removeDeadDatanode(dead); }