From 6ef30552db703ab271e75f0a70165e36d914fea8 Mon Sep 17 00:00:00 2001 From: Daryn Sharp Date: Tue, 13 Nov 2012 15:31:17 +0000 Subject: [PATCH] svn merge -c 1408779 FIXES: HDFS-4181. LeaseManager tries to double remove and prints extra messages (Kihwal Lee via daryn) git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1408780 13f79535-47bb-0310-9956-ffa450edef68 --- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++ .../hdfs/server/namenode/LeaseManager.java | 17 +++++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 523875b49bb..471ab01b483 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -1697,6 +1697,9 @@ Release 0.23.5 - UNRELEASED HDFS-3990. NN's health report has severe performance problems (daryn) + HDFS-4181. LeaseManager tries to double remove and prints extra messages + (Kihwal Lee via daryn) + BUG FIXES HDFS-3829. TestHftpURLTimeouts fails intermittently with JDK7 (Trevor diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/LeaseManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/LeaseManager.java index 4dbee88d6fa..13fff598f46 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/LeaseManager.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/LeaseManager.java @@ -135,7 +135,9 @@ synchronized Lease addLease(String holder, String src) { synchronized void removeLease(Lease lease, String src) { sortedLeasesByPath.remove(src); if (!lease.removePath(src)) { - LOG.error(src + " not found in lease.paths (=" + lease.paths + ")"); + if (LOG.isDebugEnabled()) { + LOG.debug(src + " not found in lease.paths (=" + lease.paths + ")"); + } } if (!lease.hasPath()) { @@ -440,11 +442,14 @@ private synchronized void checkLeases() { oldest.getPaths().toArray(leasePaths); for(String p : leasePaths) { try { - if(fsnamesystem.internalReleaseLease(oldest, p, HdfsServerConstants.NAMENODE_LEASE_HOLDER)) { - LOG.info("Lease recovery for " + p + " is complete. File closed."); - removing.add(p); - } else { - LOG.info("Started block recovery " + p + " lease " + oldest); + boolean completed = fsnamesystem.internalReleaseLease(oldest, p, + HdfsServerConstants.NAMENODE_LEASE_HOLDER); + if (LOG.isDebugEnabled()) { + if (completed) { + LOG.debug("Lease recovery for " + p + " is complete. File closed."); + } else { + LOG.debug("Started block recovery " + p + " lease " + oldest); + } } } catch (IOException e) { LOG.error("Cannot release the path " + p + " in the lease "