From 4d03e617d02bea5796197be734b7beaec97d72dc Mon Sep 17 00:00:00 2001 From: chesnokoff Date: Tue, 19 May 2026 16:51:52 +0300 Subject: [PATCH 1/2] IGNITE-28698 Allow distributed processes during rolling upgrade --- .../DisabledRollingUpgradeProcessor.java | 6 +- .../util/distributed/DistributedProcess.java | 11 +-- .../IgniteSnapshotRollingUpgradeTest.java | 75 ------------------- .../testsuites/IgniteSnapshotTestSuite.java | 2 - 4 files changed, 4 insertions(+), 90 deletions(-) delete mode 100644 modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotRollingUpgradeTest.java diff --git a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/testframework/plugins/DisabledRollingUpgradeProcessor.java b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/testframework/plugins/DisabledRollingUpgradeProcessor.java index f53aac67b986f..2548f8bfede60 100644 --- a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/testframework/plugins/DisabledRollingUpgradeProcessor.java +++ b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/testframework/plugins/DisabledRollingUpgradeProcessor.java @@ -1,12 +1,12 @@ /* * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with + * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at + * the License. You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/distributed/DistributedProcess.java b/modules/core/src/main/java/org/apache/ignite/internal/util/distributed/DistributedProcess.java index 73298b6696e7d..f4aeb18fd2882 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/distributed/DistributedProcess.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/distributed/DistributedProcess.java @@ -26,7 +26,6 @@ import java.util.function.BiFunction; import java.util.function.Function; import org.apache.ignite.IgniteCheckedException; -import org.apache.ignite.IgniteException; import org.apache.ignite.IgniteLogger; import org.apache.ignite.cluster.ClusterNode; import org.apache.ignite.failure.FailureContext; @@ -38,7 +37,6 @@ import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager; import org.apache.ignite.internal.util.GridConcurrentHashSet; -import org.apache.ignite.internal.util.future.GridFinishedFuture; import org.apache.ignite.internal.util.future.GridFutureAdapter; import org.apache.ignite.internal.util.typedef.CI3; import org.apache.ignite.internal.util.typedef.F; @@ -152,14 +150,7 @@ public DistributedProcess( initCoordinator(p, topVer); try { - IgniteInternalFuture fut; - - if (ctx.rollingUpgrade().enabled()) { - fut = new GridFinishedFuture<>(new IgniteException("Failed to start distributed process " - + type + ": rolling upgrade is enabled")); - } - else - fut = exec.apply((I)msg.request()); + IgniteInternalFuture fut = exec.apply((I)msg.request()); fut.listen(() -> { if (fut.error() != null) diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotRollingUpgradeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotRollingUpgradeTest.java deleted file mode 100644 index aa4b7e6fefde0..0000000000000 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotRollingUpgradeTest.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ignite.internal.processors.cache.persistence.snapshot; - -import org.apache.ignite.IgniteException; -import org.apache.ignite.cluster.ClusterState; -import org.apache.ignite.configuration.DataRegionConfiguration; -import org.apache.ignite.configuration.DataStorageConfiguration; -import org.apache.ignite.configuration.IgniteConfiguration; -import org.apache.ignite.internal.IgniteEx; -import org.apache.ignite.lang.IgniteProductVersion; -import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; -import org.junit.Test; - -import static org.apache.ignite.testframework.GridTestUtils.assertThrowsWithCause; - -/** */ -public class IgniteSnapshotRollingUpgradeTest extends GridCommonAbstractTest { - /** {@inheritDoc} */ - @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { - IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName); - - cfg.setDataStorageConfiguration(new DataStorageConfiguration() - .setDefaultDataRegionConfiguration(new DataRegionConfiguration().setPersistenceEnabled(true))); - - return cfg; - } - - /** {@inheritDoc} */ - @Override protected void afterTest() throws Exception { - stopAllGrids(); - - cleanPersistenceDir(); - } - - /** Tests that snapshot creation fails when rolling upgrade is enabled. */ - @Test - public void testSnapshotCreationFailsDuringRollingUpgrade() throws Exception { - IgniteEx srv = startGrid(0); - - srv.cluster().state(ClusterState.ACTIVE); - - IgniteProductVersion curVer = srv.context().discovery().localNode().version(); - - IgniteProductVersion targetVer = IgniteProductVersion.fromString(curVer.major() - + "." + curVer.minor() - + "." + curVer.maintenance() + 1); - - srv.context().rollingUpgrade().enable(targetVer, false); - - assertTrue(srv.context().rollingUpgrade().enabled()); - - Throwable ex = assertThrowsWithCause( - () -> srv.snapshot().createSnapshot("test").get(getTestTimeout()), - IgniteException.class - ); - - assertTrue(ex.getMessage().contains("Failed to start distributed process START_SNAPSHOT: rolling upgrade is enabled")); - } -} diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSnapshotTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSnapshotTestSuite.java index 75f4a6d9392a6..83a0f0eceb069 100644 --- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSnapshotTestSuite.java +++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSnapshotTestSuite.java @@ -25,7 +25,6 @@ import org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotRemoteRequestTest; import org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotRestoreFromRemoteMdcTest; import org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotRestoreFromRemoteTest; -import org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotRollingUpgradeTest; import org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotWithMetastorageTest; import org.apache.ignite.testframework.GridTestUtils; import org.apache.ignite.testframework.junits.DynamicSuite; @@ -50,7 +49,6 @@ public static void addSnapshotTests(List> suite, Collection igno GridTestUtils.addTestIfNeeded(suite, IgniteSnapshotRemoteRequestTest.class, ignoredTests); GridTestUtils.addTestIfNeeded(suite, IgniteSnapshotRestoreFromRemoteMdcTest.class, ignoredTests); GridTestUtils.addTestIfNeeded(suite, IgniteSnapshotRestoreFromRemoteTest.class, ignoredTests); - GridTestUtils.addTestIfNeeded(suite, IgniteSnapshotRollingUpgradeTest.class, ignoredTests); GridTestUtils.addTestIfNeeded(suite, IgniteSnapshotWithMetastorageTest.class, ignoredTests); } } From 45c2eb0abef15fd39c4dc34cccd5391e256f2c52 Mon Sep 17 00:00:00 2001 From: chesnokoff Date: Thu, 21 May 2026 08:35:19 +0300 Subject: [PATCH 2/2] IGNITE-28698 Undo licence fix --- .../plugins/DisabledRollingUpgradeProcessor.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/testframework/plugins/DisabledRollingUpgradeProcessor.java b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/testframework/plugins/DisabledRollingUpgradeProcessor.java index 2548f8bfede60..f53aac67b986f 100644 --- a/modules/compatibility/src/test/java/org/apache/ignite/compatibility/testframework/plugins/DisabledRollingUpgradeProcessor.java +++ b/modules/compatibility/src/test/java/org/apache/ignite/compatibility/testframework/plugins/DisabledRollingUpgradeProcessor.java @@ -1,12 +1,12 @@ /* * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with + * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at + * the License. You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS,