From ddef02d6e0a2256fa49a97cdb0cf9e4c09faff4f Mon Sep 17 00:00:00 2001 From: Johannes Freden Jansson Date: Wed, 11 Dec 2024 14:12:38 +0100 Subject: [PATCH 1/6] Fix intermittent FileSettingsRoleMappingUpgradeIT failures --- .../FileSettingsRoleMappingUpgradeIT.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java b/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java index bd291dd14aeb8..b96b93db69f2c 100644 --- a/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java +++ b/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java @@ -10,14 +10,13 @@ package org.elasticsearch.upgrades; import com.carrotsearch.randomizedtesting.annotations.Name; - import org.elasticsearch.client.Request; import org.elasticsearch.core.SuppressForbidden; import org.elasticsearch.test.XContentTestUtils; import org.elasticsearch.test.cluster.ElasticsearchCluster; import org.elasticsearch.test.cluster.local.distribution.DistributionType; import org.elasticsearch.test.cluster.util.resource.Resource; -import org.junit.Before; +import org.elasticsearch.test.junit.RunnableTestRuleAdapter; import org.junit.ClassRule; import org.junit.rules.RuleChain; import org.junit.rules.TemporaryFolder; @@ -70,9 +69,15 @@ public String get() { .setting("xpack.security.authc.anonymous.roles", "superuser") .configFile("operator/settings.json", Resource.fromString(SETTING_JSON)) .build(); + private static final RunnableTestRuleAdapter versionLimit = new RunnableTestRuleAdapter( + () -> assumeTrue( + "Only relevant when upgrading from a version before role mappings were stored in cluster state", + oldClusterHasFeature("gte_v8.7.0") && oldClusterHasFeature("gte_v8.15.0") == false + )); + @ClassRule - public static TestRule ruleChain = RuleChain.outerRule(repoDirectory).around(cluster); + public static TestRule ruleChain = RuleChain.outerRule(repoDirectory).around(versionLimit).around(cluster); public FileSettingsRoleMappingUpgradeIT(@Name("upgradedNodes") int upgradedNodes) { super(upgradedNodes); @@ -83,14 +88,6 @@ protected ElasticsearchCluster getUpgradeCluster() { return cluster; } - @Before - public void checkVersions() { - assumeTrue( - "Only relevant when upgrading from a version before role mappings were stored in cluster state", - oldClusterHasFeature("gte_v8.7.0") && oldClusterHasFeature("gte_v8.15.0") == false - ); - } - private static void waitForSecurityMigrationCompletionIfIndexExists() throws Exception { final Request request = new Request("GET", "_cluster/state/metadata/.security-7"); assertBusy(() -> { From e279100c7374c01b1a51a6b2ba7e04cbc631ebd4 Mon Sep 17 00:00:00 2001 From: Johannes Freden Jansson Date: Wed, 11 Dec 2024 14:57:42 +0100 Subject: [PATCH 2/6] fixup! Spotless --- .../upgrades/FileSettingsRoleMappingUpgradeIT.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java b/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java index b96b93db69f2c..e1c5b1639f4ce 100644 --- a/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java +++ b/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java @@ -10,6 +10,7 @@ package org.elasticsearch.upgrades; import com.carrotsearch.randomizedtesting.annotations.Name; + import org.elasticsearch.client.Request; import org.elasticsearch.core.SuppressForbidden; import org.elasticsearch.test.XContentTestUtils; @@ -73,8 +74,8 @@ public String get() { () -> assumeTrue( "Only relevant when upgrading from a version before role mappings were stored in cluster state", oldClusterHasFeature("gte_v8.7.0") && oldClusterHasFeature("gte_v8.15.0") == false - )); - + ) + ); @ClassRule public static TestRule ruleChain = RuleChain.outerRule(repoDirectory).around(versionLimit).around(cluster); From 7ef3884356a294c99e83b5e365b241ac9d4a7432 Mon Sep 17 00:00:00 2001 From: Johannes Freden Jansson Date: Wed, 11 Dec 2024 16:02:31 +0100 Subject: [PATCH 3/6] fixup! Can not use features since cluster might not exist --- .../upgrades/FileSettingsRoleMappingUpgradeIT.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java b/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java index e1c5b1639f4ce..fccc5e7db5cb9 100644 --- a/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java +++ b/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java @@ -10,12 +10,12 @@ package org.elasticsearch.upgrades; import com.carrotsearch.randomizedtesting.annotations.Name; - import org.elasticsearch.client.Request; import org.elasticsearch.core.SuppressForbidden; import org.elasticsearch.test.XContentTestUtils; import org.elasticsearch.test.cluster.ElasticsearchCluster; import org.elasticsearch.test.cluster.local.distribution.DistributionType; +import org.elasticsearch.test.cluster.util.Version; import org.elasticsearch.test.cluster.util.resource.Resource; import org.elasticsearch.test.junit.RunnableTestRuleAdapter; import org.junit.ClassRule; @@ -73,12 +73,12 @@ public String get() { private static final RunnableTestRuleAdapter versionLimit = new RunnableTestRuleAdapter( () -> assumeTrue( "Only relevant when upgrading from a version before role mappings were stored in cluster state", - oldClusterHasFeature("gte_v8.7.0") && oldClusterHasFeature("gte_v8.15.0") == false + getOldClusterTestVersion().after(new Version(8, 7, 0)) && getOldClusterTestVersion().before(new Version(8, 15, 0)) == false ) ); @ClassRule - public static TestRule ruleChain = RuleChain.outerRule(repoDirectory).around(versionLimit).around(cluster); + public static TestRule ruleChain = RuleChain.outerRule(versionLimit).around(repoDirectory).around(cluster); public FileSettingsRoleMappingUpgradeIT(@Name("upgradedNodes") int upgradedNodes) { super(upgradedNodes); From 2f0842789ecb413f04d1cde7f11c6cb829e35fda Mon Sep 17 00:00:00 2001 From: Johannes Freden Jansson Date: Wed, 11 Dec 2024 16:12:24 +0100 Subject: [PATCH 4/6] fixup! Remove mute --- muted-tests.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/muted-tests.yml b/muted-tests.yml index 85ea63928dc69..fe0f9b5e493bd 100644 --- a/muted-tests.yml +++ b/muted-tests.yml @@ -444,12 +444,3 @@ tests: - class: org.elasticsearch.reservedstate.service.RepositoriesFileSettingsIT method: testSettingsApplied issue: https://github.com/elastic/elasticsearch/issues/116694 -- class: org.elasticsearch.upgrades.FileSettingsRoleMappingUpgradeIT - method: testRoleMappingsAppliedOnUpgrade {upgradedNodes=3} - issue: https://github.com/elastic/elasticsearch/issues/118311 -- class: org.elasticsearch.upgrades.FileSettingsRoleMappingUpgradeIT - method: testRoleMappingsAppliedOnUpgrade {upgradedNodes=1} - issue: https://github.com/elastic/elasticsearch/issues/118309 -- class: org.elasticsearch.upgrades.FileSettingsRoleMappingUpgradeIT - method: testRoleMappingsAppliedOnUpgrade {upgradedNodes=2} - issue: https://github.com/elastic/elasticsearch/issues/118310 From 4f320a49e43e89d0c2e4ad8413f5982d99b6650e Mon Sep 17 00:00:00 2001 From: Johannes Freden Jansson Date: Wed, 11 Dec 2024 16:41:57 +0100 Subject: [PATCH 5/6] fixup! spotless --- .../elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java | 1 + 1 file changed, 1 insertion(+) diff --git a/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java b/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java index fccc5e7db5cb9..7fd6f3bcacaf9 100644 --- a/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java +++ b/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java @@ -10,6 +10,7 @@ package org.elasticsearch.upgrades; import com.carrotsearch.randomizedtesting.annotations.Name; + import org.elasticsearch.client.Request; import org.elasticsearch.core.SuppressForbidden; import org.elasticsearch.test.XContentTestUtils; From 6194e8e19ed5a7dceba7a670945057de448d6d91 Mon Sep 17 00:00:00 2001 From: Johannes Freden Jansson Date: Thu, 12 Dec 2024 09:35:21 +0100 Subject: [PATCH 6/6] fixup! Bug --- .../upgrades/FileSettingsRoleMappingUpgradeIT.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java b/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java index 7fd6f3bcacaf9..d4414f580887a 100644 --- a/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java +++ b/qa/rolling-upgrade/src/javaRestTest/java/org/elasticsearch/upgrades/FileSettingsRoleMappingUpgradeIT.java @@ -74,7 +74,7 @@ public String get() { private static final RunnableTestRuleAdapter versionLimit = new RunnableTestRuleAdapter( () -> assumeTrue( "Only relevant when upgrading from a version before role mappings were stored in cluster state", - getOldClusterTestVersion().after(new Version(8, 7, 0)) && getOldClusterTestVersion().before(new Version(8, 15, 0)) == false + getOldClusterTestVersion().after(new Version(8, 7, 0)) && getOldClusterTestVersion().before(new Version(8, 15, 0)) ) );