HBASE-2447 LogSyncer.addToSyncQueue doesn't check if syncer is still running before waiting
git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@937589 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c39d8f341a
commit
1982339473
|
@ -283,6 +283,8 @@ Release 0.21.0 - Unreleased
|
|||
(Benoit Sigoure via Stack)
|
||||
HBASE-2443 IPC client can throw NPE if socket creation fails
|
||||
(Todd Lipcon via Stack)
|
||||
HBASE-2447 LogSyncer.addToSyncQueue doesn't check if syncer is still
|
||||
running before waiting (Todd Lipcon via Stack)
|
||||
|
||||
IMPROVEMENTS
|
||||
HBASE-1760 Cleanup TODOs in HTable
|
||||
|
|
|
@ -1866,8 +1866,14 @@ public class HRegion implements HConstants, HeapSize { // , Writable{
|
|||
}
|
||||
results.clear();
|
||||
boolean returnResult = nextInternal(limit);
|
||||
if (!returnResult && filter != null && filter.filterRow()) {
|
||||
results.clear();
|
||||
if (!returnResult && filter != null) {
|
||||
// final chance to modify row contents
|
||||
returnResult = filter.filterRow(results);
|
||||
// final chance to drop the row... This may be superfluous with the addition of the above?
|
||||
// still needed for backwards compatibility however
|
||||
if (returnResult || filter.filterRow()) {
|
||||
results.clear();
|
||||
}
|
||||
}
|
||||
outResults.addAll(results);
|
||||
resetFilters();
|
||||
|
|
|
@ -742,6 +742,8 @@ public class HLog implements HConstants, Syncable {
|
|||
|
||||
private final long optionalFlushInterval;
|
||||
|
||||
private boolean syncerShuttingDown = false;
|
||||
|
||||
LogSyncer(long optionalFlushInterval) {
|
||||
this.optionalFlushInterval = optionalFlushInterval;
|
||||
}
|
||||
|
@ -778,6 +780,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");
|
||||
|
@ -796,6 +799,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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue