Skip to content

Commit c0e4bb2

Browse files
committed
Mark index.merge.policy.max_merge_at_once_explicit not to be accepted in v10
Introduce `Property.IndexSettingDeprecatedInV9AndRemovedInV10` property setting to mark index settings that accepted on 9.x indices, but not on 10.0. See elastic#80574, elastic#90264 See ES-11224
1 parent 6036a1e commit c0e4bb2

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

server/src/main/java/org/elasticsearch/common/settings/Setting.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,13 @@ public enum Property {
166166
*/
167167
IndexSettingDeprecatedInV8AndRemovedInV9,
168168

169+
/**
170+
* Indicates that this index-level setting was deprecated in {@link Version#V_9_1_0} and is
171+
* forbidden in indices created from V10 onwards.
172+
* TODO Should be checked in {@link Setting#isDeprecatedAndRemoved}
173+
*/
174+
IndexSettingDeprecatedInV9AndRemovedInV10,
175+
169176
/**
170177
* Indicates that this setting is accessible by non-operator users (public) in serverless
171178
* Users will be allowed to set and see values of this setting.
@@ -188,7 +195,8 @@ public enum Property {
188195
Property.Deprecated,
189196
Property.DeprecatedWarning,
190197
Property.IndexSettingDeprecatedInV7AndRemovedInV8,
191-
Property.IndexSettingDeprecatedInV8AndRemovedInV9
198+
Property.IndexSettingDeprecatedInV8AndRemovedInV9,
199+
Property.IndexSettingDeprecatedInV9AndRemovedInV10
192200
);
193201

194202
@SuppressWarnings("this-escape")
@@ -229,6 +237,7 @@ private Setting(
229237
checkPropertyRequiresIndexScope(propertiesAsSet, Property.PrivateIndex);
230238
checkPropertyRequiresIndexScope(propertiesAsSet, Property.IndexSettingDeprecatedInV7AndRemovedInV8);
231239
checkPropertyRequiresIndexScope(propertiesAsSet, Property.IndexSettingDeprecatedInV8AndRemovedInV9);
240+
checkPropertyRequiresIndexScope(propertiesAsSet, Property.IndexSettingDeprecatedInV9AndRemovedInV10);
232241
checkPropertyRequiresNodeScope(propertiesAsSet);
233242
this.properties = propertiesAsSet;
234243
}
@@ -464,7 +473,8 @@ private boolean isDeprecated() {
464473
return properties.contains(Property.Deprecated)
465474
|| properties.contains(Property.DeprecatedWarning)
466475
|| properties.contains(Property.IndexSettingDeprecatedInV7AndRemovedInV8)
467-
|| properties.contains(Property.IndexSettingDeprecatedInV8AndRemovedInV9);
476+
|| properties.contains(Property.IndexSettingDeprecatedInV8AndRemovedInV9)
477+
|| properties.contains(Property.IndexSettingDeprecatedInV9AndRemovedInV10);
468478
}
469479

470480
private boolean isDeprecatedWarningOnly() {

server/src/main/java/org/elasticsearch/index/MergePolicyConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ MergePolicy getMergePolicy(MergePolicyConfig config, boolean isTimeBasedIndex) {
236236
"index.merge.policy.max_merge_at_once_explicit",
237237
30,
238238
2,
239-
Property.Deprecated, // When removing in 9.0 follow the approach of IndexSettingDeprecatedInV7AndRemovedInV8
239+
Property.IndexSettingDeprecatedInV9AndRemovedInV10,
240240
Property.Dynamic,
241241
Property.IndexScope
242242
);

server/src/test/java/org/elasticsearch/common/settings/SettingTests.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1529,6 +1529,19 @@ public void testDeprecationPropertyValidation() {
15291529
IllegalArgumentException.class,
15301530
() -> Setting.boolSetting("a.bool.setting", true, Property.DeprecatedWarning, Property.IndexSettingDeprecatedInV8AndRemovedInV9)
15311531
);
1532+
expectThrows(
1533+
IllegalArgumentException.class,
1534+
() -> Setting.boolSetting("a.bool.setting", true, Property.Deprecated, Property.IndexSettingDeprecatedInV9AndRemovedInV10)
1535+
);
1536+
expectThrows(
1537+
IllegalArgumentException.class,
1538+
() -> Setting.boolSetting(
1539+
"a.bool.setting",
1540+
true,
1541+
Property.DeprecatedWarning,
1542+
Property.IndexSettingDeprecatedInV9AndRemovedInV10
1543+
)
1544+
);
15321545
}
15331546

15341547
public void testIntSettingBounds() {

0 commit comments

Comments
 (0)