Monani Mihir created PHOENIX-5070: ------------------------------------- Summary: NPE when upgrading Phoenix 4.13.0 to Phoenix 4.14.1 with hbase-1.x branch Key: PHOENIX-5070 URL: https://issues.apache.org/jira/browse/PHOENIX-5070 Project: Phoenix Issue Type: Bug Affects Versions: 4.14.1, 4.14.0 Reporter: Monani Mihir Assignee: Monani Mihir
PhoenixAccessController populates accessControllers during calls like loadTable before it checks if current user has all required permission for given Hbase table and schema. With Phoenix-4661 , We somehow removed this for only preGetTable func call. Because of this when we upgrade Phoenix from 4.13.0 to 4.14.1 , we get NPE for accessControllers in PhoenixAccessController#getUserPermissions. Here is exception stack trace :- {code:java} Caused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.DoNotRetryIOException): org.apache.hadoop.hbase.DoNotRetryIOException: java.lang.NullPointerException at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:109) at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.getTable(MetaDataEndpointImpl.java:598) at org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService.callMethod(MetaDataProtos.java:16357) at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:8354) at org.apache.hadoop.hbase.regionserver.RSRpcServices.execServiceOnRegion(RSRpcServices.java:2208) at org.apache.hadoop.hbase.regionserver.RSRpcServices.execService(RSRpcServices.java:2190) at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:35076) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2399) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124) at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:188) at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:168) Caused by: java.lang.NullPointerException at org.apache.phoenix.coprocessor.PhoenixAccessController$3.run(PhoenixAccessController.java:409) at org.apache.phoenix.coprocessor.PhoenixAccessController$3.run(PhoenixAccessController.java:403) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1760) at org.apache.hadoop.security.SecurityUtil.doAsUser(SecurityUtil.java:453) at org.apache.hadoop.security.SecurityUtil.doAsLoginUser(SecurityUtil.java:434) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.hbase.util.Methods.call(Methods.java:39) at org.apache.hadoop.hbase.security.User.runAsLoginUser(User.java:210) at org.apache.phoenix.coprocessor.PhoenixAccessController.getUserPermissions(PhoenixAccessController.java:403) at org.apache.phoenix.coprocessor.PhoenixAccessController.requireAccess(PhoenixAccessController.java:482) at org.apache.phoenix.coprocessor.PhoenixAccessController.preGetTable(PhoenixAccessController.java:104) at org.apache.phoenix.coprocessor.PhoenixMetaDataCoprocessorHost$1.call(PhoenixMetaDataCoprocessorHost.java:161) at org.apache.phoenix.coprocessor.PhoenixMetaDataCoprocessorHost.execOperation(PhoenixMetaDataCoprocessorHost.java:81) at org.apache.phoenix.coprocessor.PhoenixMetaDataCoprocessorHost.preGetTable(PhoenixMetaDataCoprocessorHost.java:157) at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.getTable(MetaDataEndpointImpl.java:563) ... 9 more at org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1291) at org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:231) at org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:340) at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$BlockingStub.execService(ClientProtos.java:35542) at org.apache.hadoop.hbase.protobuf.ProtobufUtil.execService(ProtobufUtil.java:1734) ... 13 more {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)