Skip to content

Commit 156651d

Browse files
committed
Merge branch 'main' into half_pushable
2 parents db35b76 + 99f67fa commit 156651d

File tree

126 files changed

+1354
-442
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

126 files changed

+1354
-442
lines changed

benchmarks/src/main/java/org/elasticsearch/benchmark/esql/QueryPlanningBenchmark.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ private LogicalPlan plan(String query) {
123123
}
124124

125125
@Benchmark
126-
public void run(Blackhole blackhole) {
126+
public void manyFields(Blackhole blackhole) {
127127
blackhole.consume(plan("FROM test | LIMIT 10"));
128128
}
129129
}

build-tools-internal/gradle/wrapper/gradle-wrapper.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionSha256Sum=fba8464465835e74f7270bbf43d6d8a8d7709ab0a43ce1aa3323f73e9aa0c612
4-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-all.zip
3+
distributionSha256Sum=efe9a3d147d948d7528a9887fa35abcf24ca1a43ad06439996490f77569b02d1
4+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-all.zip
55
networkTimeout=10000
66
validateDistributionUrl=true
77
zipStoreBase=GRADLE_USER_HOME

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/CopyRestApiTask.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@
2525
import org.gradle.api.tasks.SkipWhenEmpty;
2626
import org.gradle.api.tasks.TaskAction;
2727
import org.gradle.api.tasks.util.PatternFilterable;
28-
import org.gradle.api.tasks.util.PatternSet;
29-
import org.gradle.internal.Factory;
28+
import org.gradle.api.tasks.util.internal.PatternSetFactory;
3029

