[ 
https://issues.apache.org/jira/browse/IGNITE-22114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17860820#comment-17860820
 ] 

Kirill Gusakov commented on IGNITE-22114:
-----------------------------------------

On the commit `d593e6487aa36a806bab075d19c8b831ca096a28` the issue can be 
reproduced by the simple test like:

{code:java}
public class ReproduceTest extends ClusterPerTestIntegrationTest {
    /** Table name. */
    private static final String TABLE_NAME = "test_table";

    private static final int PART_ID = 0;

    @BeforeEach
    @Override
    public void setup(TestInfo testInfo) throws Exception {
        super.setup(testInfo);

        String zoneSql = "create zone test_zone with partitions=1, replicas=3, 
storage_profiles='" + DEFAULT_PROFILE_NAME + "'";
        String sql = "create table " + TABLE_NAME + " (key int primary key, val 
int) with primary_zone='TEST_ZONE'";
        String insertStmt = "INSERT INTO " + TABLE_NAME + "(key, val)"
                + " VALUES (1, 1)";

        cluster.doInSession(0, session -> {
            executeUpdate(zoneSql, session);
            executeUpdate(sql, session);
            executeUpdate(insertStmt, session);
        });
    }

    @Test
    void test() throws InterruptedException {
        for (int i = 0; i < 4; i++) {
            stopNode(1);
            Thread.sleep(30000);
            startNode(1);
        }
    }
}
{code}

But on the current main `079225e5764e5537844c6e499f0a513c44a1e62d` this issue 
is not reproducing anymore


