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)

Reply via email to