diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index ce14733eeea..7e09c47a884 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -266,6 +266,9 @@ Release 0.23.1 - UNRELEASED not use ArrayWritable for writing non-array items. (Uma Maheswara Rao G via szetszwo) + HDFS-2803. Add logging to LeaseRenewer for better lease expiration debugging. + (Jimmy Xiang via todd) + OPTIMIZATIONS HDFS-2130. Switch default checksum to CRC32C. (todd) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/LeaseRenewer.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/LeaseRenewer.java index 35d45bac322..14b9c9a3b72 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/LeaseRenewer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/LeaseRenewer.java @@ -292,6 +292,10 @@ synchronized void put(final String src, final DFSOutputStream out, @Override public void run() { try { + if (LOG.isDebugEnabled()) { + LOG.debug("Lease renewer daemon for " + clientsString() + + " with renew id " + id + " started"); + } LeaseRenewer.this.run(id); } catch(InterruptedException e) { if (LOG.isDebugEnabled()) { @@ -302,6 +306,10 @@ public void run() { synchronized(LeaseRenewer.this) { Factory.INSTANCE.remove(LeaseRenewer.this); } + if (LOG.isDebugEnabled()) { + LOG.debug("Lease renewer daemon for " + clientsString() + + " with renew id " + id + " exited"); + } } } @@ -401,6 +409,9 @@ public int compare(final DFSClient left, final DFSClient right) { if (!c.getClientName().equals(previousName)) { c.renewLease(); previousName = c.getClientName(); + if (LOG.isDebugEnabled()) { + LOG.debug("Lease renewed for client " + previousName); + } } } } @@ -416,6 +427,10 @@ private void run(final int id) throws InterruptedException { if (System.currentTimeMillis() - lastRenewed >= getRenewalTime()) { try { renew(); + if (LOG.isDebugEnabled()) { + LOG.debug("Lease renewer daemon for " + clientsString() + + " with renew id " + id + " executed"); + } lastRenewed = System.currentTimeMillis(); } catch (SocketTimeoutException ie) { LOG.warn("Failed to renew lease for " + clientsString() + " for " @@ -435,6 +450,15 @@ private void run(final int id) throws InterruptedException { synchronized(this) { if (id != currentId || isRenewerExpired()) { + if (LOG.isDebugEnabled()) { + if (id != currentId) { + LOG.debug("Lease renewer daemon for " + clientsString() + + " with renew id " + id + " is not current"); + } else { + LOG.debug("Lease renewer daemon for " + clientsString() + + " with renew id " + id + " expired"); + } + } //no longer the current daemon or expired return; }