> NullPointerException when restarting a node few times in a row
> --------------------------------------------------------------
>
>                 Key: IGNITE-22114
>                 URL: https://issues.apache.org/jira/browse/IGNITE-22114
>             Project: Ignite
>          Issue Type: Bug
>          Components: general
>    Affects Versions: 3.0.0-beta2
>            Reporter: Andrey Khitrin
>            Priority: Major
>              Labels: ignite-3
>
> Steps to reproduce:
> 1. Start a 3-node cluster (`node-1`, `node-2`, `node-3`)
> 2. Run some load on it (read and write)
> 3. Shutdown a single node, wait some time, start it again
> 4. After a little time (say, 30 seconds) shutdown the same node again, wait 
> some time, start it again
> In my case, an issue was reproduced on commit 
> `d593e6487aa36a806bab075d19c8b831ca096a28` (2024-04-24 IGNITE-2124) on the 
> 2nd restart of `node-3`.
> Expected results: node starts without error.
> Actual results: NPE in `ignite3-startup.log`.
> {code}
> Error when starting the node: org.apache.ignite.lang.IgniteException: 
> IGN-CMN-65535 TraceId:c7b27181-0977-4925-b0ba-fa07d8a3bebe 
> org.apache.ignite.lang.IgniteException: IGN-CMN-65535 
> TraceId:c7b27181-0977-4925-b0ba-fa07d8a3bebe Unable to start [node=node-3]
> java.util.concurrent.ExecutionException: 
> org.apache.ignite.lang.IgniteException: IGN-CMN-65535 
> TraceId:c7b27181-0977-4925-b0ba-fa07d8a3bebe 
> org.apache.ignite.lang.IgniteException: IGN-CMN-65535 
> TraceId:c7b27181-0977-4925-b0ba-fa07d8a3bebe Unable to start [node=node-3]
>       at 
> java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
>       at 
> java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999)
>       at 
> org.apache.ignite.internal.app.IgniteRunner.main(IgniteRunner.java:74)
> Caused by: org.apache.ignite.lang.IgniteException: IGN-CMN-65535 
> TraceId:c7b27181-0977-4925-b0ba-fa07d8a3bebe 
> org.apache.ignite.lang.IgniteException: IGN-CMN-65535 
> TraceId:c7b27181-0977-4925-b0ba-fa07d8a3bebe Unable to start [node=node-3]
>       at 
> org.apache.ignite.internal.app.IgnitionImpl.handleStartException(IgnitionImpl.java:224)
>       at 
> org.apache.ignite.internal.app.IgnitionImpl.lambda$doStart$1(IgnitionImpl.java:205)
>       at 
> java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
>       at 
> java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907)
>       at 
> java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
>       at 
> java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:610)
>       at 
> java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:840)
>       at 
> java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:479)
>       at 
> java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
>       at 
> java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
>       at 
> java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
>       at 
> java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
>       at 
> java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
> Caused by: java.util.concurrent.CompletionException: 
> org.apache.ignite.lang.IgniteException: IGN-CMN-65535 
> TraceId:c7b27181-0977-4925-b0ba-fa07d8a3bebe Unable to start [node=node-3]
>       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$UniHandle.tryFire(CompletableFuture.java:907)
>       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:829)
> Caused by: org.apache.ignite.lang.IgniteException: IGN-CMN-65535 
> TraceId:c7b27181-0977-4925-b0ba-fa07d8a3bebe Unable to start [node=node-3]
>       at 
> org.apache.ignite.internal.app.IgniteImpl.handleStartException(IgniteImpl.java:1185)
>       at 
> org.apache.ignite.internal.app.IgniteImpl.lambda$start$27(IgniteImpl.java:1129)
>       at 
> java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
>       ... 5 more
> 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$UniApply.tryFire(CompletableFuture.java:645)
>       at 
> java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
>       at 
> java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
>       at 
> org.apache.ignite.internal.util.IgniteUtils.lambda$copyStateTo$5(IgniteUtils.java:1211)
>       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:2251)
>       at 
> org.apache.ignite.internal.causality.BaseVersionedValue.copyState(BaseVersionedValue.java:315)
>       at 
> org.apache.ignite.internal.causality.BaseVersionedValue.complete(BaseVersionedValue.java:201)
>       at 
> org.apache.ignite.internal.causality.IncrementalVersionedValue.lambda$completeInternal$2(IncrementalVersionedValue.java:256)
>       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:2251)
>       at 
> org.apache.ignite.internal.causality.IncrementalVersionedValue.completeInternal(IncrementalVersionedValue.java:256)
>       at 
> org.apache.ignite.internal.metastorage.server.WatchProcessor.notifyUpdateRevisionListeners(WatchProcessor.java:367)
>       at 
> org.apache.ignite.internal.metastorage.server.persistence.RocksDbKeyValueStorage.notifyRevisionUpdateListenerOnStart(RocksDbKeyValueStorage.java:1670)
>       at 
> java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1106)
>       at 
> java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2235)
>       at 
> org.apache.ignite.internal.metastorage.impl.MetaStorageManagerImpl.notifyRevisionUpdateListenerOnStart(MetaStorageManagerImpl.java:886)
>       at 
> org.apache.ignite.internal.app.IgniteImpl.recoverComponentsStateOnStart(IgniteImpl.java:1394)
>       at 
> org.apache.ignite.internal.app.IgniteImpl.lambda$start$22(IgniteImpl.java:1104)
>       at 
> java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072)
>       ... 4 more
> Caused by: java.lang.NullPointerException
>       at 
> org.apache.ignite.internal.distributionzones.DistributionZonesUtil.lambda$filterDataNodes$4(DistributionZonesUtil.java:547)
>       at 
> java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176)
>       at 
> java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1621)
>       at 
> java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
>       at 
> java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
>       at 
> java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
>       at 
> java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>       at 
> java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
>       at 
> org.apache.ignite.internal.distributionzones.DistributionZonesUtil.filterDataNodes(DistributionZonesUtil.java:550)
>       at 
> org.apache.ignite.internal.distributionzones.causalitydatanodes.CausalityDataNodesEngine.lambda$dataNodes$3(CausalityDataNodesEngine.java:256)
>       at 
> org.apache.ignite.internal.util.IgniteUtils.inBusyLock(IgniteUtils.java:831)
>       at 
> org.apache.ignite.internal.distributionzones.causalitydatanodes.CausalityDataNodesEngine.lambda$dataNodes$4(CausalityDataNodesEngine.java:157)
>       at 
> java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:642)
>       ... 25 more
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to