Skip to content

Commit 6301004

Browse files
authored
Merge branch 'main' into user-test
2 parents b3f7baa + b977b04 commit 6301004

File tree

58 files changed

+1843
-150
lines changed

Some content is hidden

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

58 files changed

+1843
-150
lines changed

distribution/docker/src/docker/dockerfiles/cloud_ess_fips/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
# Extract Elasticsearch artifact
2525
################################################################################
2626
27-
FROM docker.elastic.co/wolfi/chainguard-base-fips:latest@sha256:ebfc3f1d7dba992231747a2e05ad1b859843e81b5e676ad342859d7cf9e425a7 AS builder
27+
FROM docker.elastic.co/wolfi/chainguard-base-fips:latest@sha256:a9e07d97c55f5b854b1c203509e57b6f466eb26318540b2e1b59734355f747b6 AS builder
2828
2929
# Install required packages to extract the Elasticsearch distribution
3030
RUN <%= retry.loop(package_manager, "export DEBIAN_FRONTEND=noninteractive && ${package_manager} update && ${package_manager} update && ${package_manager} add --no-cache curl") %>
@@ -103,7 +103,7 @@ WORKDIR /usr/share/elasticsearch/config
103103
# Add entrypoint
104104
################################################################################
105105

106-
FROM docker.elastic.co/wolfi/chainguard-base-fips:latest@sha256:ebfc3f1d7dba992231747a2e05ad1b859843e81b5e676ad342859d7cf9e425a7
106+
FROM docker.elastic.co/wolfi/chainguard-base-fips:latest@sha256:a9e07d97c55f5b854b1c203509e57b6f466eb26318540b2e1b59734355f747b6
107107

