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 2008/06/26 05:29:02 UTC
svn commit: r671711 - in /hadoop/hbase/trunk: CHANGES.txt
src/java/org/apache/hadoop/hbase/regionserver/HLog.java
Author: stack
Date: Wed Jun 25 20:29:02 2008
New Revision: 671711
URL: http://svn.apache.org/viewvc?rev=671711&view=rev
Log:
HBASE-709 Deadlock while rolling WAL-log while finishing flush
Modified:
hadoop/hbase/trunk/CHANGES.txt
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HLog.java
Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=671711&r1=671710&r2=671711&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Wed Jun 25 20:29:02 2008
@@ -67,6 +67,7 @@
HBASE-701 Showing bytes in log when should be String
HBASE-702 deleteall doesn't
HBASE-704 update new shell docs and commands on help menu
+ HBASE-709 Deadlock while rolling WAL-log while finishing flush
IMPROVEMENTS
Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HLog.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HLog.java?rev=671711&r1=671710&r2=671711&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HLog.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HLog.java Wed Jun 25 20:29:02 2008
@@ -393,23 +393,21 @@
try {
this.writer.append(logKey, logEdit);
} catch (IOException e) {
- LOG.error("Could not append to log. Opening new log. Exception: ", e);
- rollWriter();
- try {
- this.writer.append(logKey, logEdit);
- } catch (IOException e2) {
- LOG.fatal("Could not append to log the second time because " +
- e2.toString() + ", aborting.");
- throw e2;
- }
+ LOG.fatal("Could not append. Requesting close of log", e);
+ requestLogRoll();
+ throw e;
}
this.numEntries++;
}
}
if (this.numEntries > this.maxlogentries) {
- if (listener != null) {
- listener.logRollRequested();
- }
+ requestLogRoll();
+ }
+ }
+
+ private void requestLogRoll() {
+ if (this.listener != null) {
+ this.listener.logRollRequested();
}
}