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/branches/branch-2@1378229 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Aaron Myers 2012-08-28 17:02:33 +00:00
parent 5d74838376
commit a12b8e3d6c
2 changed files with 6 additions and 3 deletions

View File

@ -516,6 +516,9 @@ Release 2.0.1-alpha - UNRELEASED
HDFS-3856. TestHDFSServerPorts failure is causing surefire fork failure. HDFS-3856. TestHDFSServerPorts failure is causing surefire fork failure.
(eli) (eli)
HDFS-3860. HeartbeatManager#Monitor may wrongly hold the writelock of
namesystem. (Jing Zhao via atm)
BREAKDOWN OF HDFS-3042 SUBTASKS BREAKDOWN OF HDFS-3042 SUBTASKS
HDFS-2185. HDFS portion of ZK-based FailoverController (todd) HDFS-2185. HDFS portion of ZK-based FailoverController (todd)

View File

@ -223,10 +223,10 @@ class HeartbeatManager implements DatanodeStatistics {
if (!allAlive) { if (!allAlive) {
// acquire the fsnamesystem lock, and then remove the dead node. // acquire the fsnamesystem lock, and then remove the dead node.
namesystem.writeLock(); namesystem.writeLock();
try {
if (namesystem.isInSafeMode()) { if (namesystem.isInSafeMode()) {
return; return;
} }
try {
synchronized(this) { synchronized(this) {
dm.removeDeadDatanode(dead); dm.removeDeadDatanode(dead);
} }