Skip to content

Commit e85610f

Browse files
authored
[9.0] Create transport version for 9.0 release (#120936) (#121388)
Also bump the minimum compatible version to something similar to what 8.18 will be
1 parent 6fc96bd commit e85610f

File tree

11 files changed

+8
-488
lines changed

11 files changed

+8
-488
lines changed

server/src/main/java/org/elasticsearch/TransportVersions.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ static TransportVersion def(int id) {
172172
public static final TransportVersion TIMEOUT_GET_PARAM_FOR_RESOLVE_CLUSTER = def(8_838_00_0);
173173
public static final TransportVersion INFERENCE_REQUEST_ADAPTIVE_RATE_LIMITING = def(8_839_00_0);
174174
public static final TransportVersion ML_INFERENCE_IBM_WATSONX_RERANK_ADDED = def(8_840_00_0);
175+
public static final TransportVersion ELASTICSEARCH_9_0 = def(9_000_00_0);
175176

176177
/*
177178
* STOP! READ THIS FIRST! No, really,
@@ -230,15 +231,13 @@ static TransportVersion def(int id) {
230231
* Reference to the earliest compatible transport version to this version of the codebase.
231232
* This should be the transport version used by the highest minor version of the previous major.
232233
*/
233-
@UpdateForV9(owner = UpdateForV9.Owner.CORE_INFRA)
234-
// This needs to be bumped to the 8.last
235-
public static final TransportVersion MINIMUM_COMPATIBLE = V_7_17_0;
234+
public static final TransportVersion MINIMUM_COMPATIBLE = BYTE_SIZE_VALUE_ALWAYS_USES_BYTES_1;
236235

237236
/**
238237
* Reference to the minimum transport version that can be used with CCS.
239238
* This should be the transport version used by the previous minor release.
240239
*/
241-
public static final TransportVersion MINIMUM_CCS_VERSION = V_8_15_0;
240+
public static final TransportVersion MINIMUM_CCS_VERSION = BYTE_SIZE_VALUE_ALWAYS_USES_BYTES_1;
242241

243242
/**
244243
* Sorted list of all versions defined in this class

server/src/test/java/org/elasticsearch/TransportVersionTests.java

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import java.util.Collections;
1717
import java.util.List;
1818
import java.util.Set;
19-
import java.util.TreeSet;
2019
import java.util.regex.Matcher;
2120
import java.util.regex.Pattern;
2221

@@ -199,40 +198,4 @@ public void testToString() {
199198
assertEquals("2000099", TransportVersion.fromId(2_00_00_99).toString());
200199
assertEquals("5000099", TransportVersion.fromId(5_00_00_99).toString());
201200
}
202-
203-
/**
204-
* Until 9.0 bumps its transport version to 9_000_00_0, all transport changes must be backported to 8.x.
205-
* This test ensures transport versions are dense, so that we have confidence backports have not been missed.
206-
* Note that it does not ensure patches are not missed, but it should catch the majority of misordered
207-
* or missing transport versions.
208-
*/
209-
public void testDenseTransportVersions() {
210-
Set<Integer> missingVersions = new TreeSet<>();
211-
TransportVersion previous = null;
212-
for (var tv : TransportVersion.getAllVersions()) {
213-
if (tv.before(TransportVersions.V_8_16_0)) {
214-
continue;
215-
}
216-
if (previous == null) {
217-
previous = tv;
218-
continue;
219-
}
220-
221-
if (previous.id() + 1000 < tv.id()) {
222-
int nextId = previous.id();
223-
do {
224-
nextId = (nextId + 1000) / 1000 * 1000;
225-
missingVersions.add(nextId);
226-
} while (nextId + 1000 < tv.id());
227-
}
228-
previous = tv;
229-
}
230-
if (missingVersions.isEmpty() == false) {
231-
StringBuilder msg = new StringBuilder("Missing transport versions:\n");
232-
for (Integer id : missingVersions) {
233-
msg.append(" " + id + "\n");
234-
}
235-
fail(msg.toString());
236-
}
237-
}
238201
}

server/src/test/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesNodeResponseTests.java

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import org.elasticsearch.test.AbstractWireSerializingTestCase;
2121
import org.elasticsearch.test.TransportVersionUtils;
2222

23-
import java.io.IOException;
2423
import java.util.ArrayList;
2524
import java.util.Collections;
2625
import java.util.Comparator;
@@ -37,7 +36,6 @@
3736
import static org.elasticsearch.action.fieldcaps.FieldCapabilitiesIndexResponseTests.randomMappingHashToIndices;
3837
import static org.hamcrest.Matchers.equalTo;
3938
import static org.hamcrest.Matchers.hasSize;
40-
import static org.hamcrest.Matchers.nullValue;
4139

4240
public class FieldCapabilitiesNodeResponseTests extends AbstractWireSerializingTestCase<FieldCapabilitiesNodeResponse> {
4341

@@ -145,48 +143,6 @@ public void testSerializeNodeResponseBetweenNewNodes() throws Exception {
145143
}
146144
}
147145

148-
public void testSerializeNodeResponseBetweenOldNodes() throws IOException {
149-
final TransportVersion minCompactVersion = TransportVersions.MINIMUM_COMPATIBLE;
150-
assertTrue("Remove this test once minCompactVersion >= 8.2.0", minCompactVersion.before(TransportVersions.V_8_2_0));
151-
List<FieldCapabilitiesIndexResponse> indexResponses = CollectionUtils.concatLists(
152-
randomIndexResponsesWithMappingHash(randomMappingHashToIndices()),
153-
randomIndexResponsesWithoutMappingHash()
154-
);
155-
Randomness.shuffle(indexResponses);
156-
FieldCapabilitiesNodeResponse inResponse = randomNodeResponse(indexResponses);
157-
TransportVersion version = TransportVersionUtils.randomVersionBetween(
158-
random(),
159-
minCompactVersion,
160-
TransportVersionUtils.getPreviousVersion(TransportVersions.V_8_2_0)
161-
);
162-
final FieldCapabilitiesNodeResponse outResponse = copyInstance(inResponse, version);
163-
assertThat(outResponse.getFailures().keySet(), equalTo(inResponse.getFailures().keySet()));
164-
assertThat(outResponse.getUnmatchedShardIds(), equalTo(inResponse.getUnmatchedShardIds()));
165-
final List<FieldCapabilitiesIndexResponse> inList = inResponse.getIndexResponses();
166-
final List<FieldCapabilitiesIndexResponse> outList = outResponse.getIndexResponses();
167-
assertThat(outList, hasSize(inList.size()));
168-
for (int i = 0; i < inList.size(); i++) {
169-
assertThat("Responses between old nodes don't have mapping hash", outList.get(i).getIndexMappingHash(), nullValue());
170-
assertThat(outList.get(i).getIndexName(), equalTo(inList.get(i).getIndexName()));
171-
assertThat(outList.get(i).canMatch(), equalTo(inList.get(i).canMatch()));
172-
Map<String, IndexFieldCapabilities> outCap = outList.get(i).get();
173-
Map<String, IndexFieldCapabilities> inCap = inList.get(i).get();
174-
if (version.onOrAfter(TransportVersions.V_8_0_0)) {
175-
assertThat(outCap, equalTo(inCap));
176-
} else {
177-
// Exclude metric types which was introduced in 8.0
178-
assertThat(outCap.keySet(), equalTo(inCap.keySet()));
179-
for (String field : outCap.keySet()) {
180-
assertThat(outCap.get(field).name(), equalTo(inCap.get(field).name()));
181-
assertThat(outCap.get(field).type(), equalTo(inCap.get(field).type()));
182-
assertThat(outCap.get(field).isSearchable(), equalTo(inCap.get(field).isSearchable()));
183-
assertThat(outCap.get(field).isAggregatable(), equalTo(inCap.get(field).isAggregatable()));
184-
assertThat(outCap.get(field).meta(), equalTo(inCap.get(field).meta()));
185-
}
186-
}
187-
}
188-
}
189-
190146
private static FieldCapabilitiesNodeResponse randomNodeResponse(List<FieldCapabilitiesIndexResponse> indexResponses) {
191147
int numUnmatched = randomIntBetween(0, 3);
192148
final Set<ShardId> unmatchedShardIds = new HashSet<>();

server/src/test/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesResponseTests.java

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import static org.elasticsearch.action.fieldcaps.FieldCapabilitiesIndexResponseTests.randomMappingHashToIndices;
4141
import static org.hamcrest.Matchers.equalTo;
4242
import static org.hamcrest.Matchers.hasSize;
43-
import static org.hamcrest.Matchers.nullValue;
4443

4544
public class FieldCapabilitiesResponseTests extends AbstractWireSerializingTestCase<FieldCapabilitiesResponse> {
4645

@@ -198,48 +197,4 @@ public void testSerializeCCSResponseBetweenNewClusters() throws Exception {
198197
}
199198
}
200199
}
201-
202-
public void testSerializeCCSResponseBetweenOldClusters() throws IOException {
203-
TransportVersion minCompactVersion = TransportVersions.MINIMUM_COMPATIBLE;
204-
assertTrue("Remove this test once minCompactVersion >= 8.2.0", minCompactVersion.before(TransportVersions.V_8_2_0));
205-
List<FieldCapabilitiesIndexResponse> indexResponses = CollectionUtils.concatLists(
206-
randomIndexResponsesWithMappingHash(randomMappingHashToIndices()),
207-
randomIndexResponsesWithoutMappingHash()
208-
);
209-
Randomness.shuffle(indexResponses);
210-
FieldCapabilitiesResponse inResponse = randomCCSResponse(indexResponses);
211-
TransportVersion version = TransportVersionUtils.randomVersionBetween(
212-
random(),
213-
minCompactVersion,
214-
TransportVersionUtils.getPreviousVersion(TransportVersions.V_8_2_0)
215-
);
216-
final FieldCapabilitiesResponse outResponse = copyInstance(inResponse, version);
217-
assertThat(
218-
outResponse.getFailures().stream().flatMap(f -> Arrays.stream(f.getIndices())).toList(),
219-
equalTo(inResponse.getFailures().stream().flatMap(f -> Arrays.stream(f.getIndices())).toList())
220-
);
221-
final List<FieldCapabilitiesIndexResponse> inList = inResponse.getIndexResponses();
222-
final List<FieldCapabilitiesIndexResponse> outList = outResponse.getIndexResponses();
223-
assertThat(outList, hasSize(inList.size()));
224-
for (int i = 0; i < inList.size(); i++) {
225-
assertThat("Responses between old clusters don't have mapping hash", outList.get(i).getIndexMappingHash(), nullValue());
226-
assertThat(outList.get(i).getIndexName(), equalTo(inList.get(i).getIndexName()));
227-
assertThat(outList.get(i).canMatch(), equalTo(inList.get(i).canMatch()));
228-
Map<String, IndexFieldCapabilities> outCap = outList.get(i).get();
229-
Map<String, IndexFieldCapabilities> inCap = inList.get(i).get();
230-
if (version.onOrAfter(TransportVersions.V_8_0_0)) {
231-
assertThat(outCap, equalTo(inCap));
232-
} else {
233-
// Exclude metric types which was introduced in 8.0
234-
assertThat(outCap.keySet(), equalTo(inCap.keySet()));
235-
for (String field : outCap.keySet()) {
236-
assertThat(outCap.get(field).name(), equalTo(inCap.get(field).name()));
237-
assertThat(outCap.get(field).type(), equalTo(inCap.get(field).type()));
238-
assertThat(outCap.get(field).isSearchable(), equalTo(inCap.get(field).isSearchable()));
239-
assertThat(outCap.get(field).isAggregatable(), equalTo(inCap.get(field).isAggregatable()));
240-
assertThat(outCap.get(field).meta(), equalTo(inCap.get(field).meta()));
241-
}
242-
}
243-
}
244-
}
245200
}

