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)

Reply via email to