diff --git a/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/FullClusterRestartIT.java b/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/FullClusterRestartIT.java index 5e17769398c49..5c1f636267a1d 100644 --- a/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/FullClusterRestartIT.java +++ b/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/FullClusterRestartIT.java @@ -430,6 +430,17 @@ public void testShrinkAfterUpgrade() throws IOException { if (runningAgainstOldCluster) { XContentBuilder mappingsAndSettings = jsonBuilder(); mappingsAndSettings.startObject(); + if (oldClusterVersion.major == 5 && randomBoolean()) { + { + // test that mapping.single_type is correctly propagated on the shrinked index, + // if not, search will fail. + mappingsAndSettings.startObject("settings"); + mappingsAndSettings.startObject("mapping"); + mappingsAndSettings.field("single_type", true); + mappingsAndSettings.endObject(); + mappingsAndSettings.endObject(); + } + } { mappingsAndSettings.startObject("mappings"); mappingsAndSettings.startObject("doc"); diff --git a/server/src/main/java/org/elasticsearch/cluster/metadata/MetaDataCreateIndexService.java b/server/src/main/java/org/elasticsearch/cluster/metadata/MetaDataCreateIndexService.java index d394c2c7d1479..62f1d0e76cbcd 100644 --- a/server/src/main/java/org/elasticsearch/cluster/metadata/MetaDataCreateIndexService.java +++ b/server/src/main/java/org/elasticsearch/cluster/metadata/MetaDataCreateIndexService.java @@ -695,9 +695,9 @@ static void prepareResizeIndexSettings(ClusterState currentState, Set ma } final Predicate sourceSettingsPredicate = (s) -> s.startsWith("index.similarity.") - || s.startsWith("index.analysis.") || s.startsWith("index.sort."); + || s.startsWith("index.analysis.") || s.startsWith("index.sort.") || s.equals("index.mapping.single_type"); indexSettingsBuilder - // now copy all similarity / analysis / sort settings - this overrides all settings from the user unless they + // now copy all similarity / analysis / sort / single_type settings - this overrides all settings from the user unless they // wanna add extra settings .put(IndexMetaData.SETTING_VERSION_CREATED, sourceMetaData.getCreationVersion()) .put(IndexMetaData.SETTING_VERSION_UPGRADED, sourceMetaData.getUpgradedVersion())