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/24 06:16:20 UTC

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

Author: stack
Date: Sat Apr 24 04:16:17 2010
New Revision: 937588

URL: http://svn.apache.org/viewvc?rev=937588&view=rev
Log:
HBASE-2447 LogSyncer.addToSyncQueue doesn't check if syncer is still running before waiting

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=937588&r1=937587&r2=937588&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/CHANGES.txt (original)
+++ hadoop/hbase/branches/0.20/CHANGES.txt Sat Apr 24 04:16:17 2010
@@ -94,6 +94,8 @@ Release 0.20.4 - Unreleased
    HBASE-2443  IPC client can throw NPE if socket creation fails
                (Todd Lipcon via Stack)
    HBASE-2474  Bug in 2248 - mixed version reads (not allowed by spec)
+   HBASE-2447  LogSyncer.addToSyncQueue doesn't check if syncer is still
+               running before waiting (Todd Lipcon 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=937588&r1=937587&r2=937588&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 Sat Apr 24 04:16:17 2010
@@ -759,6 +759,8 @@ public class HLog implements HConstants,
 
     private final long optionalFlushInterval;
 
+    private boolean syncerShuttingDown = false;
+
     LogSyncer(long optionalFlushInterval) {
       this.optionalFlushInterval = optionalFlushInterval;
     }
@@ -795,6 +797,7 @@ public class HLog implements HConstants,
        } catch (InterruptedException e) {
          LOG.debug(getName() + "interrupted while waiting for sync requests");
        } finally {
+         syncerShuttingDown = true;
          syncDone.signalAll();
          lock.unlock();
          LOG.info(getName() + " exiting");
@@ -813,6 +816,10 @@ public class HLog implements HConstants,
        }
        lock.lock();
        try {
+         if (syncerShuttingDown) {
+           LOG.warn(getName() + " was shut down while waiting for sync");
+           return;
+         }
          if(force) {
            forceSync = true;
          }