HBASE-15999 NPE in MemstoreCompactor (Ram)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/f19f1d9e Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/f19f1d9e Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/f19f1d9e Branch: refs/heads/hbase-12439 Commit: f19f1d9e99c8058f6ef5caa42c1b07a8ae1de53f Parents: 158568e Author: Ramkrishna <[email protected]> Authored: Thu Jun 16 10:06:40 2016 +0530 Committer: Ramkrishna <[email protected]> Committed: Thu Jun 16 10:06:40 2016 +0530 ---------------------------------------------------------------------- .../hadoop/hbase/regionserver/CompactingMemStore.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/f19f1d9e/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactingMemStore.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactingMemStore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactingMemStore.java index d47ac36..ec5684d 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactingMemStore.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactingMemStore.java @@ -253,10 +253,11 @@ public class CompactingMemStore extends AbstractMemStore { * in exclusive mode while this method (checkActiveSize) is invoked holding updatesLock * in the shared mode. */ InMemoryFlushRunnable runnable = new InMemoryFlushRunnable(); - LOG.info("Dispatching the MemStore in-memory flush for store " + store.getColumnFamilyName()); + if (LOG.isTraceEnabled()) { + LOG.trace( + "Dispatching the MemStore in-memory flush for store " + store.getColumnFamilyName()); + } getPool().execute(runnable); - // guard against queuing same old compactions over and over again - inMemoryFlushInProgress.set(true); } } @@ -277,10 +278,9 @@ public class CompactingMemStore extends AbstractMemStore { } // Phase II: Compact the pipeline try { - if (allowCompaction.get()) { + if (allowCompaction.get() && inMemoryFlushInProgress.compareAndSet(false, true)) { // setting the inMemoryFlushInProgress flag again for the case this method is invoked // directly (only in tests) in the common path setting from true to true is idempotent - inMemoryFlushInProgress.set(true); // Speculative compaction execution, may be interrupted if flush is forced while // compaction is in progress compactor.startCompaction();
