[ https://issues.apache.org/jira/browse/IGNITE-22169?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrey Khitrin resolved IGNITE-22169. ------------------------------------- Resolution: Invalid > RocksDb: NPE on index creation > ------------------------------ > > Key: IGNITE-22169 > URL: https://issues.apache.org/jira/browse/IGNITE-22169 > Project: Ignite > Issue Type: Bug > Components: persistence > Affects Versions: 3.0.0-beta2 > Reporter: Andrey Khitrin > Assignee: Kirill Tkalenko > Priority: Blocker > Labels: 3.0.0, ignite-3, rocksdb > > Steps to reproduce: > 1. Start a single 1-node cluster of AI3 > 2. Create a table in RocksDB storage: > {code:sql} > create zone if not exists "ROCKSDB" with storage_profiles='default_rocksdb'; > create table table_8214(id INTEGER not null, int_field_1 INTEGER not null, > str_field_1 VARCHAR(50) not null, primary key (id)) with > PRIMARY_ZONE='ROCKSDB'; > {code} > 3. Try to create an index on this table: > {code:sql} > create index temp on table_8214 using SORTED (int_field_1); > {code} > Expected result: an index is created successfully (the same actions work on > ai3persist). > Actual result: index not created, no response from server to client (query > hangs), NPE in AI3 log: > {code} > 2024-05-06 05:02:51:943 +0000 > [WARNING][%IndexTests_cluster_0%tableManager-io-0][CatalogManagerImpl] Failed > to apply catalog update. > java.util.concurrent.CompletionException: java.lang.NullPointerException: > Cannot invoke "Object.hashCode()" because "pk" is null > at > java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:332) > at > java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:674) > at > java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:662) > at > java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2168) > at > org.apache.ignite.internal.table.distributed.TableManager.onTableCreate(TableManager.java:693) > at > org.apache.ignite.internal.table.distributed.TableManager.lambda$startAsync$2(TableManager.java:614) > at > org.apache.ignite.internal.event.AbstractEventProducer.fireEvent(AbstractEventProducer.java:88) > at > org.apache.ignite.internal.catalog.CatalogManagerImpl.access$000(CatalogManagerImpl.java:91) > at > org.apache.ignite.internal.catalog.CatalogManagerImpl$OnUpdateHandlerImpl.handle(CatalogManagerImpl.java:562) > at > org.apache.ignite.internal.catalog.CatalogManagerImpl$OnUpdateHandlerImpl.handle(CatalogManagerImpl.java:529) > at > org.apache.ignite.internal.catalog.storage.UpdateLogImpl$UpdateListener.onUpdate(UpdateLogImpl.java:314) > at > org.apache.ignite.internal.metastorage.server.Watch.onUpdate(Watch.java:67) > at > org.apache.ignite.internal.metastorage.server.WatchProcessor.notifyWatches(WatchProcessor.java:233) > at > org.apache.ignite.internal.metastorage.server.WatchProcessor.lambda$notifyWatches$3(WatchProcessor.java:181) > at > java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150) > at > java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > Caused by: java.lang.NullPointerException: Cannot invoke "Object.hashCode()" > because "pk" is null > at > java.base/java.util.ImmutableCollections$MapN.probe(ImmutableCollections.java:1321) > at > java.base/java.util.ImmutableCollections$MapN.get(ImmutableCollections.java:1235) > at > org.apache.ignite.internal.storage.DataStorageManager.engineByStorageProfile(DataStorageManager.java:91) > at > org.apache.ignite.internal.table.distributed.TableManager.createTableStorage(TableManager.java:1452) > at > org.apache.ignite.internal.table.distributed.TableManager.createTableLocally(TableManager.java:1315) > at > org.apache.ignite.internal.table.distributed.TableManager.lambda$createTableLocally$50(TableManager.java:1283) > at > org.apache.ignite.internal.util.IgniteUtils.inBusyLockAsync(IgniteUtils.java:890) > at > org.apache.ignite.internal.table.distributed.TableManager.createTableLocally(TableManager.java:1267) > at > org.apache.ignite.internal.table.distributed.TableManager.onTableCreate(TableManager.java:692) > ... 14 more > 2024-05-06 05:02:51:945 +0000 > [ERROR][%IndexTests_cluster_0%tableManager-io-0][FailureProcessor] Critical > system error detected. Will be handled accordingly to configured handler > [hnd=NoOpFailureHandler [], failureCtx=FailureContext [type=CRITICAL_ERROR, > err=java.lang.NullPointerException: Cannot invoke "Object.hashCode()" because > "pk" is null]] > java.lang.NullPointerException: Cannot invoke "Object.hashCode()" because > "pk" is null > at > java.base/java.util.ImmutableCollections$MapN.probe(ImmutableCollections.java:1321) > at > java.base/java.util.ImmutableCollections$MapN.get(ImmutableCollections.java:1235) > at > org.apache.ignite.internal.storage.DataStorageManager.engineByStorageProfile(DataStorageManager.java:91) > at > org.apache.ignite.internal.table.distributed.TableManager.createTableStorage(TableManager.java:1452) > at > org.apache.ignite.internal.table.distributed.TableManager.createTableLocally(TableManager.java:1315) > at > org.apache.ignite.internal.table.distributed.TableManager.lambda$createTableLocally$50(TableManager.java:1283) > at > org.apache.ignite.internal.util.IgniteUtils.inBusyLockAsync(IgniteUtils.java:890) > at > org.apache.ignite.internal.table.distributed.TableManager.createTableLocally(TableManager.java:1267) > at > org.apache.ignite.internal.table.distributed.TableManager.onTableCreate(TableManager.java:692) > at > org.apache.ignite.internal.table.distributed.TableManager.lambda$startAsync$2(TableManager.java:614) > at > org.apache.ignite.internal.event.AbstractEventProducer.fireEvent(AbstractEventProducer.java:88) > at > org.apache.ignite.internal.catalog.CatalogManagerImpl.access$000(CatalogManagerImpl.java:91) > at > org.apache.ignite.internal.catalog.CatalogManagerImpl$OnUpdateHandlerImpl.handle(CatalogManagerImpl.java:562) > at > org.apache.ignite.internal.catalog.CatalogManagerImpl$OnUpdateHandlerImpl.handle(CatalogManagerImpl.java:529) > at > org.apache.ignite.internal.catalog.storage.UpdateLogImpl$UpdateListener.onUpdate(UpdateLogImpl.java:314) > at > org.apache.ignite.internal.metastorage.server.Watch.onUpdate(Watch.java:67) > at > org.apache.ignite.internal.metastorage.server.WatchProcessor.notifyWatches(WatchProcessor.java:233) > at > org.apache.ignite.internal.metastorage.server.WatchProcessor.lambda$notifyWatches$3(WatchProcessor.java:181) > at > java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150) > at > java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) > at java.base/java.lang.Thread.run(Thread.java:833) > {code} > Found on commit 654a11a4a00919ce2b3ff4ca0e59e83377124dea (recent AI3 at the > time). -- This message was sent by Atlassian Jira (v8.20.10#820010)