commit 2cfe32e5f27adffaca8723dfd91d666c9aace316 Author: todd Date: Wed Apr 14 12:21:40 2010 -0700 HBASE-2447. Check if syncer is still running before waiting on it diff --git src/java/org/apache/hadoop/hbase/regionserver/HLog.java src/java/org/apache/hadoop/hbase/regionserver/HLog.java index 04814a3..b6b4ecc 100644 --- src/java/org/apache/hadoop/hbase/regionserver/HLog.java +++ src/java/org/apache/hadoop/hbase/regionserver/HLog.java @@ -760,6 +760,8 @@ public class HLog implements HConstants, Syncable { private final long optionalFlushInterval; + private boolean syncerShuttingDown = false; + LogSyncer(long optionalFlushInterval) { this.optionalFlushInterval = optionalFlushInterval; } @@ -796,6 +798,7 @@ public class HLog implements HConstants, Syncable { } catch (InterruptedException e) { LOG.debug(getName() + "interrupted while waiting for sync requests"); } finally { + syncerShuttingDown = true; syncDone.signalAll(); lock.unlock(); LOG.info(getName() + " exiting"); @@ -814,6 +817,10 @@ public class HLog implements HConstants, Syncable { } lock.lock(); try { + if (syncerShuttingDown) { + LOG.warn(getName() + " was shut down while waiting for sync"); + return; + } if(force) { forceSync = true; }