hbase git commit: HBASE-21136 NPE in MetricsTableSourceImpl.updateFlushTime
Repository: hbase Updated Branches: refs/heads/branch-2 1a324e3a7 -> 68c5313ca HBASE-21136 NPE in MetricsTableSourceImpl.updateFlushTime Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/68c5313c Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/68c5313c Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/68c5313c Branch: refs/heads/branch-2 Commit: 68c5313ca43ecd1fc27873da3cd3a1bbb8510e88 Parents: 1a324e3 Author: zhangduo Authored: Sat Sep 1 20:00:35 2018 +0800 Committer: zhangduo Committed: Sun Sep 2 18:32:24 2018 +0800 -- .../MetricsTableAggregateSourceImpl.java| 28 + .../regionserver/MetricsTableSourceImpl.java| 33 ++- .../regionserver/TestMetricsTableAggregate.java | 44 +++- 3 files changed, 64 insertions(+), 41 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/68c5313c/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java -- diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java index 363ddd2..5133a96 100644 --- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java +++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java @@ -48,19 +48,15 @@ public class MetricsTableAggregateSourceImpl extends BaseSourceImpl } private void register(MetricsTableSource source) { -synchronized (this) { - source.registerMetrics(); -} +source.registerMetrics(); } @Override public void deleteTableSource(String table) { try { - synchronized (this) { -MetricsTableSource source = tableSources.remove(table); -if (source != null) { - source.close(); -} + MetricsTableSource source = tableSources.remove(table); + if (source != null) { +source.close(); } } catch (Exception e) { // Ignored. If this errors out it means that someone is double @@ -76,17 +72,13 @@ public class MetricsTableAggregateSourceImpl extends BaseSourceImpl if (source != null) { return source; } -source = CompatibilitySingletonFactory.getInstance(MetricsRegionServerSourceFactory.class) - .createTable(table, wrapper); -MetricsTableSource prev = tableSources.putIfAbsent(table, source); - -if (prev != null) { - return prev; -} else { +MetricsTableSource newSource = CompatibilitySingletonFactory + .getInstance(MetricsRegionServerSourceFactory.class).createTable(table, wrapper); +return tableSources.computeIfAbsent(table, k -> { // register the new metrics now - register(source); -} -return source; + newSource.registerMetrics(); + return newSource; +}); } /** http://git-wip-us.apache.org/repos/asf/hbase/blob/68c5313c/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java -- diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java index da78a2c..0807479 100644 --- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java +++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java @@ -15,21 +15,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.hadoop.hbase.regionserver; -import java.util.concurrent.atomic.AtomicBoolean; - -import org.apache.hadoop.hbase.TableName; -import org.apache.hadoop.hbase.metrics.Interns; -import org.apache.hadoop.metrics2.MetricsRecordBuilder; -import org.apache.hadoop.metrics2.MetricHistogram; -import org.apache.hadoop.metrics2.lib.DynamicMetricsRegistry; -import org.apache.hadoop.metrics2.lib.MutableFastCounter; -import org.apache.yetus.audience.InterfaceAudience; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import static org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.COMPACTED_INPUT_BYTES; import static org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.COMPACTED_INPUT_BYTES_DESC; import static org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.COMPACTED_OUTPUT_BYTES; @@ -74,6 +61,17 @@ import static
hbase git commit: HBASE-21136 NPE in MetricsTableSourceImpl.updateFlushTime
Repository: hbase Updated Branches: refs/heads/master 9c09efc0d -> dc7902996 HBASE-21136 NPE in MetricsTableSourceImpl.updateFlushTime Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/dc790299 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/dc790299 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/dc790299 Branch: refs/heads/master Commit: dc79029966c72f6c46add8c382e118308609cc81 Parents: 9c09efc Author: zhangduo Authored: Sat Sep 1 20:00:35 2018 +0800 Committer: zhangduo Committed: Sun Sep 2 18:35:45 2018 +0800 -- .../MetricsTableAggregateSourceImpl.java| 28 + .../regionserver/MetricsTableSourceImpl.java| 33 ++- .../regionserver/TestMetricsTableAggregate.java | 44 +++- 3 files changed, 64 insertions(+), 41 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/dc790299/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java -- diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java index 363ddd2..5133a96 100644 --- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java +++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.java @@ -48,19 +48,15 @@ public class MetricsTableAggregateSourceImpl extends BaseSourceImpl } private void register(MetricsTableSource source) { -synchronized (this) { - source.registerMetrics(); -} +source.registerMetrics(); } @Override public void deleteTableSource(String table) { try { - synchronized (this) { -MetricsTableSource source = tableSources.remove(table); -if (source != null) { - source.close(); -} + MetricsTableSource source = tableSources.remove(table); + if (source != null) { +source.close(); } } catch (Exception e) { // Ignored. If this errors out it means that someone is double @@ -76,17 +72,13 @@ public class MetricsTableAggregateSourceImpl extends BaseSourceImpl if (source != null) { return source; } -source = CompatibilitySingletonFactory.getInstance(MetricsRegionServerSourceFactory.class) - .createTable(table, wrapper); -MetricsTableSource prev = tableSources.putIfAbsent(table, source); - -if (prev != null) { - return prev; -} else { +MetricsTableSource newSource = CompatibilitySingletonFactory + .getInstance(MetricsRegionServerSourceFactory.class).createTable(table, wrapper); +return tableSources.computeIfAbsent(table, k -> { // register the new metrics now - register(source); -} -return source; + newSource.registerMetrics(); + return newSource; +}); } /** http://git-wip-us.apache.org/repos/asf/hbase/blob/dc790299/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java -- diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java index 9ac62cd..3da16b8 100644 --- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java +++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java @@ -15,21 +15,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.hadoop.hbase.regionserver; -import java.util.concurrent.atomic.AtomicBoolean; - -import org.apache.hadoop.hbase.TableName; -import org.apache.hadoop.hbase.metrics.Interns; -import org.apache.hadoop.metrics2.MetricsRecordBuilder; -import org.apache.hadoop.metrics2.MetricHistogram; -import org.apache.hadoop.metrics2.lib.DynamicMetricsRegistry; -import org.apache.hadoop.metrics2.lib.MutableFastCounter; -import org.apache.yetus.audience.InterfaceAudience; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import static org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.COMPACTED_INPUT_BYTES; import static org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.COMPACTED_INPUT_BYTES_DESC; import static org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource.COMPACTED_OUTPUT_BYTES; @@ -74,6 +61,17 @@ import static