You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2010/04/02 00:21:05 UTC

svn commit: r930113 - in /hadoop/hbase/branches/0.20: CHANGES.txt src/java/org/apache/hadoop/hbase/regionserver/HLog.java

Author: stack
Date: Thu Apr  1 22:21:05 2010
New Revision: 930113

URL: http://svn.apache.org/viewvc?rev=930113&view=rev
Log:
HBASE-2398 NPE in HLog.append when calling writer.getLength

Modified:
    hadoop/hbase/branches/0.20/CHANGES.txt
    hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/HLog.java

Modified: hadoop/hbase/branches/0.20/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/CHANGES.txt?rev=930113&r1=930112&r2=930113&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/CHANGES.txt (original)
+++ hadoop/hbase/branches/0.20/CHANGES.txt Thu Apr  1 22:21:05 2010
@@ -68,6 +68,9 @@ Release 0.20.4 - Unreleased
    HBASE-2337  log recovery: splitLog deletes old logs prematurely
                (Nicolas Spiegelberg via Stack)
    HBASE-2365  Double-assignment around split
+   HBASE-2398  NPE in HLog.append when calling writer.getLength
+               (Kannan Muthukkaruppan via Stack)
+            
 
   IMPROVEMENTS
    HBASE-2180  Bad read performance from synchronizing hfile.fddatainputstream

Modified: hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/HLog.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/HLog.java?rev=930113&r1=930112&r2=930113&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/HLog.java (original)
+++ hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/regionserver/HLog.java Thu Apr  1 22:21:05 2010
@@ -687,12 +687,6 @@ public class HLog implements HConstants,
 
     // sync txn to file system
     this.sync(isMetaRegion);
-
-    if (this.writer.getLength() > this.logrollsize) {
-      if (listener != null) {
-        listener.logRollRequested();
-      }
-    }
   }
 
   /**
@@ -746,10 +740,6 @@ public class HLog implements HConstants,
 
     // sync txn to file system
     this.sync(isMetaRegion);
-
-    if (this.writer.getLength() > this.logrollsize) {
-        requestLogRoll();
-    }
   }
 
   /**
@@ -859,6 +849,8 @@ public class HLog implements HConstants,
         return;
       }
 
+      boolean logRollRequested = false;
+
       if (this.forceSync ||
          this.unflushedEntries.get() >= this.flushlogentries) {
         try {
@@ -886,7 +878,8 @@ public class HLog implements HConstants,
                   "Found " + numCurrentReplicas + " replicas but expecting " +
                   this.initialReplication + " replicas. " +  
                   " Requesting close of hlog.");  
-            requestLogRoll();   
+              requestLogRoll();
+              logRollRequested = true;
             } 
           } catch (Exception e) {   
               LOG.warn("Unable to invoke DFSOutputStream.getNumCurrentReplicas" + e +
@@ -898,6 +891,10 @@ public class HLog implements HConstants,
           throw e;
         }
       }
+
+      if (!logRollRequested && (this.writer.getLength() > this.logrollsize)) {
+        requestLogRoll();
+      }
     }
   }