Vyacheslav Koptilin created IGNITE-25020: --------------------------------------------
Summary: TableManagerTest throws NullPointerException when the colocation feature is enabled Key: IGNITE-25020 URL: https://issues.apache.org/jira/browse/IGNITE-25020 Project: Ignite Issue Type: Bug Reporter: Vyacheslav Koptilin Assignee: Vyacheslav Koptilin TableManagerTest.testPreconfiguredTable throws the following exception: {noformat} [2025-04-03T18:42:10,430][ERROR][%node1%metastorage-watch-executor-2][FailureManager] Critical system error detected. Will be handled accordingly to configured handler [hnd=NoOpFailureHandler [super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], failureCtx=CRITICAL_ERROR] org.apache.ignite.internal.lang.IgniteInternalException: Failed to apply catalog update. at org.apache.ignite.internal.catalog.CatalogManagerImpl$OnUpdateHandlerImpl.lambda$handle$1(CatalogManagerImpl.java:506) ~[main/:?] at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859) ~[?:?] at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2075) ~[?:?] at org.apache.ignite.internal.util.CompletableFutures.lambda$copyStateTo$2(CompletableFutures.java:160) ~[main/:?] at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:883) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2253) ~[?:?] at org.apache.ignite.internal.causality.BaseVersionedValue.copyState(BaseVersionedValue.java:335) ~[main/:?] at org.apache.ignite.internal.causality.BaseVersionedValue.complete(BaseVersionedValue.java:219) ~[main/:?] at org.apache.ignite.internal.causality.IncrementalVersionedValue.lambda$completeInternal$2(IncrementalVersionedValue.java:283) ~[main/:?] at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:883) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2253) ~[?:?] at org.apache.ignite.internal.causality.IncrementalVersionedValue.completeInternal(IncrementalVersionedValue.java:283) ~[main/:?] at org.apache.ignite.internal.causality.IncrementalVersionedValue$1.onUpdate(IncrementalVersionedValue.java:112) ~[main/:?] at org.apache.ignite.internal.metastorage.server.WatchProcessor.notifyUpdateRevisionListeners(WatchProcessor.java:377) ~[main/:?] at org.apache.ignite.internal.metastorage.server.WatchProcessor.lambda$notifyWatches$3(WatchProcessor.java:196) ~[main/:?] at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072) [?:?] 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.util.concurrent.CompletionException: java.lang.NullPointerException 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.uniHandle(CompletableFuture.java:932) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:946) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2268) ~[?:?] at org.apache.ignite.internal.causality.IncrementalVersionedValue.update(IncrementalVersionedValue.java:225) ~[main/:?] at org.apache.ignite.internal.table.distributed.TableManager.prepareTableResourcesAndLoadHavingZoneReadLock(TableManager.java:803) ~[main/:?] at org.apache.ignite.internal.table.distributed.TableManager.prepareTableResourcesAndLoadToZoneReplica(TableManager.java:784) ~[main/:?] at org.apache.ignite.internal.table.distributed.TableManager.prepareTableResourcesAndLoadToZoneReplica(TableManager.java:757) ~[main/:?] at org.apache.ignite.internal.event.AbstractEventProducer.fireEvent(AbstractEventProducer.java:88) ~[main/:?] at org.apache.ignite.internal.catalog.CatalogManagerImpl.access$000(CatalogManagerImpl.java:76) ~[main/:?] at org.apache.ignite.internal.catalog.CatalogManagerImpl$OnUpdateHandlerImpl.handle(CatalogManagerImpl.java:491) ~[main/:?] at org.apache.ignite.internal.catalog.CatalogManagerImpl$OnUpdateHandlerImpl.handle(CatalogManagerImpl.java:458) ~[main/:?] at org.apache.ignite.internal.catalog.storage.UpdateLogImpl$UpdateListener.onUpdate(UpdateLogImpl.java:339) ~[main/:?] at org.apache.ignite.internal.metastorage.server.Watch.onUpdate(Watch.java:67) ~[main/:?] at org.apache.ignite.internal.metastorage.server.WatchProcessor.notifyWatches(WatchProcessor.java:231) ~[main/:?] at org.apache.ignite.internal.metastorage.server.WatchProcessor.lambda$notifyWatches$3(WatchProcessor.java:193) ~[main/:?] ... 5 more Suppressed: java.lang.NullPointerException at org.apache.ignite.internal.table.distributed.TableManager.unlockZoneForRead(TableManager.java:855) ~[main/:?] at org.apache.ignite.internal.table.distributed.TableManager.lambda$prepareTableResourcesAndLoadToZoneReplica$29(TableManager.java:785) ~[main/:?] at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859) ~[?:?] at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2075) ~[?:?] at org.apache.ignite.internal.util.CompletableFutures.lambda$copyStateTo$2(CompletableFutures.java:160) ~[main/:?] at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:883) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2253) ~[?:?] at org.apache.ignite.internal.causality.BaseVersionedValue.copyState(BaseVersionedValue.java:335) ~[main/:?] at org.apache.ignite.internal.causality.BaseVersionedValue.complete(BaseVersionedValue.java:219) ~[main/:?] at org.apache.ignite.internal.causality.IncrementalVersionedValue.lambda$completeInternal$2(IncrementalVersionedValue.java:283) ~[main/:?] at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:883) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2253) ~[?:?] at org.apache.ignite.internal.causality.IncrementalVersionedValue.completeInternal(IncrementalVersionedValue.java:283) ~[main/:?] at org.apache.ignite.internal.causality.IncrementalVersionedValue$1.onUpdate(IncrementalVersionedValue.java:112) ~[main/:?] at org.apache.ignite.internal.metastorage.server.WatchProcessor.notifyUpdateRevisionListeners(WatchProcessor.java:377) ~[main/:?] at org.apache.ignite.internal.metastorage.server.WatchProcessor.lambda$notifyWatches$3(WatchProcessor.java:196) ~[main/:?] at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072) [?:?] 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.NullPointerException at org.apache.ignite.internal.table.distributed.TableManager.lambda$prepareTableResourcesAndLoadHavingZoneReadLock$32(TableManager.java:804) ~[main/:?] at org.apache.ignite.internal.util.IgniteUtils.inBusyLock(IgniteUtils.java:868) ~[main/:?] at org.apache.ignite.internal.table.distributed.TableManager.lambda$prepareTableResourcesAndLoadHavingZoneReadLock$33(TableManager.java:804) ~[main/:?] at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.uniHandleStage(CompletableFuture.java:946) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.handle(CompletableFuture.java:2268) ~[?:?] at org.apache.ignite.internal.causality.IncrementalVersionedValue.update(IncrementalVersionedValue.java:225) ~[main/:?] at org.apache.ignite.internal.table.distributed.TableManager.prepareTableResourcesAndLoadHavingZoneReadLock(TableManager.java:803) ~[main/:?] at org.apache.ignite.internal.table.distributed.TableManager.prepareTableResourcesAndLoadToZoneReplica(TableManager.java:784) ~[main/:?] at org.apache.ignite.internal.table.distributed.TableManager.prepareTableResourcesAndLoadToZoneReplica(TableManager.java:757) ~[main/:?] at org.apache.ignite.internal.event.AbstractEventProducer.fireEvent(AbstractEventProducer.java:88) ~[main/:?] at org.apache.ignite.internal.catalog.CatalogManagerImpl.access$000(CatalogManagerImpl.java:76) ~[main/:?] at org.apache.ignite.internal.catalog.CatalogManagerImpl$OnUpdateHandlerImpl.handle(CatalogManagerImpl.java:491) ~[main/:?] at org.apache.ignite.internal.catalog.CatalogManagerImpl$OnUpdateHandlerImpl.handle(CatalogManagerImpl.java:458) ~[main/:?] at org.apache.ignite.internal.catalog.storage.UpdateLogImpl$UpdateListener.onUpdate(UpdateLogImpl.java:339) ~[main/:?] at org.apache.ignite.internal.metastorage.server.Watch.onUpdate(Watch.java:67) ~[main/:?] at org.apache.ignite.internal.metastorage.server.WatchProcessor.notifyWatches(WatchProcessor.java:231) ~[main/:?] at org.apache.ignite.internal.metastorage.server.WatchProcessor.lambda$notifyWatches$3(WatchProcessor.java:193) ~[main/:?] ... 5 more {noformat} Looks like we need to adjust the mock of `PartitionReplicaLifecycleManager` -- This message was sent by Atlassian Jira (v8.20.10#820010)