[ https://issues.apache.org/jira/browse/PHOENIX-7524?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Palash Chauhan updated PHOENIX-7524: ------------------------------------ Description: Steps to reproduce {code:java} conn.createStatement().execute("CREATE TABLE IF NOT EXISTS MYTABLE (k VARCHAR NOT NULL PRIMARY KEY, v1 INTEGER, v2 INTEGER)"); conn.createStatement().execute("CREATE CDC CDC_MYTABLE ON MYTABLE"); conn.createStatement().executeUpdate("UPSERT INTO MYTABLE VALUES ('a', 1, 2)"); conn.commit(); ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM CDC_MYTABLE WHERE PHOENIX_ROW_TIMESTAMP() > CURRENT_TIME() LIMIT 1 OFFSET 1"); while (rs.next()) { }{code} Error: {code:java} org.apache.phoenix.exception.PhoenixIOException: org.apache.hadoop.hbase.DoNotRetryIOException: PHOENIX_CDC_INDEX_CDC_MYTABLE,,1738877812042.2c10806ae665db7e6da9613791d9298f.: Index 0 out of bounds for length 0 at org.apache.phoenix.util.ClientUtil.createIOException(ClientUtil.java:174) at org.apache.phoenix.util.ClientUtil.throwIOException(ClientUtil.java:182) at org.apache.phoenix.iterate.NonAggregateRegionScannerFactory$1.next(NonAggregateRegionScannerFactory.java:523) at org.apache.phoenix.iterate.NonAggregateRegionScannerFactory$1.nextRaw(NonAggregateRegionScannerFactory.java:531) at org.apache.phoenix.coprocessor.DelegateRegionScanner.next(DelegateRegionScanner.java:110) at org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:77) at org.apache.phoenix.coprocessor.DelegateRegionScanner.next(DelegateRegionScanner.java:110) at org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:77) at org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:271) at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:3402) at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:3668) at org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:45006) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:415) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124) at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:102) at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:82) Caused by: java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0 at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) at java.base/java.util.Objects.checkIndex(Objects.java:372) at java.base/java.util.ArrayList.get(ArrayList.java:459) at org.apache.phoenix.schema.tuple.MultiKeyValueTuple.getKey(MultiKeyValueTuple.java:51) at org.apache.phoenix.iterate.NonAggregateRegionScannerFactory.getOffsetKvWithLastScannedRowKey(NonAggregateRegionScannerFactory.java:570) at org.apache.phoenix.iterate.NonAggregateRegionScannerFactory.access$000(NonAggregateRegionScannerFactory.java:95) at org.apache.phoenix.iterate.NonAggregateRegionScannerFactory$1.next(NonAggregateRegionScannerFactory.java:507) ... 13 more {code} was: Steps to reproduce {code:java} conn.createStatement().execute("CREATE TABLE IF NOT EXISTS MYTABLE (k VARCHAR NOT NULL PRIMARY KEY, v1 INTEGER, v2 INTEGER)"); conn.createStatement().execute("CREATE CDC CDC_MYTABLE ON MYTABLE"); conn.createStatement().executeUpdate("UPSERT INTO MYTABLE VALUES ('a', 1, 2)"); conn.commit(); {code} Error: {code:java} org.apache.phoenix.exception.PhoenixIOException: org.apache.hadoop.hbase.DoNotRetryIOException: PHOENIX_CDC_INDEX_CDC_MYTABLE,,1738877812042.2c10806ae665db7e6da9613791d9298f.: Index 0 out of bounds for length 0 at org.apache.phoenix.util.ClientUtil.createIOException(ClientUtil.java:174) at org.apache.phoenix.util.ClientUtil.throwIOException(ClientUtil.java:182) at org.apache.phoenix.iterate.NonAggregateRegionScannerFactory$1.next(NonAggregateRegionScannerFactory.java:523) at org.apache.phoenix.iterate.NonAggregateRegionScannerFactory$1.nextRaw(NonAggregateRegionScannerFactory.java:531) at org.apache.phoenix.coprocessor.DelegateRegionScanner.next(DelegateRegionScanner.java:110) at org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:77) at org.apache.phoenix.coprocessor.DelegateRegionScanner.next(DelegateRegionScanner.java:110) at org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:77) at org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:271) at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:3402) at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:3668) at org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:45006) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:415) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124) at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:102) at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:82) Caused by: java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0 at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) at java.base/java.util.Objects.checkIndex(Objects.java:372) at java.base/java.util.ArrayList.get(ArrayList.java:459) at org.apache.phoenix.schema.tuple.MultiKeyValueTuple.getKey(MultiKeyValueTuple.java:51) at org.apache.phoenix.iterate.NonAggregateRegionScannerFactory.getOffsetKvWithLastScannedRowKey(NonAggregateRegionScannerFactory.java:570) at org.apache.phoenix.iterate.NonAggregateRegionScannerFactory.access$000(NonAggregateRegionScannerFactory.java:95) at org.apache.phoenix.iterate.NonAggregateRegionScannerFactory$1.next(NonAggregateRegionScannerFactory.java:507) ... 13 more {code} > CDC Query with OFFSET can throw IndexOutOfBoundsException > --------------------------------------------------------- > > Key: PHOENIX-7524 > URL: https://issues.apache.org/jira/browse/PHOENIX-7524 > Project: Phoenix > Issue Type: Bug > Reporter: Palash Chauhan > Priority: Major > > Steps to reproduce > {code:java} > conn.createStatement().execute("CREATE TABLE IF NOT EXISTS MYTABLE (k VARCHAR > NOT NULL PRIMARY KEY, v1 INTEGER, v2 INTEGER)"); > conn.createStatement().execute("CREATE CDC CDC_MYTABLE ON MYTABLE"); > conn.createStatement().executeUpdate("UPSERT INTO MYTABLE VALUES ('a', 1, > 2)"); > conn.commit(); > ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM CDC_MYTABLE > WHERE PHOENIX_ROW_TIMESTAMP() > CURRENT_TIME() LIMIT 1 OFFSET 1"); > while (rs.next()) { > }{code} > Error: > {code:java} > org.apache.phoenix.exception.PhoenixIOException: > org.apache.hadoop.hbase.DoNotRetryIOException: > PHOENIX_CDC_INDEX_CDC_MYTABLE,,1738877812042.2c10806ae665db7e6da9613791d9298f.: > Index 0 out of bounds for length 0 > at > org.apache.phoenix.util.ClientUtil.createIOException(ClientUtil.java:174) > at > org.apache.phoenix.util.ClientUtil.throwIOException(ClientUtil.java:182) > at > org.apache.phoenix.iterate.NonAggregateRegionScannerFactory$1.next(NonAggregateRegionScannerFactory.java:523) > at > org.apache.phoenix.iterate.NonAggregateRegionScannerFactory$1.nextRaw(NonAggregateRegionScannerFactory.java:531) > at > org.apache.phoenix.coprocessor.DelegateRegionScanner.next(DelegateRegionScanner.java:110) > at > org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:77) > at > org.apache.phoenix.coprocessor.DelegateRegionScanner.next(DelegateRegionScanner.java:110) > at > org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:77) > at > org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:271) > at > org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:3402) > at > org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:3668) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:45006) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:415) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124) > at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:102) > at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:82) > Caused by: java.lang.IndexOutOfBoundsException: Index 0 out of bounds for > length 0 > at > java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) > at > java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) > at > java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) > at java.base/java.util.Objects.checkIndex(Objects.java:372) > at java.base/java.util.ArrayList.get(ArrayList.java:459) > at > org.apache.phoenix.schema.tuple.MultiKeyValueTuple.getKey(MultiKeyValueTuple.java:51) > at > org.apache.phoenix.iterate.NonAggregateRegionScannerFactory.getOffsetKvWithLastScannedRowKey(NonAggregateRegionScannerFactory.java:570) > at > org.apache.phoenix.iterate.NonAggregateRegionScannerFactory.access$000(NonAggregateRegionScannerFactory.java:95) > at > org.apache.phoenix.iterate.NonAggregateRegionScannerFactory$1.next(NonAggregateRegionScannerFactory.java:507) > ... 13 more > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)