[ 
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)

Reply via email to