From 922725d459a619cdb9a0e02a24427a5eab0bf16e Mon Sep 17 00:00:00 2001 From: Nik Everett Date: Tue, 10 Nov 2020 14:22:02 -0500 Subject: [PATCH 1/2] Prepare to backport runtime_mappings Prepare to backport #64374 by updating some versions constants so we can send `runtime_mappings` to 7.11.0. Also disable bwc tests so they don't fail until we finish the backport. --- build.gradle | 4 ++-- .../search/builder/SearchSourceBuilder.java | 6 +++--- .../elasticsearch/action/search/SearchRequestTests.java | 4 ++-- .../search/builder/SearchSourceBuilderTests.java | 9 +++++++-- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/build.gradle b/build.gradle index 91e43ceceb421..23bf0d5143087 100644 --- a/build.gradle +++ b/build.gradle @@ -175,8 +175,8 @@ tasks.register("verifyVersions") { * after the backport of the backcompat code is complete. */ -boolean bwc_tests_enabled = true -final String bwc_tests_disabled_issue = "" /* place a PR link here when committing bwc changes */ +boolean bwc_tests_enabled = false +final String bwc_tests_disabled_issue = "https://github.com/elastic/elasticsearch/pull/64374" /* place a PR link here when committing bwc changes */ if (bwc_tests_enabled == false) { if (bwc_tests_disabled_issue.isEmpty()) { throw new GradleException("bwc_tests_disabled_issue must be set when bwc_tests_enabled == false") diff --git a/server/src/main/java/org/elasticsearch/search/builder/SearchSourceBuilder.java b/server/src/main/java/org/elasticsearch/search/builder/SearchSourceBuilder.java index c4b0752447b49..980a692060376 100644 --- a/server/src/main/java/org/elasticsearch/search/builder/SearchSourceBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/builder/SearchSourceBuilder.java @@ -256,7 +256,7 @@ public SearchSourceBuilder(StreamInput in) throws IOException { } pointInTimeBuilder = in.readOptionalWriteable(PointInTimeBuilder::new); } - if (in.getVersion().onOrAfter(Version.V_8_0_0)) { + if (in.getVersion().onOrAfter(Version.V_7_11_0)) { runtimeMappings = in.readMap(); } } @@ -320,12 +320,12 @@ public void writeTo(StreamOutput out) throws IOException { } out.writeOptionalWriteable(pointInTimeBuilder); } - if (out.getVersion().onOrAfter(Version.V_8_0_0)) { + if (out.getVersion().onOrAfter(Version.V_7_11_0)) { out.writeMap(runtimeMappings); } else { if (false == runtimeMappings.isEmpty()) { throw new IllegalArgumentException( - "Versions before 8.0.0 don't support [runtime_mappings] and search was sent to [" + out.getVersion() + "]" + "Versions before 7.11.0 don't support [runtime_mappings] and search was sent to [" + out.getVersion() + "]" ); } } diff --git a/server/src/test/java/org/elasticsearch/action/search/SearchRequestTests.java b/server/src/test/java/org/elasticsearch/action/search/SearchRequestTests.java index caa71c030b1e4..68bd6e561795f 100644 --- a/server/src/test/java/org/elasticsearch/action/search/SearchRequestTests.java +++ b/server/src/test/java/org/elasticsearch/action/search/SearchRequestTests.java @@ -81,8 +81,8 @@ public void testSerialization() throws Exception { public void testRandomVersionSerialization() throws IOException { SearchRequest searchRequest = createSearchRequest(); Version version = VersionUtils.randomVersion(random()); - if (version.before(Version.V_8_0_0) && searchRequest.source() != null) { - // Versions before 8.0.0 don't support runtime mappings + if (version.before(Version.V_7_11_0) && searchRequest.source() != null) { + // Versions before 7.11.0 don't support runtime mappings searchRequest.source().runtimeMappings(emptyMap()); } SearchRequest deserializedRequest = copyWriteable(searchRequest, namedWriteableRegistry, SearchRequest::new, version); diff --git a/server/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java b/server/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java index c68f8243640e9..2e2ab7af3aca5 100644 --- a/server/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java @@ -45,6 +45,7 @@ import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.EqualsHashCodeTestUtils; +import org.elasticsearch.test.VersionUtils; import java.io.IOException; import java.util.Map; @@ -101,9 +102,13 @@ public void testSerialization() throws IOException { public void testSerializingWithRuntimeFieldsBeforeSupportedThrows() { SearchSourceBuilder original = new SearchSourceBuilder().runtimeMappings(randomRuntimeMappings()); - Version v = Version.V_8_0_0.minimumCompatibilityVersion(); + Version v = VersionUtils.randomVersionBetween( + random(), + Version.V_7_11_0.minimumCompatibilityVersion(), + VersionUtils.getPreviousVersion(Version.V_7_11_0) + ); Exception e = expectThrows(IllegalArgumentException.class, () -> copyBuilder(original, v)); - assertThat(e.getMessage(), equalTo("Versions before 8.0.0 don't support [runtime_mappings] and search was sent to [" + v + "]")); + assertThat(e.getMessage(), equalTo("Versions before 7.11.0 don't support [runtime_mappings] and search was sent to [" + v + "]")); } public void testShallowCopy() { From 6576e1dad050535e662df925b0ce043015c8e56f Mon Sep 17 00:00:00 2001 From: Nik Everett Date: Tue, 10 Nov 2020 14:57:01 -0500 Subject: [PATCH 2/2] Update --- .../search/builder/SearchSourceBuilderTests.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/server/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java b/server/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java index 2e2ab7af3aca5..b0b8cad9dd08c 100644 --- a/server/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java @@ -102,11 +102,7 @@ public void testSerialization() throws IOException { public void testSerializingWithRuntimeFieldsBeforeSupportedThrows() { SearchSourceBuilder original = new SearchSourceBuilder().runtimeMappings(randomRuntimeMappings()); - Version v = VersionUtils.randomVersionBetween( - random(), - Version.V_7_11_0.minimumCompatibilityVersion(), - VersionUtils.getPreviousVersion(Version.V_7_11_0) - ); + Version v = VersionUtils.randomVersionBetween(random(), Version.V_7_0_0, VersionUtils.getPreviousVersion(Version.V_7_11_0)); Exception e = expectThrows(IllegalArgumentException.class, () -> copyBuilder(original, v)); assertThat(e.getMessage(), equalTo("Versions before 7.11.0 don't support [runtime_mappings] and search was sent to [" + v + "]")); }