Преглед на файлове

HDFS-2803. Add logging to LeaseRenewer for better lease expiration debugging. Contributed by Jimmy Xiang.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.23@1233452 13f79535-47bb-0310-9956-ffa450edef68
Todd Lipcon преди 13 години
родител
ревизия
bf4d10ac30

+ 3 - 0
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt

@@ -89,6 +89,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)

+ 24 - 0
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/LeaseRenewer.java

@@ -292,6 +292,10 @@ class LeaseRenewer {
           @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 @@ class LeaseRenewer {
               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 @@ class LeaseRenewer {
       if (!c.getClientName().equals(previousName)) {
         c.renewLease();
         previousName = c.getClientName();
+        if (LOG.isDebugEnabled()) {
+          LOG.debug("Lease renewed for client " + previousName);
+        }
       }
     }
   }
@@ -416,6 +427,10 @@ class LeaseRenewer {
       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 @@ class LeaseRenewer {
 
       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;
         }