Skip to content

Commit 588929a

Browse files
authored
Revert change to transport protocol (#115009)
Add a new version for reverting the change - in v9, this just adds a boolean. This is so the transport protocol is the same between 8.x and main, for ease of backports. When the versions are collapsed, this can be removed.
1 parent 6d039c2 commit 588929a

File tree

3 files changed

+28
-3
lines changed

3 files changed

+28
-3
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ static TransportVersion def(int id) {
175175
public static final TransportVersion ML_INFERENCE_ATTACH_TO_EXISTSING_DEPLOYMENT = def(8_771_00_0);
176176
public static final TransportVersion CONVERT_FAILURE_STORE_OPTIONS_TO_SELECTOR_OPTIONS_INTERNALLY = def(8_772_00_0);
177177
public static final TransportVersion REMOVE_MIN_COMPATIBLE_SHARD_NODE = def(8_773_00_0);
178+
public static final TransportVersion REVERT_REMOVE_MIN_COMPATIBLE_SHARD_NODE = def(8_774_00_0);
178179

179180
/*
180181
* STOP! READ THIS FIRST! No, really,

server/src/main/java/org/elasticsearch/action/search/SearchRequest.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.elasticsearch.common.io.stream.StreamOutput;
2121
import org.elasticsearch.core.Nullable;
2222
import org.elasticsearch.core.TimeValue;
23+
import org.elasticsearch.core.UpdateForV9;
2324
import org.elasticsearch.index.mapper.SourceLoader;
2425
import org.elasticsearch.index.query.QueryRewriteContext;
2526
import org.elasticsearch.index.query.Rewriteable;
@@ -254,8 +255,10 @@ public SearchRequest(StreamInput in) throws IOException {
254255
finalReduce = true;
255256
}
256257
ccsMinimizeRoundtrips = in.readBoolean();
257-
if (in.getTransportVersion().before(TransportVersions.REMOVE_MIN_COMPATIBLE_SHARD_NODE) && in.readBoolean()) {
258-
Version.readVersion(in); // and drop on the floor
258+
if ((in.getTransportVersion().before(TransportVersions.REMOVE_MIN_COMPATIBLE_SHARD_NODE)
259+
|| in.getTransportVersion().onOrAfter(TransportVersions.REVERT_REMOVE_MIN_COMPATIBLE_SHARD_NODE)) && in.readBoolean()) {
260+
@UpdateForV9(owner = UpdateForV9.Owner.CORE_INFRA) // this can be removed (again) when the v9 transport version can diverge
261+
Version v = Version.readVersion(in); // and drop on the floor
259262
}
260263
waitForCheckpoints = in.readMap(StreamInput::readLongArray);
261264
waitForCheckpointsTimeout = in.readTimeValue();
@@ -291,7 +294,8 @@ public void writeTo(StreamOutput out) throws IOException {
291294
out.writeBoolean(finalReduce);
292295
}
293296
out.writeBoolean(ccsMinimizeRoundtrips);
294-
if (out.getTransportVersion().before(TransportVersions.REMOVE_MIN_COMPATIBLE_SHARD_NODE)) {
297+
if (out.getTransportVersion().before(TransportVersions.REMOVE_MIN_COMPATIBLE_SHARD_NODE)
298+
|| out.getTransportVersion().onOrAfter(TransportVersions.REVERT_REMOVE_MIN_COMPATIBLE_SHARD_NODE)) {
295299
out.writeBoolean(false);
296300
}
297301
out.writeMap(waitForCheckpoints, StreamOutput::writeLongArray);

server/src/test/java/org/elasticsearch/action/search/SearchRequestTests.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,12 @@
1616
import org.elasticsearch.common.Strings;
1717
import org.elasticsearch.common.bytes.BytesArray;
1818
import org.elasticsearch.common.io.stream.BytesStreamOutput;
19+
import org.elasticsearch.common.io.stream.NamedWriteableAwareStreamInput;
20+
import org.elasticsearch.common.io.stream.StreamInput;
1921
import org.elasticsearch.common.io.stream.StreamOutput;
2022
import org.elasticsearch.common.util.ArrayUtils;
2123
import org.elasticsearch.core.TimeValue;
24+
import org.elasticsearch.core.UpdateForV9;
2225
import org.elasticsearch.index.query.QueryBuilder;
2326
import org.elasticsearch.index.query.QueryBuilders;
2427
import org.elasticsearch.index.query.TermQueryBuilder;
@@ -102,6 +105,23 @@ public void testSerialization() throws Exception {
102105
assertNotSame(deserializedRequest, searchRequest);
103106
}
104107

108+
@UpdateForV9(owner = UpdateForV9.Owner.CORE_INFRA) // this can be removed when the affected transport version constants are collapsed
109+
public void testSerializationConstants() throws Exception {
110+
SearchRequest searchRequest = createSearchRequest();
111+
112+
// something serialized with previous version to remove, should read correctly with the reversion
113+
try (BytesStreamOutput output = new BytesStreamOutput()) {
114+
output.setTransportVersion(TransportVersionUtils.getPreviousVersion(TransportVersions.REMOVE_MIN_COMPATIBLE_SHARD_NODE));
115+
searchRequest.writeTo(output);
116+
try (StreamInput in = new NamedWriteableAwareStreamInput(output.bytes().streamInput(), namedWriteableRegistry)) {
117+
in.setTransportVersion(TransportVersions.REVERT_REMOVE_MIN_COMPATIBLE_SHARD_NODE);
118+
SearchRequest copiedRequest = new SearchRequest(in);
119+
assertEquals(copiedRequest, searchRequest);
120+
assertEquals(copiedRequest.hashCode(), searchRequest.hashCode());
121+
}
122+
}
123+
}
124+
105125
public void testSerializationMultiKNN() throws Exception {
106126
SearchRequest searchRequest = createSearchRequest();
107127
if (searchRequest.source() == null) {

0 commit comments

Comments
 (0)