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