From 91878919cbe9913995ba6bab67b7898e18e85008 Mon Sep 17 00:00:00 2001 From: Jack Conradson Date: Fri, 10 Oct 2025 14:11:06 -0700 Subject: [PATCH] Revert "Remove transport version V_8_16_1 (#136335)" This reverts commit a50937811b474d5f199ae77d35e5a020d1765f24. --- .../org/elasticsearch/TransportVersions.java | 1 + .../admin/cluster/node/info/NodeInfo.java | 12 +++++++++-- .../search/builder/SearchSourceBuilder.java | 10 +++++++-- .../rules/QueryRulesetListItem.java | 12 +++++++++-- ...setsActionResponseBWCSerializingTests.java | 21 ++++++++++++++++++- 5 files changed, 49 insertions(+), 7 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/TransportVersions.java b/server/src/main/java/org/elasticsearch/TransportVersions.java index dcdcc3c640fb9..528cd03c3b55c 100644 --- a/server/src/main/java/org/elasticsearch/TransportVersions.java +++ b/server/src/main/java/org/elasticsearch/TransportVersions.java @@ -77,6 +77,7 @@ static TransportVersion def(int id) { public static final TransportVersion V_8_15_0 = def(8_702_0_02); public static final TransportVersion V_8_15_2 = def(8_702_0_03); public static final TransportVersion V_8_16_0 = def(8_772_0_01); + public static final TransportVersion V_8_16_1 = def(8_772_0_04); // TODO: leave this version until the very end to satisfy max transport version test public static final TransportVersion INITIAL_ELASTICSEARCH_8_17_5 = def(8_797_0_05); diff --git a/server/src/main/java/org/elasticsearch/action/admin/cluster/node/info/NodeInfo.java b/server/src/main/java/org/elasticsearch/action/admin/cluster/node/info/NodeInfo.java index e4308561042a2..e52b29438999d 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/cluster/node/info/NodeInfo.java +++ b/server/src/main/java/org/elasticsearch/action/admin/cluster/node/info/NodeInfo.java @@ -66,7 +66,11 @@ public NodeInfo(StreamInput in) throws IOException { super(in); if (in.getTransportVersion().onOrAfter(TransportVersions.V_8_12_0)) { version = in.readString(); - compatibilityVersions = CompatibilityVersions.readVersion(in); + if (in.getTransportVersion().onOrAfter(TransportVersions.V_8_16_1)) { + compatibilityVersions = CompatibilityVersions.readVersion(in); + } else { + compatibilityVersions = new CompatibilityVersions(TransportVersion.readVersion(in), Map.of()); // unknown mappings versions + } indexVersion = IndexVersion.readVersion(in); } else { Version legacyVersion = Version.readVersion(in); @@ -247,7 +251,11 @@ public void writeTo(StreamOutput out) throws IOException { } else { Version.writeVersion(Version.fromString(version), out); } - compatibilityVersions.writeTo(out); + if (out.getTransportVersion().onOrAfter(TransportVersions.V_8_16_1)) { + compatibilityVersions.writeTo(out); + } else if (out.getTransportVersion().onOrAfter(TransportVersions.V_8_8_0)) { + TransportVersion.writeVersion(compatibilityVersions.transportVersion(), out); + } if (out.getTransportVersion().onOrAfter(TransportVersions.V_8_11_X)) { IndexVersion.writeVersion(indexVersion, out); out.writeMap(componentVersions, StreamOutput::writeString, StreamOutput::writeVInt); 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 736d0a931ad55..8c9603e043524 100644 --- a/server/src/main/java/org/elasticsearch/search/builder/SearchSourceBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/builder/SearchSourceBuilder.java @@ -281,7 +281,11 @@ public SearchSourceBuilder(StreamInput in) throws IOException { if (in.getTransportVersion().onOrAfter(TransportVersions.V_8_8_0)) { rankBuilder = in.readOptionalNamedWriteable(RankBuilder.class); } - skipInnerHits = in.readBoolean(); + if (in.getTransportVersion().onOrAfter(TransportVersions.V_8_16_1)) { + skipInnerHits = in.readBoolean(); + } else { + skipInnerHits = false; + } } @Override @@ -348,7 +352,9 @@ public void writeTo(StreamOutput out) throws IOException { } else if (rankBuilder != null) { throw new IllegalArgumentException("cannot serialize [rank] to version [" + out.getTransportVersion().toReleaseVersion() + "]"); } - out.writeBoolean(skipInnerHits); + if (out.getTransportVersion().onOrAfter(TransportVersions.V_8_16_1)) { + out.writeBoolean(skipInnerHits); + } } /** diff --git a/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/rules/QueryRulesetListItem.java b/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/rules/QueryRulesetListItem.java index af042c57a8937..88a61d50f8d52 100644 --- a/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/rules/QueryRulesetListItem.java +++ b/x-pack/plugin/ent-search/src/main/java/org/elasticsearch/xpack/application/rules/QueryRulesetListItem.java @@ -67,7 +67,12 @@ public QueryRulesetListItem(StreamInput in) throws IOException { } else { this.criteriaTypeToCountMap = Map.of(); } - this.ruleTypeToCountMap = in.readMap(m -> in.readEnum(QueryRule.QueryRuleType.class), StreamInput::readInt); + TransportVersion streamTransportVersion = in.getTransportVersion(); + if (streamTransportVersion.onOrAfter(TransportVersions.V_8_16_1)) { + this.ruleTypeToCountMap = in.readMap(m -> in.readEnum(QueryRule.QueryRuleType.class), StreamInput::readInt); + } else { + this.ruleTypeToCountMap = Map.of(); + } } @Override @@ -96,7 +101,10 @@ public void writeTo(StreamOutput out) throws IOException { if (out.getTransportVersion().onOrAfter(EXPANDED_RULESET_COUNT_TRANSPORT_VERSION)) { out.writeMap(criteriaTypeToCountMap, StreamOutput::writeEnum, StreamOutput::writeInt); } - out.writeMap(ruleTypeToCountMap, StreamOutput::writeEnum, StreamOutput::writeInt); + TransportVersion streamTransportVersion = out.getTransportVersion(); + if (streamTransportVersion.onOrAfter(TransportVersions.V_8_16_1)) { + out.writeMap(ruleTypeToCountMap, StreamOutput::writeEnum, StreamOutput::writeInt); + } } /** diff --git a/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/rules/action/ListQueryRulesetsActionResponseBWCSerializingTests.java b/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/rules/action/ListQueryRulesetsActionResponseBWCSerializingTests.java index 47363f0a4bcb7..7f22866de4412 100644 --- a/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/rules/action/ListQueryRulesetsActionResponseBWCSerializingTests.java +++ b/x-pack/plugin/ent-search/src/test/java/org/elasticsearch/xpack/application/rules/action/ListQueryRulesetsActionResponseBWCSerializingTests.java @@ -8,6 +8,7 @@ package org.elasticsearch.xpack.application.rules.action; import org.elasticsearch.TransportVersion; +import org.elasticsearch.TransportVersions; import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.xpack.application.EnterpriseSearchModuleTestUtils; import org.elasticsearch.xpack.application.rules.QueryRule; @@ -16,6 +17,8 @@ import org.elasticsearch.xpack.application.rules.QueryRulesetListItem; import org.elasticsearch.xpack.core.ml.AbstractBWCWireSerializationTestCase; +import java.util.ArrayList; +import java.util.List; import java.util.Map; public class ListQueryRulesetsActionResponseBWCSerializingTests extends AbstractBWCWireSerializationTestCase< @@ -56,6 +59,22 @@ protected ListQueryRulesetsAction.Response mutateInstanceForVersion( ListQueryRulesetsAction.Response instance, TransportVersion version ) { - return instance; + if (version.onOrAfter(TransportVersions.V_8_16_1)) { + return instance; + } else if (version.onOrAfter(QueryRulesetListItem.EXPANDED_RULESET_COUNT_TRANSPORT_VERSION)) { + List updatedResults = new ArrayList<>(); + for (QueryRulesetListItem listItem : instance.queryPage.results()) { + updatedResults.add( + new QueryRulesetListItem(listItem.rulesetId(), listItem.ruleTotalCount(), listItem.criteriaTypeToCountMap(), Map.of()) + ); + } + return new ListQueryRulesetsAction.Response(updatedResults, instance.queryPage.count()); + } else { + List updatedResults = new ArrayList<>(); + for (QueryRulesetListItem listItem : instance.queryPage.results()) { + updatedResults.add(new QueryRulesetListItem(listItem.rulesetId(), listItem.ruleTotalCount(), Map.of(), Map.of())); + } + return new ListQueryRulesetsAction.Response(updatedResults, instance.queryPage.count()); + } } }