This is an automated email from the ASF dual-hosted git repository.
petrov-mg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new 834acdaa45f IGNITE-28909 Added test for node join with the same
features but smaller version (#13385)
834acdaa45f is described below
commit 834acdaa45fe83b0ae5a1121ba332e5958f7e9ad
Author: Mikhail Petrov <[email protected]>
AuthorDate: Tue Jul 21 00:21:42 2026 +0300
IGNITE-28909 Added test for node join with the same features but smaller
version (#13385)
---
.../feature/IgniteComponentFeatureSet.java | 4 ++-
.../rollingupgrade/AbstractRollingUpgradeTest.java | 8 ++---
.../CoreVersionRollingUpgradeTest.java | 34 +++++++++++++++-------
.../feature/TestIgniteReleaseFeatures_2_19_1.java | 3 --
.../feature/TestIgniteReleaseFeatures_2_19_2.java | 2 +-
5 files changed, 31 insertions(+), 20 deletions(-)
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rollingupgrade/feature/IgniteComponentFeatureSet.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rollingupgrade/feature/IgniteComponentFeatureSet.java
index d76a5b6e8fa..b51bd6e1851 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rollingupgrade/feature/IgniteComponentFeatureSet.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rollingupgrade/feature/IgniteComponentFeatureSet.java
@@ -69,7 +69,9 @@ public abstract class IgniteComponentFeatureSet implements
Message, Externalizab
/** */
public boolean isUpgradableTo(IgniteComponentFeatureSet target) {
- return Objects.equals(componentName(), target.componentName()) &&
features.isUpgradableTo(target.features);
+ return Objects.equals(componentName(), target.componentName())
+ && ver.compareTo(target.ver) <= 0
+ && features.isUpgradableTo(target.features);
}
/** {@inheritDoc} */
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/rollingupgrade/AbstractRollingUpgradeTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/rollingupgrade/AbstractRollingUpgradeTest.java
index c54675151a7..84532bef8ec 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/rollingupgrade/AbstractRollingUpgradeTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/rollingupgrade/AbstractRollingUpgradeTest.java
@@ -98,7 +98,7 @@ import static
org.apache.ignite.internal.IgniteVersionUtils.semanticVersion;
* </tr>
* <tr>
* <td>2.19.1</td>
- * <td>{@code IgniteFeatureSet [0, 1]}</td>
+ * <td>{@code IgniteFeatureSet [0]}</td>
* </tr>
* <tr>
* <td>2.19.2</td>
@@ -474,7 +474,7 @@ public abstract class AbstractRollingUpgradeTest extends
GridCommonAbstractTest
/** */
protected void restartNode(int nodeIdx) throws Exception {
- String ver = resolveNodeCompoundVersion(nodeIdx);
+ String ver = resolveNodeCompoundVersions(nodeIdx);
boolean isClient = grid(nodeIdx).context().clientNode();
stopGrid(nodeIdx);
@@ -489,7 +489,7 @@ public abstract class AbstractRollingUpgradeTest extends
GridCommonAbstractTest
/** */
protected void checkUpgradeFailed(int nodeIdx, String targetVer, String
errMsg) throws Exception {
- String srcVer = resolveNodeCompoundVersion(nodeIdx);
+ String srcVer = resolveNodeCompoundVersions(nodeIdx);
boolean isClient = grid(nodeIdx).context().clientNode();
stopGrid(nodeIdx);
@@ -500,7 +500,7 @@ public abstract class AbstractRollingUpgradeTest extends
GridCommonAbstractTest
}
/** */
- String resolveNodeCompoundVersion(int nodeIdx) {
+ String resolveNodeCompoundVersions(int nodeIdx) {
return
Arrays.stream(ru(nodeIdx).features().localVersionFeatures().values())
.sorted(Comparator.comparing(IgniteComponentFeatureSet::componentName))
.map(f -> semanticVersion(f.version()))
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/rollingupgrade/CoreVersionRollingUpgradeTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/rollingupgrade/CoreVersionRollingUpgradeTest.java
index c773ce73956..b2ab378725d 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/rollingupgrade/CoreVersionRollingUpgradeTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/rollingupgrade/CoreVersionRollingUpgradeTest.java
@@ -79,7 +79,7 @@ public class CoreVersionRollingUpgradeTest extends
AbstractRollingUpgradeTest {
/** */
@Test
- public void testVersionsFinalizationNoVersionUpgrade() throws Exception {
+ public void testVersionFinalizationNoVersionUpgrade() throws Exception {
startCluster();
ru(1).enableVersionUpgrade();
@@ -94,6 +94,18 @@ public class CoreVersionRollingUpgradeTest extends
AbstractRollingUpgradeTest {
restartNode(2);
}
+ /** */
+ @Test
+ public void testSmallerVersionsWithSameFeaturesAreNotCompatible() throws
Exception {
+ startCluster("2.19.1");
+
+ ru(1).enableVersionUpgrade();
+
+ checkUpgradeFailed(1, "2.19.0", VER_INCOMPATIBLE_ERR);
+
+ finalizeClusterVersion(1, "2.19.1");
+ }
+
/** */
@Test
public void testVersionUpgradeCommandsIdempotency() throws Exception {
@@ -129,12 +141,12 @@ public class CoreVersionRollingUpgradeTest extends
AbstractRollingUpgradeTest {
checkJoinFailed(5, "2.18.0", VER_INCOMPATIBLE_ERR);
- upgradeNodeVersion(0, "2.19.1");
- upgradeNodeVersion(2, "2.19.1");
+ upgradeNodeVersion(0, "2.19.2");
+ upgradeNodeVersion(2, "2.19.2");
- checkVersionUpgradeInProgress(TEST_DEFAULT_VER, "2.19.1");
+ checkVersionUpgradeInProgress(TEST_DEFAULT_VER, "2.19.2");
- checkJoinFailed(5, "2.19.2", VER_INCOMPATIBLE_ERR);
+ checkJoinFailed(5, "2.19.3", VER_INCOMPATIBLE_ERR);
restartNode(3);
restartNode(4);
@@ -142,11 +154,11 @@ public class CoreVersionRollingUpgradeTest extends
AbstractRollingUpgradeTest {
restartNode(0);
restartNode(2);
- upgradeNodeVersion(1, "2.19.1");
- upgradeNodeVersion(3, "2.19.1");
- upgradeNodeVersion(4, "2.19.1");
+ upgradeNodeVersion(1, "2.19.2");
+ upgradeNodeVersion(3, "2.19.2");
+ upgradeNodeVersion(4, "2.19.2");
- finalizeClusterVersion(1, "2.19.1");
+ finalizeClusterVersion(1, "2.19.2");
}
/** */
@@ -642,7 +654,7 @@ public class CoreVersionRollingUpgradeTest extends
AbstractRollingUpgradeTest {
ru(1).enableVersionUpgrade();
- forAllNodes(nodeIdx -> upgradeNodeVersion(nodeIdx, "2.19.1"));
+ forAllNodes(nodeIdx -> upgradeNodeVersion(nodeIdx, "2.19.2"));
IgniteConfiguration cfg = getConfiguration(3, TEST_DEFAULT_VER)
.setBinaryConfiguration(new
BinaryConfiguration().setCompactFooter(false));
@@ -654,7 +666,7 @@ public class CoreVersionRollingUpgradeTest extends
AbstractRollingUpgradeTest {
"Local node's binary configuration is not equal to remote node's
binary configuration"
);
- finalizeClusterVersion(2, "2.19.1");
+ finalizeClusterVersion(2, "2.19.2");
}
/** */
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/rollingupgrade/feature/TestIgniteReleaseFeatures_2_19_1.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/rollingupgrade/feature/TestIgniteReleaseFeatures_2_19_1.java
index 33fd6ce2710..38056daa0b4 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/rollingupgrade/feature/TestIgniteReleaseFeatures_2_19_1.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/rollingupgrade/feature/TestIgniteReleaseFeatures_2_19_1.java
@@ -21,7 +21,4 @@ package
org.apache.ignite.internal.processors.rollingupgrade.feature;
public class TestIgniteReleaseFeatures_2_19_1 {
/** */
public static final IgniteFeature ROLLING_UPGRADE_FEATURE =
TestIgniteReleaseFeatures_2_19_0.ROLLING_UPGRADE_FEATURE;
-
- /** */
- public static final IgniteFeature VER_2_19_1_ID_1_FEATURE = new
IgniteCoreFeature(1);
}
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/rollingupgrade/feature/TestIgniteReleaseFeatures_2_19_2.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/rollingupgrade/feature/TestIgniteReleaseFeatures_2_19_2.java
index cc1775597e4..0ad70357e73 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/rollingupgrade/feature/TestIgniteReleaseFeatures_2_19_2.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/rollingupgrade/feature/TestIgniteReleaseFeatures_2_19_2.java
@@ -23,7 +23,7 @@ public class TestIgniteReleaseFeatures_2_19_2 {
public static final IgniteFeature ROLLING_UPGRADE_FEATURE =
TestIgniteReleaseFeatures_2_19_1.ROLLING_UPGRADE_FEATURE;
/** */
- public static final IgniteFeature VER_2_19_2_ID_1_FEATURE =
TestIgniteReleaseFeatures_2_19_1.VER_2_19_1_ID_1_FEATURE;
+ public static final IgniteFeature VER_2_19_2_ID_1_FEATURE = new
IgniteCoreFeature(1);
/** */
public static final IgniteFeature VER_2_19_2_ID_2_FEATURE = new
IgniteCoreFeature(2);