Skip to content

Commit e7e60ee

Browse files
Merge branch 'main' into sa-filter-reserved-roles-from-get-roles-api
2 parents f658590 + c594067 commit e7e60ee

File tree

18 files changed

+220
-102
lines changed

18 files changed

+220
-102
lines changed

muted-tests.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,12 @@ tests:
400400
- class: org.elasticsearch.xpack.esql.parser.StatementParserTests
401401
method: testInvalidJoinPatterns
402402
issue: https://github.com/elastic/elasticsearch/issues/121968
403+
- class: org.elasticsearch.smoketest.SmokeTestMultiNodeClientYamlTestSuiteIT
404+
method: test {yaml=update/100_synthetic_source/stored text}
405+
issue: https://github.com/elastic/elasticsearch/issues/121991
406+
- class: org.elasticsearch.smoketest.SmokeTestMultiNodeClientYamlTestSuiteIT
407+
method: test {yaml=update/100_synthetic_source/keyword}
408+
issue: https://github.com/elastic/elasticsearch/issues/121992
403409

404410
# Examples:
405411
#

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,12 +174,17 @@ static TransportVersion def(int id) {
174174
public static final TransportVersion ML_INFERENCE_IBM_WATSONX_RERANK_ADDED = def(8_840_0_00);
175175
public static final TransportVersion COHERE_BIT_EMBEDDING_TYPE_SUPPORT_ADDED_BACKPORT_8_X = def(8_840_0_01);
176176
public static final TransportVersion ELASTICSEARCH_9_0 = def(9_000_0_00);
177+
public static final TransportVersion REMOVE_SNAPSHOT_FAILURES_90 = def(9_000_0_01);
178+
public static final TransportVersion TRANSPORT_STATS_HANDLING_TIME_REQUIRED_90 = def(9_000_0_02);
179+
public static final TransportVersion REMOVE_DESIRED_NODE_VERSION_90 = def(9_000_0_03);
180+
public static final TransportVersion ESQL_DRIVER_TASK_DESCRIPTION_90 = def(9_000_0_04);
177181
public static final TransportVersion COHERE_BIT_EMBEDDING_TYPE_SUPPORT_ADDED = def(9_001_0_00);
178182
public static final TransportVersion REMOVE_SNAPSHOT_FAILURES = def(9_002_0_00);
179183
public static final TransportVersion TRANSPORT_STATS_HANDLING_TIME_REQUIRED = def(9_003_0_00);
180184
public static final TransportVersion REMOVE_DESIRED_NODE_VERSION = def(9_004_0_00);
181185
public static final TransportVersion ESQL_DRIVER_TASK_DESCRIPTION = def(9_005_0_00);
182186
public static final TransportVersion ESQL_RETRY_ON_SHARD_LEVEL_FAILURE = def(9_006_0_00);
187+
public static final TransportVersion ESQL_PROFILE_ASYNC_NANOS = def(9_007_00_0);
183188

184189
/*
185190
* STOP! READ THIS FIRST! No, really,

server/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/get/GetSnapshotsResponse.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ public GetSnapshotsResponse(List<SnapshotInfo> snapshots, @Nullable String next,
4949

5050
public GetSnapshotsResponse(StreamInput in) throws IOException {
5151
this.snapshots = in.readCollectionAsImmutableList(SnapshotInfo::readFrom);
52-
if (in.getTransportVersion().before(TransportVersions.REMOVE_SNAPSHOT_FAILURES)) {
52+
if (in.getTransportVersion().before(TransportVersions.REMOVE_SNAPSHOT_FAILURES)
53+
&& in.getTransportVersion().isPatchFrom(TransportVersions.REMOVE_SNAPSHOT_FAILURES_90) == false) {
5354
// Deprecated `failures` field
5455
in.readMap(StreamInput::readException);
5556
}
@@ -83,7 +84,8 @@ public int remaining() {
8384
@Override
8485
public void writeTo(StreamOutput out) throws IOException {
8586
out.writeCollection(snapshots);
86-
if (out.getTransportVersion().before(TransportVersions.REMOVE_SNAPSHOT_FAILURES)) {
87+
if (out.getTransportVersion().before(TransportVersions.REMOVE_SNAPSHOT_FAILURES)
88+
&& out.getTransportVersion().isPatchFrom(TransportVersions.REMOVE_SNAPSHOT_FAILURES_90) == false) {
8789
// Deprecated `failures` field
8890
out.writeMap(Map.of(), StreamOutput::writeException);
8991
}

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

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -246,32 +246,6 @@ void skipShard(SearchShardIterator iterator) {
246246
successfulShardExecution();
247247
}
248248

249-
private static boolean assertExecuteOnStartThread() {
250-
// Ensure that the current code has the following stacktrace:
251-
// AbstractSearchAsyncAction#start -> AbstractSearchAsyncAction#executePhase -> AbstractSearchAsyncAction#performPhaseOnShard
252-
final StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
253-
assert stackTraceElements.length >= 6 : stackTraceElements;
254-
int index = 0;
255-
assert stackTraceElements[index++].getMethodName().equals("getStackTrace");
256-
assert stackTraceElements[index++].getMethodName().equals("assertExecuteOnStartThread");
257-
assert stackTraceElements[index++].getMethodName().equals("failOnUnavailable");
258-
if (stackTraceElements[index].getMethodName().equals("performPhaseOnShard")) {
259-
assert stackTraceElements[index].getClassName().endsWith("CanMatchPreFilterSearchPhase");
260-
index++;
261-
}
262-
assert stackTraceElements[index].getClassName().endsWith("AbstractSearchAsyncAction");
263-
assert stackTraceElements[index++].getMethodName().equals("run");
264-
265-
assert stackTraceElements[index].getClassName().endsWith("AbstractSearchAsyncAction");
266-
assert stackTraceElements[index++].getMethodName().equals("executePhase");
267-
268-
assert stackTraceElements[index].getClassName().endsWith("AbstractSearchAsyncAction");
269-
assert stackTraceElements[index++].getMethodName().equals("start");
270-
271-
assert stackTraceElements[index].getClassName().endsWith("AbstractSearchAsyncAction") == false;
272-
return true;
273-
}
274-
275249
private void performPhaseOnShard(final int shardIndex, final SearchShardIterator shardIt, final SearchShardTarget shard) {
276250
if (throttleConcurrentRequests) {
277251
var pendingExecutions = pendingExecutionsPerNode.computeIfAbsent(
@@ -313,7 +287,6 @@ public void onFailure(Exception e) {
313287
}
314288

315289
private void failOnUnavailable(int shardIndex, SearchShardIterator shardIt) {
316-
assert assertExecuteOnStartThread();
317290
SearchShardTarget unassignedShard = new SearchShardTarget(null, shardIt.shardId(), shardIt.getClusterAlias());
318291
onShardFailure(shardIndex, unassignedShard, shardIt, new NoShardAvailableActionException(shardIt.shardId()));
319292
}

server/src/main/java/org/elasticsearch/cluster/metadata/DesiredNode.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,8 @@ public static DesiredNode readFrom(StreamInput in) throws IOException {
161161
}
162162
final var memory = ByteSizeValue.readFrom(in);
163163
final var storage = ByteSizeValue.readFrom(in);
164-
if (in.getTransportVersion().before(TransportVersions.REMOVE_DESIRED_NODE_VERSION)) {
164+
if (in.getTransportVersion().before(TransportVersions.REMOVE_DESIRED_NODE_VERSION)
165+
&& in.getTransportVersion().isPatchFrom(TransportVersions.REMOVE_DESIRED_NODE_VERSION_90) == false) {
165166
in.readOptionalString();
166167
}
167168
return new DesiredNode(settings, processors, processorsRange, memory, storage);
@@ -180,7 +181,8 @@ public void writeTo(StreamOutput out) throws IOException {
180181
}
181182
memory.writeTo(out);
182183
storage.writeTo(out);
183-
if (out.getTransportVersion().before(TransportVersions.REMOVE_DESIRED_NODE_VERSION)) {
184+
if (out.getTransportVersion().before(TransportVersions.REMOVE_DESIRED_NODE_VERSION)
185+
&& out.getTransportVersion().isPatchFrom(TransportVersions.REMOVE_DESIRED_NODE_VERSION_90) == false) {
184186
out.writeOptionalString(null);
185187
}
186188
}

server/src/main/java/org/elasticsearch/transport/TransportStats.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ public TransportStats(StreamInput in) throws IOException {
6969
rxSize = in.readVLong();
7070
txCount = in.readVLong();
7171
txSize = in.readVLong();
72-
if (in.getTransportVersion().before(TransportVersions.TRANSPORT_STATS_HANDLING_TIME_REQUIRED)) {
72+
if (in.getTransportVersion().before(TransportVersions.TRANSPORT_STATS_HANDLING_TIME_REQUIRED)
73+
&& in.getTransportVersion().isPatchFrom(TransportVersions.TRANSPORT_STATS_HANDLING_TIME_REQUIRED_90) == false) {
7374
in.readBoolean();
7475
}
7576
inboundHandlingTimeBucketFrequencies = new long[HandlingTimeTracker.BUCKET_COUNT];
@@ -98,7 +99,8 @@ public void writeTo(StreamOutput out) throws IOException {
9899
out.writeVLong(txSize);
99100
assert inboundHandlingTimeBucketFrequencies.length == HandlingTimeTracker.BUCKET_COUNT;
100101
assert outboundHandlingTimeBucketFrequencies.length == HandlingTimeTracker.BUCKET_COUNT;
101-
if (out.getTransportVersion().before(TransportVersions.TRANSPORT_STATS_HANDLING_TIME_REQUIRED)) {
102+
if (out.getTransportVersion().before(TransportVersions.TRANSPORT_STATS_HANDLING_TIME_REQUIRED)
103+
&& out.getTransportVersion().isPatchFrom(TransportVersions.TRANSPORT_STATS_HANDLING_TIME_REQUIRED_90) == false) {
102104
out.writeBoolean(true);
103105
}
104106
for (long handlingTimeBucketFrequency : inboundHandlingTimeBucketFrequencies) {

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/AbstractPageMappingOperator.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,10 @@ protected final XContentBuilder innerToXContent(XContentBuilder builder) throws
188188
if (builder.humanReadable()) {
189189
builder.field("process_time", TimeValue.timeValueNanos(processNanos));
190190
}
191-
return builder.field("pages_processed", pagesProcessed).field("rows_received", rowsReceived).field("rows_emitted", rowsEmitted);
191+
builder.field("pages_processed", pagesProcessed);
192+
builder.field("rows_received", rowsReceived);
193+
builder.field("rows_emitted", rowsEmitted);
194+
return builder;
192195
}
193196

194197
@Override

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/AsyncOperator.java

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public abstract class AsyncOperator<Fetched> implements Operator {
4545
private final DriverContext driverContext;
4646

4747
private final int maxOutstandingRequests;
48-
private final LongAdder totalTimeInNanos = new LongAdder();
48+
private final LongAdder processNanos = new LongAdder();
4949

5050
private boolean finished = false;
5151
private volatile boolean closed = false;
@@ -98,7 +98,7 @@ public void addInput(Page input) {
9898
final long startNanos = System.nanoTime();
9999
performAsync(input, ActionListener.runAfter(listener, () -> {
100100
driverContext.removeAsyncAction();
101-
totalTimeInNanos.add(System.nanoTime() - startNanos);
101+
processNanos.add(System.nanoTime() - startNanos);
102102
}));
103103
success = true;
104104
} finally {
@@ -231,15 +231,11 @@ public IsBlockedResult isBlocked() {
231231

232232
@Override
233233
public final Operator.Status status() {
234-
return status(
235-
Math.max(0L, checkpoint.getMaxSeqNo()),
236-
Math.max(0L, checkpoint.getProcessedCheckpoint()),
237-
TimeValue.timeValueNanos(totalTimeInNanos.sum()).millis()
238-
);
234+
return status(Math.max(0L, checkpoint.getMaxSeqNo()), Math.max(0L, checkpoint.getProcessedCheckpoint()), processNanos.sum());
239235
}
240236

241-
protected Operator.Status status(long receivedPages, long completedPages, long totalTimeInMillis) {
242-
return new Status(receivedPages, completedPages, totalTimeInMillis);
237+
protected Operator.Status status(long receivedPages, long completedPages, long processNanos) {
238+
return new Status(receivedPages, completedPages, processNanos);
243239
}
244240

245241
public static class Status implements Operator.Status {
@@ -251,25 +247,31 @@ public static class Status implements Operator.Status {
251247

252248
final long receivedPages;
253249
final long completedPages;
254-
final long totalTimeInMillis;
250+
final long processNanos;
255251

256-
protected Status(long receivedPages, long completedPages, long totalTimeInMillis) {
252+
protected Status(long receivedPages, long completedPages, long processNanos) {
257253
this.receivedPages = receivedPages;
258254
this.completedPages = completedPages;
259-
this.totalTimeInMillis = totalTimeInMillis;
255+
this.processNanos = processNanos;
260256
}
261257

262258
protected Status(StreamInput in) throws IOException {
263259
this.receivedPages = in.readVLong();
264260
this.completedPages = in.readVLong();
265-
this.totalTimeInMillis = in.readVLong();
261+
this.processNanos = in.getTransportVersion().onOrAfter(TransportVersions.ESQL_PROFILE_ASYNC_NANOS)
262+
? in.readVLong()
263+
: TimeValue.timeValueMillis(in.readVLong()).nanos();
266264
}
267265

268266
@Override
269267
public void writeTo(StreamOutput out) throws IOException {
270268
out.writeVLong(receivedPages);
271269
out.writeVLong(completedPages);
272-
out.writeVLong(totalTimeInMillis);
270+
out.writeVLong(
271+
out.getTransportVersion().onOrAfter(TransportVersions.ESQL_PROFILE_ASYNC_NANOS)
272+
? processNanos
273+
: TimeValue.timeValueNanos(processNanos).millis()
274+
);
273275
}
274276

275277
public long receivedPages() {
@@ -280,8 +282,8 @@ public long completedPages() {
280282
return completedPages;
281283
}
282284

283-
public long totalTimeInMillis() {
284-
return totalTimeInMillis;
285+
public long procesNanos() {
286+
return processNanos;
285287
}
286288

287289
@Override
@@ -297,12 +299,12 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
297299
}
298300

299301
protected final XContentBuilder innerToXContent(XContentBuilder builder) throws IOException {
302+
builder.field("process_nanos", processNanos);
303+
if (builder.humanReadable()) {
304+
builder.field("process_time", TimeValue.timeValueNanos(processNanos));
305+
}
300306
builder.field("received_pages", receivedPages);
301307
builder.field("completed_pages", completedPages);
302-
builder.field("total_time_in_millis", totalTimeInMillis);
303-
if (totalTimeInMillis >= 0) {
304-
builder.field("total_time", TimeValue.timeValueMillis(totalTimeInMillis));
305-
}
306308
return builder;
307309
}
308310

@@ -311,14 +313,12 @@ public boolean equals(Object o) {
311313
if (this == o) return true;
312314
if (o == null || getClass() != o.getClass()) return false;
313315
Status status = (Status) o;
314-
return receivedPages == status.receivedPages
315-
&& completedPages == status.completedPages
316-
&& totalTimeInMillis == status.totalTimeInMillis;
316+
return receivedPages == status.receivedPages && completedPages == status.completedPages && processNanos == status.processNanos;
317317
}
318318

319319
@Override
320320
public int hashCode() {
321-
return Objects.hash(receivedPages, completedPages, totalTimeInMillis);
321+
return Objects.hash(receivedPages, completedPages, processNanos);
322322
}
323323

324324
@Override

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/DriverProfile.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,12 @@ public DriverProfile(
8989
}
9090

9191
public DriverProfile(StreamInput in) throws IOException {
92-
this.taskDescription = in.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION) ? in.readString() : "";
92+
if (in.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION)
93+
|| in.getTransportVersion().isPatchFrom(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION_90)) {
94+
this.taskDescription = in.readString();
95+
} else {
96+
this.taskDescription = "";
97+
}
9398
if (in.getTransportVersion().onOrAfter(TransportVersions.V_8_16_0)) {
9499
this.startMillis = in.readVLong();
95100
this.stopMillis = in.readVLong();
@@ -112,7 +117,8 @@ public DriverProfile(StreamInput in) throws IOException {
112117

113118
@Override
114119
public void writeTo(StreamOutput out) throws IOException {
115-
if (out.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION)) {
120+
if (out.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION)
121+
|| out.getTransportVersion().isPatchFrom(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION_90)) {
116122
out.writeString(taskDescription);
117123
}
118124
if (out.getTransportVersion().onOrAfter(TransportVersions.V_8_16_0)) {

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/DriverStatus.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,12 @@ public class DriverStatus implements Task.Status {
112112

113113
public DriverStatus(StreamInput in) throws IOException {
114114
this.sessionId = in.readString();
115-
this.taskDescription = in.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION) ? in.readString() : "";
115+
if (in.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION)
116+
|| in.getTransportVersion().isPatchFrom(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION_90)) {
117+
this.taskDescription = in.readString();
118+
} else {
119+
this.taskDescription = "";
120+
}
116121
this.started = in.getTransportVersion().onOrAfter(TransportVersions.V_8_14_0) ? in.readLong() : 0;
117122
this.lastUpdated = in.readLong();
118123
this.cpuNanos = in.getTransportVersion().onOrAfter(TransportVersions.V_8_14_0) ? in.readVLong() : 0;
@@ -130,7 +135,8 @@ public DriverStatus(StreamInput in) throws IOException {
130135
@Override
131136
public void writeTo(StreamOutput out) throws IOException {
132137
out.writeString(sessionId);
133-
if (out.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION)) {
138+
if (out.getTransportVersion().onOrAfter(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION)
139+
|| out.getTransportVersion().isPatchFrom(TransportVersions.ESQL_DRIVER_TASK_DESCRIPTION_90)) {
134140
out.writeString(taskDescription);
135141
}
136142
if (out.getTransportVersion().onOrAfter(TransportVersions.V_8_14_0)) {

0 commit comments

Comments
 (0)