You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Aleksey Plekhanov (Jira)" <ji...@apache.org> on 2024/01/19 12:56:00 UTC

[jira] [Created] (IGNITE-21315) Node can't join then cluster when create index in progress and caches have the same deploymentId

Aleksey Plekhanov created IGNITE-21315:
------------------------------------------

             Summary: Node can't join then cluster when create index in progress and caches have the same deploymentId
                 Key: IGNITE-21315
                 URL: https://issues.apache.org/jira/browse/IGNITE-21315
             Project: Ignite
          Issue Type: Bug
            Reporter: Aleksey Plekhanov
            Assignee: Aleksey Plekhanov


Reproducer:
{code:java}
public class DynamicIndexCreateAfterClusterRestartTest extends GridCommonAbstractTest {
    /** {@inheritDoc} */
    @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName)
            .setDataStorageConfiguration(
                new DataStorageConfiguration().setDefaultDataRegionConfiguration(
                    new DataRegionConfiguration().setPersistenceEnabled(true)));

        cfg.setConsistentId(igniteInstanceName);

        return cfg;
    }

    /** */
    @Test
    public void testNodeJoinOnCreateIndex() throws Exception {
        IgniteEx grid = startGrids(2);
        grid.cluster().state(ClusterState.ACTIVE);

        grid.getOrCreateCache(new CacheConfiguration<>("CACHE1").setSqlSchema("PUBLIC")
            .setIndexedTypes(Integer.class, Integer.class));
        grid.getOrCreateCache(new CacheConfiguration<>("CACHE2").setSqlSchema("PUBLIC")
            .setIndexedTypes(Integer.class, TestValue.class));

        stopAllGrids();

        startGrids(2);

        try (IgniteDataStreamer<Integer, TestValue> ds = grid(0).dataStreamer("CACHE2")) {
            for (int i = 0; i < 1_500_000; i++)
                ds.addData(i, new TestValue(i));
        }

        GridTestUtils.runAsync(() -> {
            grid(1).cache("CACHE2").query(new SqlFieldsQuery("CREATE INDEX ON TestValue(val)")).getAll();
        });

        doSleep(100);

        stopGrid(0, true);

        cleanPersistenceDir(getTestIgniteInstanceName(0));

        startGrid(0);
    }

    /** */
    private static class TestValue {
        /** */
        @QuerySqlField
        private final int val;

        /** */
        private TestValue(int val) {
            this.val = val;
        }
    }
}
 {code}
Fails on last node join with an exception:
{noformat}
java.lang.AssertionError
    at org.apache.ignite.internal.processors.query.GridQueryProcessor.onCacheStart0(GridQueryProcessor.java:1124)
    at org.apache.ignite.internal.processors.query.GridQueryProcessor.onCacheStart(GridQueryProcessor.java:1257)
    at org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$prepareStartCaches$ff7b936b$1(GridCacheProcessor.java:1869)
    at org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$prepareStartCaches$16(GridCacheProcessor.java:1754)
    at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareStartCaches(GridCacheProcessor.java:1863)
    at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareStartCaches(GridCacheProcessor.java:1753)
    at org.apache.ignite.internal.processors.cache.GridCacheProcessor.startCachesOnLocalJoin(GridCacheProcessor.java:1699)
    at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.initCachesOnLocalJoin(GridDhtPartitionsExchangeFuture.java:1162)
    at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:1007)
    at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body0(GridCachePartitionExchangeManager.java:3336)
    at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:3170)
    at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
    at java.lang.Thread.run(Thread.java:748){noformat}



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