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 2009/12/04 19:37:01 UTC
svn commit: r887314 - in /hadoop/hbase/trunk: CHANGES.txt
src/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java
Author: stack
Date: Fri Dec 4 18:37:00 2009
New Revision: 887314
URL: http://svn.apache.org/viewvc?rev=887314&view=rev
Log:
HBASE-1994 Master will lose hlog entries while splitting if region has empty oldlogfile.log
Modified:
hadoop/hbase/trunk/CHANGES.txt
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java
Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=887314&r1=887313&r2=887314&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Fri Dec 4 18:37:00 2009
@@ -119,6 +119,8 @@
HBASE-1997 zk tick time bounds maximum zk session time
HBASE-2003 [shell] deleteall ignores column if specified
HBASE-2018 Updates to .META. blocked under high MemStore load
+ HBASE-1994 Master will lose hlog entries while splitting if region has
+ empty oldlogfile.log (Lars George via Stack)
IMPROVEMENTS
HBASE-1760 Cleanup TODOs in HTable
Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java?rev=887314&r1=887313&r2=887314&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/wal/HLog.java Fri Dec 4 18:37:00 2009
@@ -1158,11 +1158,18 @@
Path oldlogfile = null;
SequenceFile.Reader old = null;
if (fs.exists(logfile)) {
- LOG.warn("Old hlog file " + logfile
- + " already exists. Copying existing file to new file");
- oldlogfile = new Path(logfile.toString() + ".old");
- fs.rename(logfile, oldlogfile);
- old = new SequenceFile.Reader(fs, oldlogfile, conf);
+ FileStatus stat = fs.getFileStatus(logfile);
+ if (stat.getLen() <= 0) {
+ LOG.warn("Old hlog file " + logfile + " is zero " +
+ "length. Deleting existing file");
+ fs.delete(logfile, false);
+ } else {
+ LOG.warn("Old hlog file " + logfile + " already " +
+ "exists. Copying existing file to new file");
+ oldlogfile = new Path(logfile.toString() + ".old");
+ fs.rename(logfile, oldlogfile);
+ old = new SequenceFile.Reader(fs, oldlogfile, conf);
+ }
}
SequenceFile.Writer w =
SequenceFile.createWriter(fs, conf, logfile,