Marton Greber created KUDU-3593:
-----------------------------------
Summary: ScanTokenBuilder does not throw exception when using
snapshotTimestampRaw without setting readMode
Key: KUDU-3593
URL: https://issues.apache.org/jira/browse/KUDU-3593
Project: Kudu
Issue Type: Bug
Components: java
Reporter: Marton Greber
The below code throws an exception saying that readMode has to be specified.
{code:java}
KuduScanner scanner = client.newScannerBuilder(table)
.snapshotTimestampRaw(startHT)
// .readMode(AsyncKuduScanner.ReadMode.READ_AT_SNAPSHOT)
.build();
{code}
Doing the same with newScanTokenBuilder does not throw an error:
{code:java}
List<KuduScanToken> tokens = client.newScanTokenBuilder(table)
.snapshotTimestampRaw(startHT)
// .readMode(AsyncKuduScanner.ReadMode.READ_AT_SNAPSHOT)
.build();
{code}
I would expect that the ScanTokenBuilder throws the same error as
ScannerBuilder.
Full repro test:
{code:java}
@Test(timeout = 100000)
public void testScanTokenBuilderReadModeException() throws Exception {
// TEST SETUP
Schema tableSchema = new Schema(Collections.singletonList(
new ColumnSchema.ColumnSchemaBuilder("key",
Type.INT32).key(true).build()
));
CreateTableOptions tableOptions = new CreateTableOptions()
.setRangePartitionColumns(Collections.singletonList("key"))
.setNumReplicas(3);
KuduTable table = client.createTable(tableName, tableSchema, tableOptions);
long fromMicros =
TimeUnit.MILLISECONDS.toMicros(System.currentTimeMillis());
long startHT = HybridTimeUtil.physicalAndLogicalToHTTimestamp(fromMicros,
0) + 1;
// ISSUE REPRO
// Correct: ScannerBuilder throws error.
Exception exception1 = assertThrows(IllegalArgumentException.class, () -> {
KuduScanner scanner = client.newScannerBuilder(table)
.snapshotTimestampRaw(startHT)
// .readMode(AsyncKuduScanner.ReadMode.READ_AT_SNAPSHOT)
.build();
});
// Incorrect?: ScanTokenBuilder throws no error.
Exception exception2 = assertThrows(IllegalArgumentException.class, () -> {
List<KuduScanToken> tokens = client.newScanTokenBuilder(table)
.snapshotTimestampRaw(startHT)
// .readMode(AsyncKuduScanner.ReadMode.READ_AT_SNAPSHOT)
.build();
});
}
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)