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

IllegalStateException: requestSeek cannot be called on ReversedKeyValueHeap

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.14.0, 5.0.0
    • Labels:
      None

      Description

      Steps to reproduce are as follows:

      1. Create a table with multiple column families

      CREATE TABLE TBL (
        COL1 VARCHAR NOT NULL,
        COL2 VARCHAR NOT NULL,
        COL3 VARCHAR,
        FAM.COL4 VARCHAR,
        CONSTRAINT TRADE_EVENT_PK PRIMARY KEY (COL1, COL2)
      )
      

      2. Upsert a row

      UPSERT INTO TBL (COL1, COL2) values ('AAA', 'BBB')
      

      3. Query with DESC for the table

      SELECT * FROM TBL WHERE COL2 = 'BBB' ORDER BY COL1 DESC
      

      By following the above steps, we face the following exception.

      java.util.concurrent.ExecutionException: org.apache.phoenix.exception.PhoenixIOException: org.apache.hadoop.hbase.DoNotRetryIOException: TBL,,1521251842845.153781990c0fb4bc34e3f2c721a6f415.: requestSeek cannot be called on ReversedKeyValueHeap
      	at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:96)
      	at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:62)
      	at org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:212)
      	at org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
      	at org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
      	at org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:294)
      	at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2808)
      	at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:3045)
      	at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:36613)
      	at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2352)
      	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.IllegalStateException: requestSeek cannot be called on ReversedKeyValueHeap
      	at org.apache.hadoop.hbase.regionserver.ReversedKeyValueHeap.requestSeek(ReversedKeyValueHeap.java:65)
      	at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.joinedHeapMayHaveData(HRegion.java:6485)
      	at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextInternal(HRegion.java:6412)
      	at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:6126)
      	at org.apache.hadoop.hbase.regionserver.HRegion$RegionScannerImpl.nextRaw(HRegion.java:6112)
      	at org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:175)
      	... 10 more
      

        Attachments

        1. PHOENIX-4658-v2.patch
          10 kB
          Toshihiro Suzuki
        2. PHOENIX-4658.patch
          5 kB
          Toshihiro Suzuki
        3. PHOENIX-4658.patch
          5 kB
          Toshihiro Suzuki
        4. PHOENIX-4658.patch
          5 kB
          Toshihiro Suzuki

          Issue Links

            Activity

              People

              • Assignee:
                brfrn169 Toshihiro Suzuki
                Reporter:
                brfrn169 Toshihiro Suzuki
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: