[
https://issues.apache.org/jira/browse/HBASE-13653?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14535938#comment-14535938
]
Ted Yu commented on HBASE-13653:
--------------------------------
The NPE happened shortly after region server started.
{code}
Fri May 8 08:44:11 UTC 2015 Starting regionserver on XX
core file size (blocks, -c) 0
...
2015-05-08 08:44:20,794 ERROR [B.defaultRpcServer.handler=0,queue=0,port=16020]
ipc.RpcServer: Unexpected throwable object
java.lang.NullPointerException
at
org.apache.hadoop.hbase.regionserver.HRegionServer.getWAL(HRegionServer.java:1825)
at
org.apache.hadoop.hbase.regionserver.RSRpcServices.warmupRegion(RSRpcServices.java:1559)
at
org.apache.hadoop.hbase.protobuf.generated.AdminProtos$AdminService$2.callBlockingMethod(AdminProtos.java:21997)
{code}
Here is related code:
{code}
} else {
wal = walFactory.getWAL(regionInfo.getEncodedNameAsBytes());
{code}
regionInfo was not null - there is check for that.
Looks like this exposed race condition when region server starts - walFactory
is initialized in handleReportForDutyResponse(), not in ctor or
initializeThreads().
In this scenario, RPC exposed NPE.
> Uninitialized HRegionServer#walFactory may result in NullPointerException at
> region server startup
> ---------------------------------------------------------------------------------------------------
>
> Key: HBASE-13653
> URL: https://issues.apache.org/jira/browse/HBASE-13653
> Project: HBase
> Issue Type: Bug
> Components: hbase
> Reporter: Romil Choksi
> Assignee: Ted Yu
>
> hbase --config /tmp/hbaseConf org.apache.hadoop.hbase.IntegrationTestIngest
> --monkey unbalance
> causes NPE
> {code}
> 2015-05-08 08:44:20,885 ERROR
> [B.defaultRpcServer.handler=28,queue=1,port=16000] master.ServerManager:
> Received exception in RPC for warmup
> server:RegionServer1,16020,1431074656202region: {ENCODED =>
> 40133c823b6d9d9dece99db1aad62730, NAME =>
> 'SYSTEM.SEQUENCE,2\x00\x00\x00,1431070054641.40133c823b6d9d9dece99db1aad62730.',
> STARTKEY => '2\x00\x00\x00', ENDKEY => '3\x00\x00\x00'}exception:
> java.io.IOException: java.io.IOException
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2154)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:101)
> at
> org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.NullPointerException
> at
> org.apache.hadoop.hbase.regionserver.HRegionServer.getWAL(HRegionServer.java:1825)
> at
> org.apache.hadoop.hbase.regionserver.RSRpcServices.warmupRegion(RSRpcServices.java:1559)
> at
> org.apache.hadoop.hbase.protobuf.generated.AdminProtos$AdminService$2.callBlockingMethod(AdminProtos.java:21997)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2112)
> ... 4 more
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)