Skip to content

Commit fe5bdb4

Browse files
Likejasontedor
Like
authored andcommitted
Reject index.optimize_auto_generated_id setting (#28895)
This commit rejects the index.optmize_auto_generated_id setting for indices created on or after 7.0.0. This setting was deprecated in 6.7.0.
1 parent fb6e7a3 commit fe5bdb4

File tree

2 files changed

+49
-0
lines changed

2 files changed

+49
-0
lines changed

server/src/main/java/org/elasticsearch/indices/IndicesService.java

+6
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
import org.elasticsearch.index.analysis.AnalysisRegistry;
8484
import org.elasticsearch.index.cache.request.ShardRequestCache;
8585
import org.elasticsearch.index.engine.CommitStats;
86+
import org.elasticsearch.index.engine.EngineConfig;
8687
import org.elasticsearch.index.engine.EngineFactory;
8788
import org.elasticsearch.index.engine.InternalEngineFactory;
8889
import org.elasticsearch.index.fielddata.IndexFieldDataCache;
@@ -493,6 +494,11 @@ private synchronized IndexService createIndexService(final String reason,
493494
List<IndexEventListener> builtInListeners,
494495
IndexingOperationListener... indexingOperationListeners) throws IOException {
495496
final IndexSettings idxSettings = new IndexSettings(indexMetaData, settings, indexScopedSettings);
497+
if (idxSettings.getIndexVersionCreated().onOrAfter(Version.V_7_0_0)
498+
&& EngineConfig.INDEX_OPTIMIZE_AUTO_GENERATED_IDS.exists(idxSettings.getSettings())) {
499+
throw new IllegalArgumentException(
500+
"Setting [" + EngineConfig.INDEX_OPTIMIZE_AUTO_GENERATED_IDS.getKey() + "] was removed in version 7.0.0");
501+
}
496502
// we ignore private settings since they are not registered settings
497503
indexScopedSettings.validate(indexMetaData.getSettings(), true, true, true);
498504
logger.debug("creating Index [{}], shards [{}]/[{}] - reason [{}]",

server/src/test/java/org/elasticsearch/indices/IndicesServiceTests.java

+43
Original file line numberDiff line numberDiff line change
@@ -642,5 +642,48 @@ public static ClusterState createClusterForShardLimitTest(int nodesInCluster, in
642642
.build();
643643
}
644644

645+
public void testOptimizeAutoGeneratedIdsSettingRemoval() throws Exception {
646+
final IndicesService indicesService = getIndicesService();
647+
648+
final Index index = new Index("foo-index", UUIDs.randomBase64UUID());
649+
Settings.Builder builder = Settings.builder()
650+
.put(IndexMetaData.SETTING_VERSION_CREATED, Version.V_7_0_0)
651+
.put(IndexMetaData.SETTING_INDEX_UUID, index.getUUID());
652+
IndexMetaData indexMetaData = new IndexMetaData.Builder(index.getName())
653+
.settings(builder.build())
654+
.numberOfShards(1)
655+
.numberOfReplicas(0)
656+
.build();
657+
IndexService indexService = indicesService.createIndex(indexMetaData, Collections.emptyList());
658+
assertNotNull(indexService);
659+
660+
final Index index2 = new Index("bar-index", UUIDs.randomBase64UUID());
661+
Settings.Builder builder2 = Settings.builder()
662+
.put(IndexMetaData.SETTING_VERSION_CREATED, Version.V_7_0_0)
663+
.put(IndexMetaData.SETTING_INDEX_UUID, index2.getUUID())
664+
.put(EngineConfig.INDEX_OPTIMIZE_AUTO_GENERATED_IDS.getKey(), randomBoolean());
665+
IndexMetaData indexMetaData2 = new IndexMetaData.Builder(index2.getName())
666+
.settings(builder2.build())
667+
.numberOfShards(1)
668+
.numberOfReplicas(0)
669+
.build();
670+
IllegalArgumentException ex = expectThrows(IllegalArgumentException.class,
671+
() -> indicesService.createIndex(indexMetaData2, Collections.emptyList()));
672+
assertEquals("Setting [" + EngineConfig.INDEX_OPTIMIZE_AUTO_GENERATED_IDS.getKey() + "] was removed in version 7.0.0",
673+
ex.getMessage());
674+
675+
Version version = randomFrom(Version.V_6_0_0_rc1, Version.V_6_0_0, Version.V_6_2_0, Version.V_6_3_0, Version.V_6_4_0);
676+
builder = Settings.builder()
677+
.put(IndexMetaData.SETTING_VERSION_CREATED, version)
678+
.put(IndexMetaData.SETTING_INDEX_UUID, index2.getUUID())
679+
.put(EngineConfig.INDEX_OPTIMIZE_AUTO_GENERATED_IDS.getKey(), randomBoolean());
680+
IndexMetaData indexMetaData3 = new IndexMetaData.Builder(index2.getName())
681+
.settings(builder.build())
682+
.numberOfShards(1)
683+
.numberOfReplicas(0)
684+
.build();
685+
IndexService indexService2 = indicesService.createIndex(indexMetaData3, Collections.emptyList());
686+
assertNotNull(indexService2);
687+
}
645688

646689
}

0 commit comments

Comments
 (0)