[ https://issues.apache.org/jira/browse/HBASE-28452?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Duo Zhang updated HBASE-28452: ------------------------------ Component/s: IPC/RPC > Missing null check of rpcServer.scheduler.executor causes NPE with invalid > value of hbase.client.default.rpc.codec > ------------------------------------------------------------------------------------------------------------------ > > Key: HBASE-28452 > URL: https://issues.apache.org/jira/browse/HBASE-28452 > Project: HBase > Issue Type: Bug > Components: IPC/RPC > Reporter: ConfX > Priority: Major > Labels: pull-request-available > > When `hbase.client.default.rpc.codec` is set to > `org.apache.hadoop.hbase.regionserver.wal.SecureWALCellCodec` the method > `createRpcClientRTEDuringConnectionSetup` gives a NoSuchMethodException for > the provided default codec value. > > Since there was an exception, the code inside try block is not executed which > contained the below code line > {code:java} > try (AbstractRpcClient<?> client = > createRpcClientRTEDuringConnectionSetup(clientConf)) > { rpcServer.start(); . . . } > {code} > > When finally block is executed which contains > {code:java} > finally > { rpcServer.stop(); } > {code} > > The method `rpcServer.stop()` eventually makes call to `executor.shutdown()`. > A null pointer exception is returned as `rpcServer.scheduler.executor` was > never instantiated, which happens inside `rpcServer.start()` > > {code:java} > java.lang.NullPointerException > at org.apache.hadoop.hbase.ipc.FifoRpcScheduler.stop(FifoRpcScheduler.java:71) > at org.apache.hadoop.hbase.ipc.SimpleRpcServer.stop(SimpleRpcServer.java:441) > at > org.apache.hadoop.hbase.ipc.AbstractTestIPC.testRTEDuringConnectionSetup(AbstractTestIPC.java:194){code} > -- This message was sent by Atlassian Jira (v8.20.10#820010)