diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MetricsExecutorImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MetricsExecutorImpl.java index c38160974160..0a83a5e8b02d 100644 --- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MetricsExecutorImpl.java +++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/metrics2/lib/MetricsExecutorImpl.java @@ -48,7 +48,7 @@ public void stop() { private enum ExecutorSingleton { INSTANCE; - private final ScheduledExecutorService scheduler = new ScheduledThreadPoolExecutor(1, + private transient final ScheduledExecutorService scheduler = new ScheduledThreadPoolExecutor(1, new ThreadPoolExecutorThreadFactory("HBase-Metrics2-")); } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java index d667786c97e0..f7abe2ac3c91 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java @@ -7812,11 +7812,15 @@ public Result append(Append mutate, long nonceGroup, long nonce) throws IOExcept for (Map.Entry> entry : removedCellsForMemStore.entrySet()) { Store currStore = entry.getKey(); for (Cell cell: entry.getValue()) { - CellUtil.setSequenceId(cell, walKey.getWriteEntry().getWriteNumber()); + if (we != null) { + CellUtil.setSequenceId(cell, we.getWriteNumber()); + } currStore.add(cell); } } - if (we != null) mvcc.complete(we); + if (we != null) { + mvcc.complete(we); + } } else if (we != null) { mvcc.completeAndWait(we); } @@ -8042,6 +8046,7 @@ private Result doIncrement(Increment increment, long nonceGroup, long nonce) thr rowLock.release(); } // if the wal sync was unsuccessful, remove keys from memstore + WriteEntry we = walKey != null ? walKey.getWriteEntry() : null; if (doRollBackMemstore) { for (Map.Entry> entry : forMemStore.entrySet()) { rollbackMemstore(entry.getKey(), entry.getValue()); @@ -8049,13 +8054,19 @@ private Result doIncrement(Increment increment, long nonceGroup, long nonce) thr for (Map.Entry> entry : removedCellsForMemStore.entrySet()) { Store currStore = entry.getKey(); for (Cell cell : entry.getValue()) { - CellUtil.setSequenceId(cell, walKey.getWriteEntry().getWriteNumber()); + if (we != null) { + CellUtil.setSequenceId(cell, we.getWriteNumber()); + } currStore.add(cell); } } - if (walKey != null) mvcc.complete(walKey.getWriteEntry()); + if (we != null) { + mvcc.complete(we); + } } else { - if (walKey != null) mvcc.completeAndWait(walKey.getWriteEntry()); + if (we != null) { + mvcc.completeAndWait(we); + } } } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java index 08dc3f853827..764099f270e2 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java @@ -2806,10 +2806,14 @@ private void removeCompactedfiles(Collection compactedfiles) // Just close and return filesToRemove.add(file); } else { - LOG.info("Can't archive compacted file " + file.getPath() + if (r != null) { + LOG.info("Can't archive compacted file " + file.getPath() + " because of either isCompactedAway=" + r.isCompactedAway() + " or file has reference, isReferencedInReads=" + r.isReferencedInReads() + ", refCount=" + r.getRefCount() + ", skipping for now."); + } else { + LOG.info("Can't archive compacted file " + file.getPath() + ", skipping for now."); + } } } catch (Exception e) { LOG.error( diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java index c0655d8d4e8e..7c17db9d643b 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java @@ -35,6 +35,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Random; import java.util.Set; import java.util.TreeSet; @@ -1089,7 +1090,8 @@ public void run() { } } Map actualReadTableLatency = regionSink.getReadLatencyMap(); - for (String tableName : this.configuredReadTableTimeouts.keySet()) { + for (Entry entry : this.configuredReadTableTimeouts.entrySet()) { + String tableName = entry.getKey(); if (actualReadTableLatency.containsKey(tableName)) { Long actual = actualReadTableLatency.get(tableName).longValue(); Long configured = this.configuredReadTableTimeouts.get(tableName);