server/src/test/java/org/elasticsearch/cluster/action/shard/ShardStateActionTests.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -612,11 +612,7 @@ public void testStartedShardEntrySerializationWithOlderTransportVersion() throws
612612
final String allocationId = randomRealisticUnicodeOfCodepointLengthBetween(10, 100);
613613
final long primaryTerm = randomIntBetween(0, 100);
614614
final String message = randomRealisticUnicodeOfCodepointLengthBetween(10, 100);
615-
final TransportVersion version = randomFrom(
616-
getFirstVersion(),
617-
getPreviousVersion(TransportVersions.MINIMUM_COMPATIBLE),
618-
getPreviousVersion(TransportVersions.V_8_15_0)
619-
);
615+
final TransportVersion version = randomFrom(getFirstVersion(), getPreviousVersion(TransportVersions.V_8_15_0));
620616
final ShardLongFieldRange timestampRange = ShardLongFieldRangeWireTests.randomRange();
621617
final ShardLongFieldRange eventIngestedRange = ShardLongFieldRangeWireTests.randomRange();
622618
var startedShardEntry = new StartedShardEntry(shardId, allocationId, primaryTerm, message, timestampRange, eventIngestedRange);

server/src/test/java/org/elasticsearch/cluster/node/DiscoveryNodeTests.java

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@
3131
import static java.util.Collections.emptySet;
3232
import static org.elasticsearch.test.NodeRoles.nonRemoteClusterClientNode;
3333
import static org.elasticsearch.test.NodeRoles.remoteClusterClientNode;
34-
import static org.elasticsearch.test.TransportVersionUtils.getPreviousVersion;
35-
import static org.elasticsearch.test.TransportVersionUtils.randomVersionBetween;
3634
import static org.hamcrest.Matchers.allOf;
3735
import static org.hamcrest.Matchers.containsString;
3836
import static org.hamcrest.Matchers.equalTo;
@@ -274,39 +272,5 @@ public void testDiscoveryNodeMinReadOnlyVersionSerialization() throws Exception
274272
}
275273
}
276274
}
277-
278-
{
279-
var oldVersion = randomVersionBetween(
280-
random(),
281-
TransportVersions.MINIMUM_COMPATIBLE,
282-
getPreviousVersion(TransportVersions.NODE_VERSION_INFORMATION_WITH_MIN_READ_ONLY_INDEX_VERSION)
283-
);
284-
try (var out = new BytesStreamOutput()) {
285-
out.setTransportVersion(oldVersion);
286-
node.writeTo(out);
287-
288-
try (var in = StreamInput.wrap(out.bytes().array())) {
289-
in.setTransportVersion(oldVersion);
290-
291-
var deserialized = new DiscoveryNode(in);
292-
assertThat(deserialized.getId(), equalTo(node.getId()));
293-
assertThat(deserialized.getAddress(), equalTo(node.getAddress()));
294-
assertThat(deserialized.getMinIndexVersion(), equalTo(node.getMinIndexVersion()));
295-
assertThat(deserialized.getMaxIndexVersion(), equalTo(node.getMaxIndexVersion()));
296-
assertThat(deserialized.getMinReadOnlyIndexVersion(), equalTo(node.getMinIndexVersion()));
297-
assertThat(
298-
deserialized.getVersionInformation(),
299-
equalTo(
300-
new VersionInformation(
301-
node.getBuildVersion(),
302-
node.getMinIndexVersion(),
303-
node.getMinIndexVersion(),
304-
node.getMaxIndexVersion()
305-
)
306-
)
307-
);
308-
}
309-
}
310-
}
311275
}
312276
}

