[ 
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)

Reply via email to