3130
import java.io.File;
3231
import java.io.IOException;
@@ -65,14 +64,14 @@ public class CopyRestApiTask extends DefaultTask {
6564
@Inject
6665
public CopyRestApiTask(
6766
ProjectLayout projectLayout,
68-
Factory<PatternSet> patternSetFactory,
67+
PatternSetFactory patternSetFactory,
6968
FileSystemOperations fileSystemOperations,
7069
ObjectFactory objectFactory
7170
) {
7271
this.include = objectFactory.listProperty(String.class);
7372
this.outputResourceDir = objectFactory.directoryProperty();
7473
this.additionalYamlTestsDir = objectFactory.directoryProperty();
75-
this.patternSet = patternSetFactory.create();
74+
this.patternSet = patternSetFactory.createPatternSet();
7675
this.projectLayout = projectLayout;
7776
this.fileSystemOperations = fileSystemOperations;
7877
}

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/CopyRestTestsTask.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@
2929
import org.gradle.api.tasks.SkipWhenEmpty;
3030
import org.gradle.api.tasks.TaskAction;
3131
import org.gradle.api.tasks.util.PatternFilterable;
32-
import org.gradle.api.tasks.util.PatternSet;
33-
import org.gradle.internal.Factory;
32+
import org.gradle.api.tasks.util.internal.PatternSetFactory;
3433

3534
import java.io.File;
3635
import java.util.Map;
@@ -66,25 +65,25 @@ public abstract class CopyRestTestsTask extends DefaultTask {
6665
private final ProjectLayout projectLayout;
6766
private final FileSystemOperations fileSystemOperations;
6867

69-
@Inject
70-
public abstract FileOperations getFileOperations();
71-
7268
@Inject
7369
public CopyRestTestsTask(
7470
ProjectLayout projectLayout,
75-
Factory<PatternSet> patternSetFactory,
71+
PatternSetFactory patternSetFactory,
7672
FileSystemOperations fileSystemOperations,
7773
ObjectFactory objectFactory
7874
) {
7975
this.includeCore = objectFactory.listProperty(String.class);
8076
this.includeXpack = objectFactory.listProperty(String.class);
8177
this.outputResourceDir = objectFactory.directoryProperty();
82-
this.corePatternSet = patternSetFactory.create();
83-
this.xpackPatternSet = patternSetFactory.create();
78+
this.corePatternSet = patternSetFactory.createPatternSet();
79+
this.xpackPatternSet = patternSetFactory.createPatternSet();
8480
this.projectLayout = projectLayout;
8581
this.fileSystemOperations = fileSystemOperations;
8682
}
8783

84+
@Inject
85+
public abstract FileOperations getFileOperations();
86+
8887
@Input
8988
public ListProperty<String> getIncludeCore() {
9089
return includeCore;

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/RestCompatTestTransformTask.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
import org.gradle.api.tasks.TaskAction;
5959
import org.gradle.api.tasks.util.PatternFilterable;
6060
import org.gradle.api.tasks.util.PatternSet;
61-
import org.gradle.internal.Factory;
61+
import org.gradle.api.tasks.util.internal.PatternSetFactory;
6262

6363
import java.io.File;
6464
import java.io.IOException;
@@ -98,25 +98,23 @@ public abstract class RestCompatTestTransformTask extends DefaultTask {
9898
// PatternFilterable -> list of full test names and reasons. Needed for 1 pattern may include many tests and reasons
9999
private final Map<PatternFilterable, List<Pair<String, String>>> skippedTestByTestNameTransformations = new HashMap<>();
100100

101-
@Inject
102-
protected Factory<PatternSet> getPatternSetFactory() {
103-
throw new UnsupportedOperationException();
104-
}
105-
106101
@Inject
107102
public RestCompatTestTransformTask(FileSystemOperations fileSystemOperations, ObjectFactory objectFactory) {
108103
this.fileSystemOperations = fileSystemOperations;
109104
this.compatibleVersion = Version.fromString(VersionProperties.getVersions().get("elasticsearch")).getMajor() - 1;
110105
this.sourceDirectory = objectFactory.directoryProperty();
111106
this.outputDirectory = objectFactory.directoryProperty();
112-
this.testPatternSet = getPatternSetFactory().create();
107+
this.testPatternSet = getPatternSetFactory().createPatternSet();
113108
this.testPatternSet.include("/*" + "*/*.yml"); // concat these strings to keep build from thinking this is invalid javadoc
114109
// always inject compat headers
115110
headers.put("Content-Type", "application/vnd.elasticsearch+json;compatible-with=" + compatibleVersion);
116111
headers.put("Accept", "application/vnd.elasticsearch+json;compatible-with=" + compatibleVersion);
117112
getTransformations().add(new InjectHeaders(headers, Sets.newHashSet(RestCompatTestTransformTask::doesNotHaveCatOperation)));
118113
}
119114

115+
@Inject
116+
protected abstract PatternSetFactory getPatternSetFactory();
117+
120118
private static boolean doesNotHaveCatOperation(ObjectNode doNodeValue) {
121119
final Iterator<String> fieldNamesIterator = doNodeValue.fieldNames();
122120
while (fieldNamesIterator.hasNext()) {
@@ -144,7 +142,7 @@ public void skipTest(String fullTestName, String reason) {
144142
);
145143
}
146144

147-
PatternSet skippedPatternSet = getPatternSetFactory().create();
145+
PatternSet skippedPatternSet = getPatternSetFactory().createPatternSet();
148146
// create file patterns for all a1/a2/a3/b.yml possibilities.
149147
for (int i = testParts.length - 1; i > 1; i--) {
150148
final String lastPart = testParts[i];
@@ -158,7 +156,7 @@ public void skipTest(String fullTestName, String reason) {
158156
}
159157

160158
public void skipTestsByFilePattern(String filePattern, String reason) {
161-
PatternSet skippedPatternSet = getPatternSetFactory().create();
159+
PatternSet skippedPatternSet = getPatternSetFactory().createPatternSet();
162160
skippedPatternSet.include(filePattern);
163161
skippedTestByFilePatternTransformations.put(skippedPatternSet, reason);
164162
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
8.12.1
1+
8.14

build-tools/src/main/java/org/elasticsearch/gradle/test/SystemPropertyCommandLineArgumentProvider.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
*/
99
package org.elasticsearch.gradle.test;
1010

11-
import org.gradle.api.provider.Provider;
1211
import org.gradle.api.tasks.Input;
1312
import org.gradle.process.CommandLineArgumentProvider;
1413

@@ -20,10 +19,6 @@
2019
public class SystemPropertyCommandLineArgumentProvider implements CommandLineArgumentProvider {
2120
private final Map<String, Object> systemProperties = new LinkedHashMap<>();
2221

23-
public void systemProperty(String key, Provider<Object> value) {
24-
systemProperties.put(key, (Supplier<String>) () -> String.valueOf(value.get()));
25-
}
26-
2722
public void systemProperty(String key, Supplier<String> value) {
2823
systemProperties.put(key, value);
2924
}

distribution/docker/src/docker/Dockerfile.ess-fips

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -96,15 +96,6 @@ COPY fips/resources/fips_java.policy /usr/share/elasticsearch/config/fips_java.p
9696

9797
WORKDIR /usr/share/elasticsearch/config
9898

99-
## Add fips specific JVM options
100-
RUN cat <<EOF > /usr/share/elasticsearch/config/jvm.options.d/fips.options
101-
-Djavax.net.ssl.keyStoreType=BCFKS
102-
-Dorg.bouncycastle.fips.approved_only=true
103-
-Djava.security.properties=config/fips_java.security
104-
-Djava.security.policy=config/fips_java.policy
105-
EOF
106-
107-
10899
################################################################################
109100
# Build stage 2 (the actual Elasticsearch image):
110101
#
@@ -136,6 +127,10 @@ ENV ELASTIC_CONTAINER=true
136127
WORKDIR /usr/share/elasticsearch
137128

138129
COPY --from=builder --chown=0:0 /usr/share/elasticsearch /usr/share/elasticsearch
130+
COPY --from=builder --chown=0:0 /fips/libs/*.jar /usr/share/elasticsearch/lib/
131+
COPY --from=builder --chown=0:0 /opt /opt
132+
133+
ENV ES_PLUGIN_ARCHIVE_DIR=/opt/plugins/archive
139134
ENV PATH=/usr/share/elasticsearch/bin:\$PATH
140135
ENV SHELL=/bin/bash
141136
COPY ${bin_dir}/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
@@ -159,6 +154,28 @@ RUN chmod g=u /etc/passwd && \\
159154

160155
RUN ln -sf /etc/ssl/certs/java/cacerts /usr/share/elasticsearch/jdk/lib/security/cacerts
161156

157+
# Convert cacerts (PKCS12) to BCFKS format using POSIX-compatible shell syntax
158+
RUN printf "\\n" | jdk/bin/keytool -importkeystore \
159+
-srckeystore /usr/share/elasticsearch/jdk/lib/security/cacerts \
160+
-srcstoretype PKCS12 \
161+
-destkeystore config/cacerts.bcfks \
162+
-deststorepass passwordcacert \
163+
-deststoretype BCFKS \
164+
-providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider \
165+
-providerpath lib/bc-fips-1.0.2.5.jar \
166+
-destprovidername BCFIPS
167+
168+
169+
## Add fips specific JVM options
170+
RUN cat <<EOF > /usr/share/elasticsearch/config/jvm.options.d/fips.options
171+
-Djavax.net.ssl.keyStoreType=BCFKS
172+
-Dorg.bouncycastle.fips.approved_only=true
173+
-Djava.security.properties=config/fips_java.security
174+
-Djava.security.policy=config/fips_java.policy
175+
-Djavax.net.ssl.trustStore=config/cacerts.bcfks
176+
-Djavax.net.ssl.trustStorePassword=passwordcacert
177+
EOF
178+
162179
EXPOSE 9200 9300
163180

164181
LABEL org.label-schema.build-date="${build_date}" \\
@@ -196,11 +213,6 @@ CMD ["/app/elasticsearch.sh"]
196213

197214
USER 1000:0
198215

199-
COPY --from=builder --chown=0:0 /opt /opt
200-
ENV ES_PLUGIN_ARCHIVE_DIR=/opt/plugins/archive
201-
WORKDIR /usr/share/elasticsearch
202-
COPY --from=builder --chown=0:0 /fips/libs/*.jar /usr/share/elasticsearch/lib/
203-
204216
################################################################################
205217
# End of multi-stage Dockerfile
206218
################################################################################

docs/changelog/120488.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 120488
2+
summary: Publish queue latency metrics from tracked thread pools
3+
area: "Infra/Metrics"
4+
type: enhancement
5+
issues: []

docs/changelog/127524.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
pr: 127524
2+
summary: Resolve groupings in aggregate before resolving references to groupings in
3+
the aggregations
4+
area: ES|QL
5+
type: bug
6+
issues: []

docs/changelog/127658.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 127658
2+
summary: Append all data to Chat Completion buffer
3+
area: Machine Learning
4+
type: bug
5+
issues: []

docs/release-notes/breaking-changes.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@ If you are migrating from a version prior to version 9.0, you must first upgrade
1212

1313
% ## Next version [elasticsearch-nextversion-breaking-changes]
1414

15-
## 9.1.0 [elasticsearch-910-breaking-changes]
15+
## 9.0.1 [elasticsearch-9.0.1-breaking-changes]
16+
```{applies_to}
17+
stack: coming 9.0.1
18+
```
1619

17-
ES|QL
18-
: * Allow partial results by default in ES|QL [#125060](https://github.com/elastic/elasticsearch/pull/125060)
20+
No breaking changes in this version.
1921

2022
## 9.0.0 [elasticsearch-900-breaking-changes]
2123

docs/release-notes/deprecations.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@ To give you insight into what deprecated features you’re using, {{es}}:
1616

1717
% ## Next version [elasticsearch-nextversion-deprecations]
1818

19+
## 9.0.1 [elasticsearch-9.0.1-deprecations]
20+
```{applies_to}
21+
stack: coming 9.0.1
22+
```
23+
24+
No deprecations in this version.
25+
1926
## 9.0.0 [elasticsearch-900-deprecations]
2027

2128
ES|QL:

docs/release-notes/index.md

Lines changed: 73 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,90 @@ To check for security updates, go to [Security announcements for the Elastic sta
2020
% ### Fixes [elasticsearch-next-fixes]
2121
% *
2222

23+
## 9.0.1 [elasticsearch-9.0.1-release-notes]
24+
```{applies_to}
25+
stack: coming 9.0.1
26+
```
27+
28+
### Features and enhancements [elasticsearch-9.0.1-features-enhancements]
29+
30+
Infra/Core:
31+
* Validation checks on paths allowed for 'files' entitlements. Restrict the paths we allow access to, forbidding plugins to specify/request entitlements for reading or writing to specific protected directories. [#126852](https://github.com/elastic/elasticsearch/pull/126852)
32+
33+
Ingest Node:
34+
* Updating tika to 2.9.3 [#127353](https://github.com/elastic/elasticsearch/pull/127353)
35+
36+
Search:
37+
* Enable sort optimization on float and `half_float` [#126342](https://github.com/elastic/elasticsearch/pull/126342)
38+
39+
Security:
40+
* Add Issuer to failed SAML Signature validation logs when available [#126310](https://github.com/elastic/elasticsearch/pull/126310) (issue: [#111022](https://github.com/elastic/elasticsearch/issues/111022))
41+
42+
### Fixes [elasticsearch-9.0.1-fixes]
43+
44+
Aggregations:
45+
* Rare terms aggregation false **positive** fix [#126884](https://github.com/elastic/elasticsearch/pull/126884)
46+
47+
Allocation:
48+
* Fix shard size of initializing restored shard [#126783](https://github.com/elastic/elasticsearch/pull/126783) (issue: [#105331](https://github.com/elastic/elasticsearch/issues/105331))
49+
50+
CCS:
51+
* Cancel expired async search task when a remote returns its results [#126583](https://github.com/elastic/elasticsearch/pull/126583)
52+
53+
Data streams:
54+
* [otel-data] Bump plugin version to release _metric_names_hash changes [#126850](https://github.com/elastic/elasticsearch/pull/126850)
55+
56+
ES|QL:
57+
* Fix count optimization with pushable union types [#127225](https://github.com/elastic/elasticsearch/pull/127225) (issue: [#127200](https://github.com/elastic/elasticsearch/issues/127200))
58+
* Fix join masking eval [#126614](https://github.com/elastic/elasticsearch/pull/126614)
59+
* Fix sneaky bug in single value query [#127146](https://github.com/elastic/elasticsearch/pull/127146)
60+
* No, line noise isn't a valid ip [#127527](https://github.com/elastic/elasticsearch/pull/127527)
61+
62+
ILM+SLM:
63+
* Fix equality bug in `WaitForIndexColorStep` [#126605](https://github.com/elastic/elasticsearch/pull/126605)
64+
65+
Infra/CLI:
66+
* Use terminal reader in keystore add command [#126729](https://github.com/elastic/elasticsearch/pull/126729) (issue: [#98115](https://github.com/elastic/elasticsearch/issues/98115))
67+
68+
Infra/Core:
69+
* Fix: consider case sensitiveness differences in Windows/Unix-like filesystems for files entitlements [#126990](https://github.com/elastic/elasticsearch/pull/126990) (issue: [#127047](https://github.com/elastic/elasticsearch/issues/127047))
70+
* Rework uniquify to not use iterators [#126889](https://github.com/elastic/elasticsearch/pull/126889) (issue: [#126883](https://github.com/elastic/elasticsearch/issues/126883))
71+
* Workaround max name limit imposed by Jackson 2.17 [#126806](https://github.com/elastic/elasticsearch/pull/126806)
72+
73+
Machine Learning:
74+
* Adding missing `onFailure` call for Inference API start model request [#126930](https://github.com/elastic/elasticsearch/pull/126930)
75+
* Fix text structure NPE when fields in list have null value [#125922](https://github.com/elastic/elasticsearch/pull/125922)
76+
* Leverage threadpool schedule for inference api to avoid long running thread [#126858](https://github.com/elastic/elasticsearch/pull/126858) (issue: [#126853](https://github.com/elastic/elasticsearch/issues/126853))
77+
78+
Ranking:
79+
* Fix LTR rescorer with model alias [#126273](https://github.com/elastic/elasticsearch/pull/126273)
80+
* LTR score bounding [#125694](https://github.com/elastic/elasticsearch/pull/125694)
81+
82+
Search:
83+
* Fix npe when using source confirmed text query against missing field [#127414](https://github.com/elastic/elasticsearch/pull/127414)
84+
85+
TSDB:
86+
* Improve resiliency of `UpdateTimeSeriesRangeService` [#126637](https://github.com/elastic/elasticsearch/pull/126637)
87+
88+
Task Management:
89+
* Fix race condition in `RestCancellableNodeClient` [#126686](https://github.com/elastic/elasticsearch/pull/126686) (issue: [#88201](https://github.com/elastic/elasticsearch/issues/88201))
90+
91+
Vector Search:
92+
* Fix `vec_caps` to test for OS support too (on x64) [#126911](https://github.com/elastic/elasticsearch/pull/126911) (issue: [#126809](https://github.com/elastic/elasticsearch/issues/126809))
93+
* Fix bbq quantization algorithm but for differently distributed components [#126778](https://github.com/elastic/elasticsearch/pull/126778)
94+
95+
2396
## 9.0.0 [elasticsearch-900-release-notes]
2497

2598
### Highlights [elasticsearch-900-highlights]
2699

27100
::::{dropdown} rank_vectors field type is now available for late-interaction ranking
28-
29101
[`rank_vectors`](../reference/elasticsearch/mapping-reference/rank-vectors.md) is a new field type released as an experimental feature in Elasticsearch 9.0. It is designed to be used with dense vectors and allows for late-interaction second order ranking.
30102

31103
Late-interaction models are powerful rerankers. While their size and overall cost doesn’t lend itself for HNSW indexing, utilizing them as second order reranking can provide excellent boosts in relevance. The new `rank_vectors` mapping allows for rescoring over new and novel multi-vector late-interaction models like ColBERT or ColPali.
32104
::::
33105

34106
::::{dropdown} ES|QL LOOKUP JOIN is now available in technical preview
35-
36107
[LOOKUP JOIN](../reference/query-languages/esql/esql-commands.md) is now available in technical preview. LOOKUP JOIN combines data from your ES|QL queries with matching records from a lookup index, enabling you to:
37108

38109
- Enrich your search results with reference data

gradle/build.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,4 @@ wiremock = "com.github.tomakehurst:wiremock-jre8-standalone:2.23.2"
4848
xmlunit-core = "org.xmlunit:xmlunit-core:2.8.2"
4949

5050
[plugins]
51-
ospackage = { id = "com.netflix.nebula.ospackage-base", version = "11.11.1" }
51+
ospackage = { id = "com.netflix.nebula.ospackage-base", version = "11.11.2" }

gradle/verification-metadata.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -991,9 +991,9 @@
991991
<sha256 value="d694edd7bae3bc1a8e0dae2f5a22c479ff04d6b9bfcb0ab751a42f02e02d2100" origin="Generated by Gradle"/>
992992
</artifact>
993993
</component>
994-
<component group="com.netflix.nebula" name="gradle-ospackage-plugin" version="11.11.1">
995-
<artifact name="gradle-ospackage-plugin-11.11.1.jar">
996-
<sha256 value="34027ac840adb81b80de43082ce335a6518875217a38ac0204d5a84dc669b7ac" origin="Generated by Gradle"/>
994+
<component group="com.netflix.nebula" name="gradle-ospackage-plugin" version="11.11.2">
995+
<artifact name="gradle-ospackage-plugin-11.11.2.jar">
996+
<sha256 value="2cad0d0af05514e07b163d30d71c486ef1a205265ecc4821f8fb9a121f2cabe5" origin="Generated by Gradle"/>
997997
</artifact>
998998
</component>
999999
<component group="com.netflix.nebula" name="nebula-gradle-interop" version="2.0.0">

gradle/wrapper/gradle-wrapper.jar

59 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)