[ https://issues.apache.org/jira/browse/PHOENIX-5278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Saksham Gangwar updated PHOENIX-5278: ------------------------------------- Description: There have been scenarios similar to: deleting a tenant-specific view, recreating the same tenant-specific view with new columns and while querying the query fails with NPE over syscat due to corrupt data. View column count is changed but Phoenix syscat table did not properly update this info which causing querying the view always trigger null pointer exception. So the addition of this unit test will help us further debug the exact issue of corruption and give us confidence over this use case. Exception Stacktrace: org.apache.phoenix.exception.PhoenixIOException: org.apache.hadoop.hbase.DoNotRetryIOException: VIEW_NAME_ABC: at index 50 at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:111) at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.getTable(MetaDataEndpointImpl.java:566) at org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService.callMethod(MetaDataProtos.java:16267) at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:6143) at org.apache.hadoop.hbase.regionserver.HRegionServer.execServiceOnRegion(HRegionServer.java:3552) at org.apache.hadoop.hbase.regionserver.HRegionServer.execService(HRegionServer.java:3534) at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:32496) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2213) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:104) at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133) at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NullPointerException: at index 50 at com.google.common.collect.ObjectArrays.checkElementNotNull(ObjectArrays.java:191) at com.google.common.collect.ImmutableList.construct(ImmutableList.java:320) at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:290) at org.apache.phoenix.schema.PTableImpl.init(PTableImpl.java:548) at org.apache.phoenix.schema.PTableImpl.<init>(PTableImpl.java:421) at org.apache.phoenix.schema.PTableImpl.makePTable(PTableImpl.java:406) at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.getTable(MetaDataEndpointImpl.java:1015) at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.buildTable(MetaDataEndpointImpl.java:578) at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.doGetTable(MetaDataEndpointImpl.java:3220) at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.doGetTable(MetaDataEndpointImpl.java:3167) at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.getTable(MetaDataEndpointImpl.java:532) ... 10 more Related issue: https://issues.apache.org/jira/browse/PHOENIX-3377 was: There have been scenarios similar to: deleting a tenant-specific view, recreating the same tenant-specific view with new columns and while querying the query fails with NPE over syscat due to corrupt data. View column count is changed but Phoenix syscat table did not properly update this info which causing querying the view always trigger null pointer exception. So the addition of this unit test will help us further debug the exact issue of corruption and give us confidence over this use case. Exception Stacktrace: org.apache.phoenix.exception.PhoenixIOException: org.apache.hadoop.hbase.DoNotRetryIOException: VIEW_NAME_ABC: at index 50 at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:111) at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.getTable(MetaDataEndpointImpl.java:566) at org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService.callMethod(MetaDataProtos.java:16267) at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:6143) at org.apache.hadoop.hbase.regionserver.HRegionServer.execServiceOnRegion(HRegionServer.java:3552) at org.apache.hadoop.hbase.regionserver.HRegionServer.execService(HRegionServer.java:3534) at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:32496) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2213) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:104) at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133) at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NullPointerException: at index 50 at com.google.common.collect.ObjectArrays.checkElementNotNull(ObjectArrays.java:191) at com.google.common.collect.ImmutableList.construct(ImmutableList.java:320) at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:290) at org.apache.phoenix.schema.PTableImpl.init(PTableImpl.java:548) at org.apache.phoenix.schema.PTableImpl.<init>(PTableImpl.java:421) at org.apache.phoenix.schema.PTableImpl.makePTable(PTableImpl.java:406) at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.getTable(MetaDataEndpointImpl.java:1015) at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.buildTable(MetaDataEndpointImpl.java:578) at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.doGetTable(MetaDataEndpointImpl.java:3220) at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.doGetTable(MetaDataEndpointImpl.java:3167) at org.apache.phoenix.coprocessor.MetaDataEndpointImpl.getTable(MetaDataEndpointImpl.java:532) ... 10 more > Add unit test to make sure drop/recreate of tenant view with added columns > doesn't corrupt syscat > ------------------------------------------------------------------------------------------------- > > Key: PHOENIX-5278 > URL: https://issues.apache.org/jira/browse/PHOENIX-5278 > Project: Phoenix > Issue Type: Bug > Reporter: Saksham Gangwar > Priority: Minor > > There have been scenarios similar to: deleting a tenant-specific view, > recreating the same tenant-specific view with new columns and while querying > the query fails with NPE over syscat due to corrupt data. View column count > is changed but Phoenix syscat table did not properly update this info which > causing querying the view always trigger null pointer exception. So the > addition of this unit test will help us further debug the exact issue of > corruption and give us confidence over this use case. > Exception Stacktrace: > org.apache.phoenix.exception.PhoenixIOException: > org.apache.hadoop.hbase.DoNotRetryIOException: VIEW_NAME_ABC: at index 50 > at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:111) > at > org.apache.phoenix.coprocessor.MetaDataEndpointImpl.getTable(MetaDataEndpointImpl.java:566) > at > org.apache.phoenix.coprocessor.generated.MetaDataProtos$MetaDataService.callMethod(MetaDataProtos.java:16267) > at org.apache.hadoop.hbase.regionserver.HRegion.execService(HRegion.java:6143) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.execServiceOnRegion(HRegionServer.java:3552) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.execService(HRegionServer.java:3534) > at > org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:32496) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2213) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:104) > at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133) > at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108) > at java.lang.Thread.run(Thread.java:748) > Caused by: java.lang.NullPointerException: at index 50 > at > com.google.common.collect.ObjectArrays.checkElementNotNull(ObjectArrays.java:191) > at com.google.common.collect.ImmutableList.construct(ImmutableList.java:320) > at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:290) > at org.apache.phoenix.schema.PTableImpl.init(PTableImpl.java:548) > at org.apache.phoenix.schema.PTableImpl.<init>(PTableImpl.java:421) > at org.apache.phoenix.schema.PTableImpl.makePTable(PTableImpl.java:406) > at > org.apache.phoenix.coprocessor.MetaDataEndpointImpl.getTable(MetaDataEndpointImpl.java:1015) > at > org.apache.phoenix.coprocessor.MetaDataEndpointImpl.buildTable(MetaDataEndpointImpl.java:578) > at > org.apache.phoenix.coprocessor.MetaDataEndpointImpl.doGetTable(MetaDataEndpointImpl.java:3220) > at > org.apache.phoenix.coprocessor.MetaDataEndpointImpl.doGetTable(MetaDataEndpointImpl.java:3167) > at > org.apache.phoenix.coprocessor.MetaDataEndpointImpl.getTable(MetaDataEndpointImpl.java:532) > ... 10 more > > > Related issue: https://issues.apache.org/jira/browse/PHOENIX-3377 -- This message was sent by Atlassian JIRA (v7.6.3#76005)