[
https://issues.apache.org/jira/browse/HBASE-28452?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ConfX updated HBASE-28452:
--------------------------
Description:
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}
was:
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
``` java
try (AbstractRpcClient<?> client =
createRpcClientRTEDuringConnectionSetup(clientConf)) {
rpcServer.start();
. . .
}
```
When finally block is executed which contains
```java
finally {
rpcServer.stop();
}
```
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()`
```
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)
. . .
```
> 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
> Reporter: ConfX
> Priority: Major
>
> 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)