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();
+ }
}
}