server/src/test/java/org/elasticsearch/index/mapper/MappingParserTests.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.elasticsearch.index.similarity.SimilarityService;
2323
import org.elasticsearch.indices.IndicesModule;
2424
import org.elasticsearch.script.ScriptService;
25-
import org.elasticsearch.test.TransportVersionUtils;
2625
import org.elasticsearch.test.index.IndexVersionUtils;
2726
import org.elasticsearch.xcontent.XContentBuilder;
2827
import org.hamcrest.CoreMatchers;
@@ -327,11 +326,7 @@ public void testBlankFieldNameBefore8_6_0() throws Exception {
327326
IndexVersions.MINIMUM_READONLY_COMPATIBLE,
328327
IndexVersions.V_8_5_0
329328
);
330-
TransportVersion transportVersion = TransportVersionUtils.randomVersionBetween(
331-
random(),
332-
TransportVersions.MINIMUM_COMPATIBLE,
333-
TransportVersions.V_8_5_0
334-
);
329+
TransportVersion transportVersion = TransportVersions.V_8_5_0;
335330
{
336331
XContentBuilder builder = mapping(b -> b.startObject(" ").field("type", randomFieldType()).endObject());
337332
MappingParser mappingParser = createMappingParser(Settings.EMPTY, version, transportVersion);

x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/CoordinatedInferenceActionRequestTests.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ protected CoordinatedInferenceAction.Request mutateInstanceForVersion(
120120
instance.setPrefixType(TrainedModelPrefixStrings.PrefixType.NONE);
121121
}
122122

123-
return new CoordinatedInferenceAction.Request(
123+
var newInstance = new CoordinatedInferenceAction.Request(
124124
instance.getModelId(),
125125
instance.getInputs(),
126126
instance.getTaskSettings(),
@@ -131,5 +131,7 @@ protected CoordinatedInferenceAction.Request mutateInstanceForVersion(
131131
instance.getHighPriority(),
132132
instance.getRequestModelType()
133133
);
134+
newInstance.setPrefixType(instance.getPrefixType());
135+
return newInstance;
134136
}
135137
}

0 commit comments

Comments
 (0)