You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Heng Chen (JIRA)" <ji...@apache.org> on 2015/08/21 15:09:45 UTC

[jira] [Commented] (HBASE-14278) Fix NPE that is showing up since HBASE-14274 went in

    [ https://issues.apache.org/jira/browse/HBASE-14278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14706718#comment-14706718 ] 

Heng Chen commented on HBASE-14278:
-----------------------------------

I reproduce the problem locally.  I think there is some risk in {{JmxCacheBusterRunnable.run}},  
{code}
        if (DefaultMetricsSystem.instance() != null) {
          DefaultMetricsSystem.instance().stop();
          DefaultMetricsSystem.instance().start();
        }
{code}
Maybe stop is not finished, but start is begin, so there are some conflicts.  

So i add {{Thread.sleep(1000)}} after {{DefaultMetricsSystem.instance().stop()}} and rerun testcase. NPE never appear!  
Hope it will help, and i will dig it too.

{code}
        if (DefaultMetricsSystem.instance() != null) {
          DefaultMetricsSystem.instance().stop();
          Thread.sleep(1000);
          DefaultMetricsSystem.instance().start();
        }
{code}


> Fix NPE that is showing up since HBASE-14274 went in
> ----------------------------------------------------
>
>                 Key: HBASE-14278
>                 URL: https://issues.apache.org/jira/browse/HBASE-14278
>             Project: HBase
>          Issue Type: Sub-task
>          Components: test
>    Affects Versions: 2.0.0, 1.2.0, 1.3.0
>            Reporter: stack
>
> Saw this in TestDistributedLogSplitting after HBASE-14274 was applied.
> {code}
> 119113 2015-08-20 15:31:10,704 WARN  [HBase-Metrics2-1] impl.MetricsConfig(124): Cannot locate configuration: tried hadoop-metrics2-hbase.properties,hadoop-metrics2.properties
> 119114 2015-08-20 15:31:10,710 ERROR [HBase-Metrics2-1] lib.MethodMetric$2(118): Error invoking method getBlocksTotal
> 119115 java.lang.reflect.InvocationTargetException
> 119116 ›   at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source)
> 119117 ›   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 119118 ›   at java.lang.reflect.Method.invoke(Method.java:606)
> 119119 ›   at org.apache.hadoop.metrics2.lib.MethodMetric$2.snapshot(MethodMetric.java:111)
> 119120 ›   at org.apache.hadoop.metrics2.lib.MethodMetric.snapshot(MethodMetric.java:144)
> 119121 ›   at org.apache.hadoop.metrics2.lib.MetricsRegistry.snapshot(MetricsRegistry.java:387)
> 119122 ›   at org.apache.hadoop.metrics2.lib.MetricsSourceBuilder$1.getMetrics(MetricsSourceBuilder.java:79)
> 119123 ›   at org.apache.hadoop.metrics2.impl.MetricsSourceAdapter.getMetrics(MetricsSourceAdapter.java:195)
> 119124 ›   at org.apache.hadoop.metrics2.impl.MetricsSourceAdapter.updateJmxCache(MetricsSourceAdapter.java:172)
> 119125 ›   at org.apache.hadoop.metrics2.impl.MetricsSourceAdapter.getMBeanInfo(MetricsSourceAdapter.java:151)
> 119126 ›   at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getNewMBeanClassName(DefaultMBeanServerInterceptor.java:333)
> 119127 ›   at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:319)
> 119128 ›   at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
> 119129 ›   at org.apache.hadoop.metrics2.util.MBeans.register(MBeans.java:57)
> 119130 ›   at org.apache.hadoop.metrics2.impl.MetricsSourceAdapter.startMBeans(MetricsSourceAdapter.java:221)
> 119131 ›   at org.apache.hadoop.metrics2.impl.MetricsSourceAdapter.start(MetricsSourceAdapter.java:96)
> 119132 ›   at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.registerSource(MetricsSystemImpl.java:245)
> 119133 ›   at org.apache.hadoop.metrics2.impl.MetricsSystemImpl$1.postStart(MetricsSystemImpl.java:229)
> 119134 ›   at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)
> 119135 ›   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 119136 ›   at java.lang.reflect.Method.invoke(Method.java:606)
> 119137 ›   at org.apache.hadoop.metrics2.impl.MetricsSystemImpl$3.invoke(MetricsSystemImpl.java:290)
> 119138 ›   at com.sun.proxy.$Proxy13.postStart(Unknown Source)
> 119139 ›   at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.start(MetricsSystemImpl.java:185)
> 119140 ›   at org.apache.hadoop.metrics2.impl.JmxCacheBuster$JmxCacheBusterRunnable.run(JmxCacheBuster.java:81)
> 119141 ›   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> 119142 ›   at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> 119143 ›   at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
> 119144 ›   at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
> 119145 ›   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> 119146 ›   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 119147 ›   at java.lang.Thread.run(Thread.java:744)
> 119148 Caused by: java.lang.NullPointerException
> 119149 ›   at org.apache.hadoop.hdfs.server.blockmanagement.BlocksMap.size(BlocksMap.java:198)
> 119150 ›   at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.getTotalBlocks(BlockManager.java:3158)
> 119151 ›   at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getBlocksTotal(FSNamesystem.java:5652)
> 119152 ›   ... 32 more
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)