108108
RUN <%= retry.loop(package_manager,
109109
"export DEBIAN_FRONTEND=noninteractive && \n" +

distribution/docker/src/docker/dockerfiles/wolfi/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
# Extract Elasticsearch artifact
2525
################################################################################
2626
27-
FROM docker.elastic.co/wolfi/chainguard-base:latest@sha256:29150cd940cc7f69407d978d5a19c86f4d9e67cf44e4d6ded787a497e8f27c9a AS builder
27+
FROM docker.elastic.co/wolfi/chainguard-base:latest@sha256:55ee1dca9780931b0929d6eb734f455790c06ddbb59f55008e0cddebfbfd1e2e AS builder
2828
2929
# Install required packages to extract the Elasticsearch distribution
3030
RUN <%= retry.loop(package_manager, "export DEBIAN_FRONTEND=noninteractive && ${package_manager} update && ${package_manager} update && ${package_manager} add --no-cache curl") %>
@@ -79,7 +79,7 @@ RUN sed -i -e 's/ES_DISTRIBUTION_TYPE=tar/ES_DISTRIBUTION_TYPE=docker/' bin/elas
7979
# Add entrypoint
8080
################################################################################
8181

82-
FROM docker.elastic.co/wolfi/chainguard-base:latest@sha256:29150cd940cc7f69407d978d5a19c86f4d9e67cf44e4d6ded787a497e8f27c9a
82+
FROM docker.elastic.co/wolfi/chainguard-base:latest@sha256:55ee1dca9780931b0929d6eb734f455790c06ddbb59f55008e0cddebfbfd1e2e
8383

8484
RUN <%= retry.loop(package_manager,
8585
"export DEBIAN_FRONTEND=noninteractive && \n" +

docs/changelog/127628.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 127628
2+
summary: Ensure config reload on ..data symlink switch for CSI driver support
3+
area: Infra/Settings
4+
type: enhancement
5+
issues: []

docs/changelog/127966.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 127966
2+
summary: "[ML] Add Rerank support to the Inference Plugin"
3+
area: Machine Learning
4+
type: enhancement
5+
issues: []

docs/changelog/128314.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 128314
2+
summary: Fix NPE in APMTracer through `RestController`
3+
area: Infra/REST API
4+
type: bug
5+
issues: []

docs/changelog/128327.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 128327
2+
summary: Use internal user for internal inference action
3+
area: Machine Learning
4+
type: bug
5+
issues: []

docs/reference/search-connectors/es-connectors-sharepoint-online.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ To get started, first log in to SharePoint Online and access your administrative
4949

5050
Follow these steps:
5151

52-
* Sign in to [https://portal.azure.com/](https://portal.azure.com/) and click on **Azure Active Directory**.
52+
* Sign in to [https://portal.azure.com/](https://portal.azure.com/) and click on **Microsoft Entra ID** (formerly Azure Active Directory).
5353
* Locate **App Registrations** and Click **New Registration**.
5454
* Give your app a name - like "Search".
5555
* Leave the **Redirect URIs** blank for now.
@@ -133,9 +133,9 @@ Refer to the following documentation for setting [SharePoint permissions](https:
133133
134134
#### Granting `Sites.Selected` permissions [es-connectors-sharepoint-online-sites-selected-permissions-self-managed]
135135
136-
To configure `Sites.Selected` permissions, follow these steps in the Azure Active Directory portal. These permissions enable precise access control to specific SharePoint sites.
136+
To configure `Sites.Selected` permissions, follow these steps in the Microsoft Entra ID (formerly Azure Active Directory) portal. These permissions enable precise access control to specific SharePoint sites.
137137
138-
1. Sign in to the [Azure Active Directory portal](https://portal.azure.com/).
138+
1. Sign in to the [Microsoft Entra ID (formerly Azure Active Directory) portal](https://portal.azure.com/).
139139
2. Navigate to **App registrations** and locate the application created for the connector.
140140
3. Under **API permissions**, click **Add permission**.
141141
4. Select **Microsoft Graph** > **Application permissions**, then add `Sites.Selected`.
@@ -603,4 +603,4 @@ See [Troubleshooting](/reference/search-connectors/es-connectors-troubleshooting
603603

604604
### Security [es-connectors-sharepoint-online-client-security]
605605

606-
See [Security](/reference/search-connectors/es-connectors-security.md).
606+
See [Security](/reference/search-connectors/es-connectors-security.md).

docs/release-notes/breaking-changes.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,16 @@ 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+
```{applies_to}
16+
stack: coming 9.0.2
17+
```
18+
## 9.0.2 [elasticsearch-9.0.2-breaking-changes]
19+
20+
Snapshot/Restore:
21+
* Make S3 custom query parameter optional [#128043](https://github.com/elastic/elasticsearch/pull/128043)
22+
23+
24+
1525
## 9.0.1 [elasticsearch-9.0.1-breaking-changes]
1626

1727
No breaking changes in this version.

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+
```{applies_to}
20+
stack: coming 9.0.2
21+
```
22+
## 9.0.2 [elasticsearch-9.0.2-deprecations]
23+
24+
No deprecations in this version.
25+
1926
## 9.0.1 [elasticsearch-9.0.1-deprecations]
2027

2128
No deprecations in this version.

docs/release-notes/index.md

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

23+
```{applies_to}
24+
stack: coming 9.0.2
25+
```
26+
## 9.0.2 [elasticsearch-9.0.2-release-notes]
27+
28+
### Features and enhancements [elasticsearch-9.0.2-features-enhancements]
29+
30+
Authentication:
31+
* Http proxy support in JWT realm [#127337](https://github.com/elastic/elasticsearch/pull/127337) (issue: [#114956](https://github.com/elastic/elasticsearch/issues/114956))
32+
33+
ES|QL:
34+
* Limit Replace function memory usage [#127924](https://github.com/elastic/elasticsearch/pull/127924)
35+
36+
### Fixes [elasticsearch-9.0.2-fixes]
37+
38+
Aggregations:
39+
* Fix a bug in `significant_terms` [#127975](https://github.com/elastic/elasticsearch/pull/127975)
40+
41+
Audit:
42+
* Handle streaming request body in audit log [#127798](https://github.com/elastic/elasticsearch/pull/127798)
43+
44+
Data streams:
45+
* Fix system data streams incorrectly showing up in the list of template validation problems [#128161](https://github.com/elastic/elasticsearch/pull/128161)
46+
47+
Downsampling:
48+
* Downsampling does not consider passthrough fields as dimensions [#127752](https://github.com/elastic/elasticsearch/pull/127752) (issue: [#125156](https://github.com/elastic/elasticsearch/issues/125156))
49+
50+
ES|QL:
51+
* Don't push down filters on the right hand side of an inlinejoin [#127383](https://github.com/elastic/elasticsearch/pull/127383)
52+
* ESQL: Avoid unintended attribute removal [#127563](https://github.com/elastic/elasticsearch/pull/127563) (issue: [#127468](https://github.com/elastic/elasticsearch/issues/127468))
53+
* ESQL: Fix alias removal in regex extraction with JOIN [#127687](https://github.com/elastic/elasticsearch/pull/127687) (issue: [#127467](https://github.com/elastic/elasticsearch/issues/127467))
54+
* ESQL: Keep `DROP` attributes when resolving field names [#127009](https://github.com/elastic/elasticsearch/pull/127009) (issue: [#126418](https://github.com/elastic/elasticsearch/issues/126418))
55+
* Ensure ordinal builder emit ordinal blocks [#127949](https://github.com/elastic/elasticsearch/pull/127949)
56+
* Fix union types in CCS [#128111](https://github.com/elastic/elasticsearch/pull/128111)
57+
58+
Infra/Core:
59+
* Add missing `outbound_network` entitlement to x-pack-core [#126992](https://github.com/elastic/elasticsearch/pull/126992) (issue: [#127003](https://github.com/elastic/elasticsearch/issues/127003))
60+
* Check hidden frames in entitlements [#127877](https://github.com/elastic/elasticsearch/pull/127877)
61+
62+
Infra/Scripting:
63+
* Avoid nested docs in painless execute api [#127991](https://github.com/elastic/elasticsearch/pull/127991) (issue: [#41004](https://github.com/elastic/elasticsearch/issues/41004))
64+
65+
Machine Learning:
66+
* Append all data to Chat Completion buffer [#127658](https://github.com/elastic/elasticsearch/pull/127658)
67+
* Fix services API Google Vertex AI Rerank location field requirement [#127856](https://github.com/elastic/elasticsearch/pull/127856)
68+
69+
Relevance:
70+
* Fix: Add `NamedWriteable` for `RuleQueryRankDoc` [#128153](https://github.com/elastic/elasticsearch/pull/128153) (issue: [#126071](https://github.com/elastic/elasticsearch/issues/126071))
71+
72+
Security:
73+
* Remove dangling spaces wherever found [#127475](https://github.com/elastic/elasticsearch/pull/127475)
74+
75+
Snapshot/Restore:
76+
* Add missing entitlement to `repository-azure` [#128047](https://github.com/elastic/elasticsearch/pull/128047) (issue: [#128046](https://github.com/elastic/elasticsearch/issues/128046))
77+
78+
TSDB:
79+
* Skip the validation when retrieving the index mode during reindexing a time series data stream [#127824](https://github.com/elastic/elasticsearch/pull/127824)
80+
81+
Vector Search:
82+
* [9.x] Revert "Enable madvise by default for all builds" [#127921](https://github.com/elastic/elasticsearch/pull/127921)
83+
84+
2385
## 9.0.1 [elasticsearch-9.0.1-release-notes]
2486

2587
### Features and enhancements [elasticsearch-9.0.1-features-enhancements]

modules/apm/src/main/java/org/elasticsearch/telemetry/apm/internal/tracing/APMTracer.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,8 @@ private void setSpanAttributes(@Nullable Map<String, Object> spanAttributes, Spa
304304
spanBuilder.setAttribute(key, (Double) value);
305305
} else if (value instanceof Boolean) {
306306
spanBuilder.setAttribute(key, (Boolean) value);
307+
} else if (value == null) {
308+
throw new IllegalArgumentException("span attributes cannot have a null value");
307309
} else {
308310
throw new IllegalArgumentException(
309311
"span attributes do not support value type of [" + value.getClass().getCanonicalName() + "]"

muted-tests.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -396,9 +396,6 @@ tests:
396396
- class: org.elasticsearch.xpack.remotecluster.CrossClusterEsqlRCS2EnrichUnavailableRemotesIT
397397
method: testEsqlEnrichWithSkipUnavailable
398398
issue: https://github.com/elastic/elasticsearch/issues/127368
399-
- class: org.elasticsearch.xpack.esql.heap_attack.HeapAttackIT
400-
method: testLookupExplosionNoFetch
401-
issue: https://github.com/elastic/elasticsearch/issues/127365
402399
- class: org.elasticsearch.xpack.test.rest.XPackRestIT
403400
method: test {p0=ml/data_frame_analytics_cat_apis/Test cat data frame analytics all jobs with header}
404401
issue: https://github.com/elastic/elasticsearch/issues/127625
@@ -471,6 +468,12 @@ tests:
471468
- class: org.elasticsearch.ingest.geoip.GeoIpDownloaderCliIT
472469
method: testInvalidTimestamp
473470
issue: https://github.com/elastic/elasticsearch/issues/128284
471+
- class: org.elasticsearch.packaging.test.DockerTests
472+
method: test120DockerLogsIncludeElasticsearchLogs
473+
issue: https://github.com/elastic/elasticsearch/issues/128117
474+
- class: org.elasticsearch.packaging.test.TemporaryDirectoryConfigTests
475+
method: test21AcceptsCustomPathInDocker
476+
issue: https://github.com/elastic/elasticsearch/issues/128114
474477

475478
# Examples:
476479
#

server/src/internalClusterTest/java/org/elasticsearch/reservedstate/service/FileSettingsServiceIT.java

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
import static org.elasticsearch.health.HealthStatus.YELLOW;
4545
import static org.elasticsearch.indices.recovery.RecoverySettings.INDICES_RECOVERY_MAX_BYTES_PER_SEC_SETTING;
4646
import static org.elasticsearch.node.Node.INITIAL_STATE_TIMEOUT_SETTING;
47-
import static org.elasticsearch.test.NodeRoles.dataNode;
4847
import static org.elasticsearch.test.NodeRoles.dataOnlyNode;
4948
import static org.elasticsearch.test.NodeRoles.masterNode;
5049
import static org.hamcrest.Matchers.allOf;
@@ -139,6 +138,11 @@ private void assertMasterNode(Client client, String node) {
139138

140139
public static void writeJSONFile(String node, String json, Logger logger, Long version) throws Exception {
141140
FileSettingsService fileSettingsService = internalCluster().getInstance(FileSettingsService.class, node);
141+
writeJSONFile(node, json, logger, version, fileSettingsService.watchedFile());
142+
}
143+
144+
public static void writeJSONFile(String node, String json, Logger logger, Long version, Path targetPath) throws Exception {
145+
FileSettingsService fileSettingsService = internalCluster().getInstance(FileSettingsService.class, node);
142146

143147
Files.createDirectories(fileSettingsService.watchedFileDir());
144148
Path tempFilePath = createTempFile();
@@ -152,8 +156,8 @@ public static void writeJSONFile(String node, String json, Logger logger, Long v
152156
do {
153157
try {
154158
// this can fail on Windows because of timing
155-
Files.move(tempFilePath, fileSettingsService.watchedFile(), StandardCopyOption.ATOMIC_MOVE);
156-
logger.info("--> after writing JSON config to node {} with path {}", node, tempFilePath);
159+
Files.move(tempFilePath, targetPath, StandardCopyOption.ATOMIC_MOVE);
160+
logger.info("--> after writing JSON config to node {} with path {}", node, targetPath);
157161
return;
158162
} catch (IOException e) {
159163
logger.info("--> retrying writing a settings file [{}]", retryCount);
@@ -503,6 +507,35 @@ public void testSettingsAppliedOnMasterReElection() throws Exception {
503507
assertClusterStateSaveOK(savedClusterState.v1(), savedClusterState.v2(), "43mb");
504508
}
505509

510+
public void testSymlinkUpdateTriggerReload() throws Exception {
511+
internalCluster().setBootstrapMasterNodeIndex(0);
512+
final String masterNode = internalCluster().startMasterOnlyNode();
513+
FileSettingsService masterFileSettingsService = internalCluster().getInstance(FileSettingsService.class, masterNode);
514+
Path baseDir = masterFileSettingsService.watchedFileDir();
515+
assertBusy(() -> assertTrue(masterFileSettingsService.watching()));
516+
517+
{
518+
var savedClusterState = setupClusterStateListener(masterNode);
519+
// Create the settings.json as a symlink to simulate k8 setup
520+
// settings.json -> ..data/settings.json
521+
// ..data -> ..TIMESTAMP_TEMP_FOLDER_1
522+
var fileDir = Files.createDirectories(baseDir.resolve("..TIMESTAMP_TEMP_FOLDER_1"));
523+
writeJSONFile(masterNode, testJSON, logger, versionCounter.incrementAndGet(), fileDir.resolve("settings.json"));
524+
var dataDir = Files.createSymbolicLink(baseDir.resolve("..data"), fileDir.getFileName());
525+
Files.createSymbolicLink(baseDir.resolve("settings.json"), dataDir.getFileName().resolve("settings.json"));
526+
assertClusterStateSaveOK(savedClusterState.v1(), savedClusterState.v2(), "50mb");
527+
}
528+
{
529+
var savedClusterState = setupClusterStateListener(masterNode);
530+
// Update ..data symlink to ..data -> ..TIMESTAMP_TEMP_FOLDER_2 to simulate kubernetes secret update
531+
var fileDir = Files.createDirectories(baseDir.resolve("..TIMESTAMP_TEMP_FOLDER_2"));
532+
writeJSONFile(masterNode, testJSON43mb, logger, versionCounter.incrementAndGet(), fileDir.resolve("settings.json"));
533+
Files.deleteIfExists(baseDir.resolve("..data"));
534+
Files.createSymbolicLink(baseDir.resolve("..data"), fileDir.getFileName());
535+
assertClusterStateSaveOK(savedClusterState.v1(), savedClusterState.v2(), "43mb");
536+
}
537+
}
538+
506539
public void testHealthIndicatorWithSingleNode() throws Exception {
507540
internalCluster().setBootstrapMasterNodeIndex(0);
508541
logger.info("--> start the node");

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ static TransportVersion def(int id) {
179179
public static final TransportVersion V_8_19_FIELD_CAPS_ADD_CLUSTER_ALIAS = def(8_841_0_32);
180180
public static final TransportVersion ESQL_HASH_OPERATOR_STATUS_OUTPUT_TIME_8_19 = def(8_841_0_34);
181181
public static final TransportVersion RERANKER_FAILURES_ALLOWED_8_19 = def(8_841_0_35);
182+
public static final TransportVersion ML_INFERENCE_HUGGING_FACE_RERANK_ADDED_8_19 = def(8_841_0_36);
182183
public static final TransportVersion V_9_0_0 = def(9_000_0_09);
183184
public static final TransportVersion INITIAL_ELASTICSEARCH_9_0_1 = def(9_000_0_10);
184185
public static final TransportVersion INITIAL_ELASTICSEARCH_9_0_2 = def(9_000_0_11);
@@ -261,7 +262,7 @@ static TransportVersion def(int id) {
261262
public static final TransportVersion ESQL_HASH_OPERATOR_STATUS_OUTPUT_TIME = def(9_077_0_00);
262263
public static final TransportVersion ML_INFERENCE_HUGGING_FACE_CHAT_COMPLETION_ADDED = def(9_078_0_00);
263264
public static final TransportVersion NODES_STATS_SUPPORTS_MULTI_PROJECT = def(9_079_0_00);
264-
265+
public static final TransportVersion ML_INFERENCE_HUGGING_FACE_RERANK_ADDED = def(9_080_0_00);
265266
/*
266267
* STOP! READ THIS FIRST! No, really,
267268
* ____ _____ ___ ____ _ ____ _____ _ ____ _____ _ _ ___ ____ _____ ___ ____ ____ _____ _

0 commit comments

Comments
 (0)