Uploaded image for project: 'Phoenix'
  1. Phoenix
  2. PHOENIX-4933

DELETE FROM throws NPE when a local index is present

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 4.15.0, 4.14.1, 5.1.0
    • None
    • None

    Description

      Just ran into this. When a local index is present. DELETE FROM <table> throws the following NPE:

      Error: org.apache.phoenix.exception.PhoenixIOException: org.apache.hadoop.hbase.DoNotRetryIOException: TEST,,1537573236513.ef4b34358717193907bddb3a5bec3b26.: null
      at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:120)
      at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:86)
      at org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:195)
      at org.apache.phoenix.coprocessor.UngroupedAggregateRegionObserver.doPostScannerOpen(UngroupedAggregateRegionObserver.java:557)
      at org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.overrideDelegate(BaseScannerRegionObserver.java:239)
      at org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:287)
      at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2881)
      at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:3130)
      at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:36359)
      at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2369)
      at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124)
      at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:297)
      at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:277)
      Caused by: java.lang.NullPointerException
      at org.apache.phoenix.execute.TupleProjector.projectResults(TupleProjector.java:283)
      at org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:185)
      ... 10 more (state=08000,code=101)

      It fails here:

      long maxTS = tuple.getValue(0).getTimestamp();, because tuple.getValue(0) returns null.

      Attachments

        1. PHOENIX-4933-4.x-HBase-1.4.patch
          4 kB
          Lars Hofhansl
        2. PHOENIX-4933-test.txt
          1 kB
          Lars Hofhansl

        Issue Links

          Activity

            People

              larsh Lars Hofhansl
              larsh Lars Hofhansl
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: