Igor created IGNITE-21451:
-----------------------------
Summary: RocksDB: repeat of create table and drop column leads to
freeze of client
Key: IGNITE-21451
URL: https://issues.apache.org/jira/browse/IGNITE-21451
Project: Ignite
Issue Type: Bug
Components: persistence
Affects Versions: 3.0.0-beta1
Environment: 2 nodes cluster running locally.
Reporter: Igor
h3. Steps to reproduce:
Run the next queries in cycle with 50 repeats in single connection:
{code:java}
drop table if exists dropNoMoreIndexedColumn
create zone if not exists "rocksdb" engine rocksdb
create table dropNoMoreIndexedColumn(k1 TIMESTAMP not null, k2 INTEGER not
null, v0 TINYINT not null, v1 SMALLINT not null, v2 INTEGER not null, v3 BIGINT
not null, v4 VARCHAR not null, v5 TIMESTAMP not null, primary key (k1, k2))
with PRIMARY_ZONE='rocksdb'
create index dropNoMoreIndexedColumn_v1idx on dropNoMoreIndexedColumn using
TREE (v1)
drop index dropNoMoreIndexedColumn_v1idx
alter table dropNoMoreIndexedColumn drop column v1 {code}
h3. Expected:
All queries are executed.
h3. Actual:
On repeat 31 the client freeze for infinite amount of time.
h3. Analysis:
The servers contain repeated error in logs:
{code:java}
2024-02-05 13:47:24:812 +0100
[ERROR][%DropColumnsTest_cluster_0%JRaft-FSMCaller-Disruptor-metastorage-_stripe_0-0][WatchProcessor]
Error occurred when notifying safe time advanced callback
java.util.concurrent.CompletionException:
java.lang.UnsupportedOperationException: Update log is not supported in RocksDB
storage.
at
java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
at
java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
at
java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:645)
at
java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.UnsupportedOperationException: Update log is not supported
in RocksDB storage.
at
org.apache.ignite.internal.storage.rocksdb.RocksDbMvPartitionStorage.trimUpdateLog(RocksDbMvPartitionStorage.java:908)
at
org.apache.ignite.internal.table.distributed.raft.snapshot.outgoing.SnapshotAwarePartitionDataStorage.trimUpdateLog(SnapshotAwarePartitionDataStorage.java:244)
at
org.apache.ignite.internal.table.distributed.gc.GcUpdateHandler.lambda$vacuumBatch$0(GcUpdateHandler.java:81)
at
org.apache.ignite.internal.storage.rocksdb.RocksDbMvPartitionStorage.lambda$runConsistently$2(RocksDbMvPartitionStorage.java:228)
at
org.apache.ignite.internal.storage.rocksdb.RocksDbMvPartitionStorage.busy(RocksDbMvPartitionStorage.java:1431)
at
org.apache.ignite.internal.storage.rocksdb.RocksDbMvPartitionStorage.runConsistently(RocksDbMvPartitionStorage.java:213)
at
org.apache.ignite.internal.table.distributed.raft.snapshot.outgoing.SnapshotAwarePartitionDataStorage.runConsistently(SnapshotAwarePartitionDataStorage.java:80)
at
org.apache.ignite.internal.table.distributed.gc.GcUpdateHandler.vacuumBatch(GcUpdateHandler.java:80)
at
org.apache.ignite.internal.table.distributed.gc.MvGc.lambda$scheduleGcForStorage$7(MvGc.java:242)
at
java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:642)
... 4 more {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)