Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion docs/release-notes/breaking-changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ If you are migrating from a version prior to version 9.0, you must first upgrade

## 9.1.1 [elasticsearch-9.1.1-breaking-changes]

There are no breaking changes associated with this release.
No breaking changes in this version.

## 9.1.0 [elasticsearch-9.1.0-breaking-changes]

Expand Down Expand Up @@ -120,6 +120,10 @@ Test the upgrade in a non-production environment. Adapt your configuration to th
For more information, view [#126843](https://github.com/elastic/elasticsearch/pull/126843) (issue: [#120993](https://github.com/elastic/elasticsearch/issues/120993))
:::

## 9.0.5 [elasticsearch-9.0.5-breaking-changes]

No breaking changes in this version.

## 9.0.4 [elasticsearch-9.0.4-breaking-changes]

No breaking changes in this version.
Expand Down
101 changes: 101 additions & 0 deletions docs/release-notes/changelog-bundles/9.0.5.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
version: 9.0.5
released: true
generated: 2025-08-12T11:34:40.403028310Z
changelogs:
- pr: 124918
summary: Fix EQL double invoking listener
area: EQL
type: bug
issues: []
- pr: 129282
summary: "Fix query rewrite logic to preserve `boosts` and `queryName` for `match`, `knn`, and `sparse_vector` queries on semantic_text fields"
area: Search
type: bug
issues: []
- pr: 129745
summary: "ESQL: Fix `mv_expand` inconsistent column order"
area: ES|QL
type: bug
issues:
- 129000
- pr: 130279
summary: Fix missing removal of query cancellation callback in QueryPhase
area: Search
type: bug
issues:
- 130071
- pr: 131236
summary: Correctly handling `download_database_on_pipeline_creation` within a pipeline processor within a default or final pipeline
area: Ingest Node
type: bug
issues: []
- pr: 131391
summary: Fix bug in point in time response
area: Search
type: bug
issues:
- 131026
- pr: 131426
summary: Disallow remote enrich after lu join
area: ES|QL
type: bug
issues:
- 129372
- pr: 131429
summary: Prevent auto-sharding for data streams in LOOKUP index mode
area: Data streams
type: bug
issues: []
- pr: 131630
summary: Fix memory usage estimation for ELSER models
area: Machine Learning
type: bug
issues: []
- pr: 131677
summary: Throw better exception if verifying empty repo
area: Snapshot/Restore
type: bug
issues: []
- pr: 131680
summary: Grant server module read/write entitlements for deprecated path setting "path.shared_data"
area: Infra/Core
type: bug
issues: []
- pr: 131711
summary: Track & log when there is insufficient disk space available to execute merges
area: Engine
type: enhancement
issues: []
- pr: 131990
summary: Prevent the trained model deployment memory estimation from double-counting allocations
area: Machine Learning
type: bug
issues: []
- pr: 132018
summary: Fix decoding of non-ascii field names in ignored source
area: Mapping
type: bug
issues: []
- pr: 132101
summary: Simulate ingest API uses existing index mapping when `mapping_addition` is given
area: Ingest Node
type: bug
issues: []
- pr: 132167
summary: Deal with internally created IN in a different way for EQL
area: EQL
type: bug
issues:
- 118621
- pr: 132260
summary: FIx Driver creating status with a live list of operators
area: ES|QL
type: bug
issues:
- 131564
- pr: 132320
summary: "Aggs: Add validation to Bucket script pipeline agg"
area: Aggregations
type: bug
issues:
- 132272
39 changes: 19 additions & 20 deletions docs/release-notes/changelog-bundles/9.1.0.yml
Original file line number Diff line number Diff line change
Expand Up @@ -669,6 +669,11 @@ changelogs:
area: Machine Learning
type: enhancement
issues: []
- pr: 2831
summary: Track memory used in the hierarchical results normalizer
area: Machine Learning
type: enhancement
issues: []
- pr: 125520
summary: Add `FailedShardEntry` info to shard-failed task source string
area: Allocation
Expand Down Expand Up @@ -1060,7 +1065,7 @@ changelogs:
notable: true
title: Upgrade `repository-s3` to AWS SDK v2
body: |-
In earlier versions of {es} the `repository-s3` plugin was based on the AWS SDK v1. AWS will withdraw support for this SDK before the end of the life of {es} {minor-version} so we have migrated this plugin to the newer AWS SDK v2.
In earlier versions of {{es}} the `repository-s3` plugin was based on the AWS SDK v1. AWS will withdraw support for this SDK before the end of the life of {{es}} 9.1 so we have migrated this plugin to the newer AWS SDK v2.
The two SDKs are not quite compatible, so please check the breaking changes documentation and test the new version thoroughly before upgrading any production workloads.
pr: 126843
- pr: 126856
Expand Down Expand Up @@ -1119,8 +1124,7 @@ changelogs:
new data streams by specifying it in the new `data_stream_options` field
inside of a component or index template:

[source,yaml]
----
```yaml
PUT _index_template/my-template
{
"index_patterns": ["logs-test-*"],
Expand All @@ -1132,21 +1136,20 @@ changelogs:
}
}
}
}'
----
}
```

Existing data streams can be configured with the new data stream
`_options` endpoint:

[source,yaml]
----
```yaml
PUT _data_stream/logs-test-apache/_options
{
"failure_store": {
"enabled": "true"
}
}
----
```

When redirection is enabled, any ingestion related failures will be
captured in the failure store if the cluster is able to, along with the
Expand All @@ -1158,26 +1161,24 @@ changelogs:
stream data. In order to retrieve the failures, we use the `_search` API
along with a new bit of index pattern syntax, the `::` selector.

[source,yaml]
----
```yaml
POST logs-test-apache::failures/_search
----
```

This index syntax informs the search operation to target the indices in
its failure store instead of its backing indices. It can be mixed in a
number of ways with other index patterns to include their failure store
indices in the search operation:

[source,yaml]
----
```yaml
POST logs-*::failures/_search
POST logs-*,logs-*::failures/_search
POST *::failures/_search
POST _query
{
"query": "FROM my_data_stream*::failures"
}
----
```
pr: 126973
- pr: 127006
summary: Correctly handle non-integers in nested paths in the remove processor
Expand Down Expand Up @@ -1887,24 +1888,22 @@ changelogs:

Example:

[source,yaml]
----------------------------
```yaml
FROM test
| FORK
( WHERE content:"fox" )
( WHERE content:"dog" )
| SORT _fork
----------------------------
```

The FORK command add a discriminator column called `_fork`:

[source,yaml]
----------------------------
```yaml
| id | content | _fork |
|-----|-----------|-------|
| 3 | brown fox | fork1 |
| 4 | white dog | fork2 |
----------------------------
```
pr: 129606
- pr: 129647
summary: Fix `PushQueriesIT.testLike()` fails
Expand Down
8 changes: 6 additions & 2 deletions docs/release-notes/deprecations.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,15 @@ To give you insight into what deprecated features you’re using, {{es}}:

## 9.1.1 [elasticsearch-9.1.1-deprecations]

There are no deprecations associated with this release.
No deprecations in this version.

## 9.1.0 [elasticsearch-9.1.0-deprecations]

There are no deprecations associated with this release.
No deprecations in this version.

## 9.0.5 [elasticsearch-9.0.5-deprecations]

No deprecations in this version.

## 9.0.4 [elasticsearch-9.0.4-deprecations]

Expand Down
108 changes: 107 additions & 1 deletion docs/release-notes/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,6 @@ The FORK command add a discriminator column called `_fork`:
| 3 | brown fox | fork1 |
| 4 | white dog | fork2 |
```

::::

::::{dropdown} ES|QL cross-cluster querying is now generally available
Expand Down Expand Up @@ -720,6 +719,113 @@ Vector Search:
* Fix filtered knn vector search when query timeouts are enabled [#129440](https://github.com/elastic/elasticsearch/pull/129440)
* Fix top level knn search with scroll [#126035](https://github.com/elastic/elasticsearch/pull/126035)

## 9.0.5 [elasticsearch-9.0.5-release-notes]

### Features and enhancements [elasticsearch-9.0.5-features-enhancements]

Engine:
* The available disk space is now logged when merge tasks are scheduled. If the disk space is below the `indices.merge.disk.watermark.high` threshold, this information is recorded to help diagnose and troubleshoot situations where merges fail due to insufficient disk space. [#131711](https://github.com/elastic/elasticsearch/pull/131711)

### Fixes [elasticsearch-9.0.5-fixes]

Aggregations:
:::{dropdown} Validate parent aggregation type in `bucket_script`
The `bucket_script` pipeline aggregation didn’t validate that its parent aggregation was a multi-bucket aggregation.
This caused a `ClassCastException` at runtime when the parent was not multi-bucket.
[#132320](https://github.com/elastic/elasticsearch/pull/132320) adds a validation step so the aggregation fails early, preventing the runtime error. (issue: [#132272](https://github.com/elastic/elasticsearch/issues/132272))
:::

Data streams:
:::{dropdown} Disables auto-sharding for LOOKUP index mode
Auto-sharding for data streams caused unsupported replica scaling when the index mode was set to `LOOKUP`.
This happened because lookup mappers do not support scaling beyond one replica.
[#131429](https://github.com/elastic/elasticsearch/pull/131429) resolves this issue by disabling auto-sharding for data streams with `LOOKUP` index modes, avoiding unsupported replica settings.
:::

EQL:
:::{dropdown} Resolves EQL parsing failure for IP-mapped fields in `OR` expressions
Parsing EQL queries failed when comparing the same IP-mapped field to multiple values joined by an `OR` expression.
This occurred because lookup operators were internally rewritten into `IN` expressions, which are unsupported for IP-type fields.
[#132167](https://github.com/elastic/elasticsearch/pull/132167) resolves the issue and ensures EQL can now successfully parse and execute such or queries involving IP fields. (issue: [#118621](https://github.com/elastic/elasticsearch/issues/118621))
:::

:::{dropdown} Prevent double invocation of EQL listener
In some cases, the EQL listener could be resolved twice, potentially leading to unexpected behavior.
[#124918](https://github.com/elastic/elasticsearch/pull/124918) updates the control flow to exit early and ensure the listener is only invoked once.
:::

ES|QL:
:::{dropdown} Disallow remote `ENRICH` after `LOOKUP JOIN`
Combining a `LOOKUP JOIN` with remote `ENRICH` could trigger a `ClassCastException` due to pipeline breaker interactions when limits or top-N queries were involved. [#131426](https://github.com/elastic/elasticsearch/pull/131426) adds a validation that forbids remote `ENRICH` after `LOOKUP JOIN`, preventing the runtime error. (issue: [#129372](https://github.com/elastic/elasticsearch/issues/129372))
:::

:::{dropdown} Fix `mv_expand` inconsistent column order
The `mv_expand` command could return columns in a different order depending on query execution paths. Now, the new attribute generated by `mv_expand` preserves the original field positions in the output. [#129745](https://github.com/elastic/elasticsearch/pull/129745) (issue: [#129000](https://github.com/elastic/elasticsearch/issues/129000))
:::

:::{dropdown} Fixes `ConcurrentModificationException` caused by live operator list
A `ConcurrentModificationException` caused test failures in `CrossClusterAsyncEnrichStopIT.testEnrichAfterStop` under certain conditions.
This happened because the ES|QL driver added a live operator list to the `DriverStatus` object, which could be modified while the status was being serialized.
[#132260](https://github.com/elastic/elasticsearch/pull/132260) fixes the issue by copying the operator list before storing it, preventing concurrent changes during status reads.
(issue: [#131564](https://github.com/elastic/elasticsearch/issues/131564))
:::

Infra/Core:
:::{dropdown} Grants server module read/write permissions for deprecated `path.shared_data` setting
The server module is now granted read/write permissions for the deprecated `path.shared_data` setting.
[#131680](https://github.com/elastic/elasticsearch/pull/131680) resolves issues surfaced in internal testing and ensures compatibility with legacy configurations.
:::

Ingest Node:
:::{dropdown} Correctly handle `download_database_on_pipeline_creation` in default or final pipelines
A bug in the `download_database_on_pipeline_creation` setting caused geoip databases not to download when the geoip processor was referenced from a pipeline processor in a default or final pipeline.
This resulted in documents being tagged with `_geoip_database_unavailable_GeoLite2-City.mmdb` instead of having geo data.
[#131236](https://github.com/elastic/elasticsearch/pull/131236) resolves the issue and ensures geoip databases download correctly in this scenario.
:::

:::{dropdown} Fixes incorrect mapping resolution in simulate ingest API when `mapping_addition` is provided
When using the simulate ingest API with a `mapping_addition`, the system incorrectly ignored the existing mapping of the target index and instead applied the mapping from a matching index template, if one existed.
This caused mismatches between the index and simulation behavior.
[#132101](https://github.com/elastic/elasticsearch/pull/132101) resolves the issue and ensures that the index’s actual mapping is used when available, preserving consistency between simulation and execution.
:::

Machine Learning:
:::{dropdown} Fix memory usage estimation for ELSER models
Using the deployment ID instead of the model ID caused `isElserV1Or2Model` to fail for ELSER models, because deployment IDs don’t start with `.elser_model_2`.
[#131630](https://github.com/elastic/elasticsearch/pull/131630) updates the code to pass the model ID, ensuring memory usage is estimated correctly.
:::

:::{dropdown} Prevents double-counting of allocations in trained model deployment memory estimation
A recent refactor introduced a bug that caused the trained model memory estimation to double-count the number of allocations, leading to inflated memory usage projections.
[#131990](https://github.com/elastic/elasticsearch/pull/131990) resolves the issue by reverting the change and restoring accurate memory estimation for trained model deployments.
:::

Mapping:
:::{dropdown} Fixes decoding failure for non-ASCII field names in `_ignored_source`
A decoding error occurred when field names in `_ignored_source` contained non-ASCII characters.
This happened because `String.length()` was used to calculate the byte length of the field name, which only works correctly for ASCII characters.
[#132018](https://github.com/elastic/elasticsearch/pull/132018) resolves the issue by using the actual byte array length of the encoded field name, ensuring proper decoding regardless of character encoding.
:::

Search:
:::{dropdown} Correct shard status reporting in point-in-time responses
The Open PIT API incorrectly swapped the skipped and failed shard counts when partial search results were allowed. This caused the API to report failed shards as skipped and vice versa. [#131391](https://github.com/elastic/elasticsearch/pull/131391) fixes the field mapping so shard status is reported accurately. (issue: [#131026](https://github.com/elastic/elasticsearch/issues/131026))
:::

:::{dropdown} Fix missing removal of query cancellation callback in QueryPhase
A missing removal of a query cancellation callback caused unintended timeouts or cancellations in later search phases when `allow_partial_search_results` was enabled, which could lead to `ArrayIndexOutOfBoundsException` errors.
[#130279](https://github.com/elastic/elasticsearch/pull/130279) resolves the issue and ensures predictable search execution. (issue: [#130071](https://github.com/elastic/elasticsearch/issues/130071))
:::

:::{dropdown} Preserve `boost` and `queryName` for semantic queries
Query rewrite logic dropped `boost` and `queryName` values for `match`, `knn`, and `sparse_vector` queries on `semantic_text` fields, causing query weighting and naming to be lost. [#129282](https://github.com/elastic/elasticsearch/pull/129282) resolves the issue so these values are now preserved correctly during query rewriting.
:::

Snapshot/Restore:
:::{dropdown} Improve error handling when verifying an empty snapshot repository

Verifying the integrity of a brand-new snapshot repository without any index blobs failed with a low-level error because the repository generation was `-1`, which cannot be sent over the wire. [#131677](https://github.com/elastic/elasticsearch/pull/131677) updates the logic to reject such requests early with a clearer, more helpful error message.
:::

## 9.0.4 [elasticsearch-9.0.4-release-notes]

Expand Down
Loading