Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
7 changes: 7 additions & 0 deletions docs/release-notes/breaking-changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,13 @@

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

```{applies_to}

Check notice on line 15 in docs/release-notes/breaking-changes.md

View workflow job for this annotation

GitHub Actions / docs-preview / build

The 'coming' lifecycle is deprecated and will be removed in a future release.
stack: coming 9.1.1
```
## 9.1.1 [elasticsearch-9.1.1-breaking-changes]

There are no breaking changes associated with this release.

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

Discovery-Plugins:
Expand Down
85 changes: 85 additions & 0 deletions docs/release-notes/changelog-bundles/9.1.1.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
version: 9.1.1
released: false
generated: 2025-08-06T08:42:03.230079779Z
changelogs:
- pr: 130279
summary: Fix missing removal of query cancellation callback in QueryPhase
area: Search
type: bug
issues:
- 130071
- pr: 131053
summary: Split large pages on load sometimes
area: ES|QL
type: bug
issues: []
- pr: 131429
summary: Prevent auto-sharding for data streams in LOOKUP index mode
area: Data streams
type: bug
issues: []
- pr: 131658
summary: Fix `aggregate_metric_double` sorting and `mv_expand` issues
area: ES|QL
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: 131817
summary: Change equals and hashcode for `ConstantNullBlock`
area: ES|QL
type: bug
issues: []
- pr: 131917
summary: Fix NPE on empty to_lower/to_upper call
area: ES|QL
type: bug
issues:
- 131913
- pr: 131945
summary: Restrict remote ENRICH after FORK
area: ES|QL
type: bug
issues:
- 131445
- 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: 132088
summary: Fix combine result for `ingest_took`
area: ES|QL
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: 132162
summary: Fix default missing index sort value of `data_nanos` pre 7.14
area: Search
type: bug
issues:
- 132040
- 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
7 changes: 7 additions & 0 deletions docs/release-notes/deprecations.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,13 @@

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

```{applies_to}

Check notice on line 19 in docs/release-notes/deprecations.md

View workflow job for this annotation

GitHub Actions / docs-preview / build

The 'coming' lifecycle is deprecated and will be removed in a future release.
stack: coming 9.1.1
```
## 9.1.1 [elasticsearch-9.1.1-deprecations]

There are no deprecations associated with this release.

## 9.1.0 [elasticsearch-9.1.0-deprecations]

There are no deprecations associated with this release.
Expand Down
105 changes: 105 additions & 0 deletions docs/release-notes/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,111 @@
% ### Fixes [elasticsearch-next-fixes]
% *

## 9.1.1 [elasticsearch-9.1.1-release-notes]
```{applies_to}

Check notice on line 24 in docs/release-notes/index.md

View workflow job for this annotation

GitHub Actions / docs-preview / build

The 'coming' lifecycle is deprecated and will be removed in a future release.
stack: coming 9.1.1
```

### Fixes [elasticsearch-9.1.1-fixes]

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 mode, 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))
:::

ES|QL:
:::{dropdown} Fixes inconsistent equality and hashcode behavior for `ConstantNullBlock`
Inconsistent equality checks caused `constantNullBlock.equals(anyDoubleBlock)` to return false, even when `doubleBlock.equals(constantNullBlock)` returned true.
This asymmetry led to unreliable comparisons and mismatched hashcodes when `ConstantNullBlock` was functionally equivalent to other standard blocks.
[#131817](https://github.com/elastic/elasticsearch/pull/131817) resolves the issue and ensures both equality and hashcode functions are symmetric for these block types.
:::

:::{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))
:::

:::{dropdown} Prevents null pointer exception for `to_lower` and `to_upper` with no parameters
Calling the `to_lower` or `to_upper` functions with no parameters caused a null pointer exception (NPE), instead of returning a clear error.
This behavior was a result of an older implementation of these functions.
[#131917](https://github.com/elastic/elasticsearch/pull/131917) resolves the issue and ensures that empty parameter calls now return the correct error message. (issue: [#131913](https://github.com/elastic/elasticsearch/issues/131913))
:::

:::{dropdown} Fixes `aggregate_metric_double` decoding and `mv_expand` behavior on multi-index queries
Sorting across multiple indices failed when one index contained an `aggregate_metric_double` field and another did not.
In this case, the missing field was encoded as `NullBlock` but later incorrectly decoded as `AggregateMetricDoubleBlock`, which expects four values. This mismatch caused decoding errors.
[#131658](https://github.com/elastic/elasticsearch/pull/131658) resolves the issue and also improves `mv_expand` by returning the input block unchanged for unsupported `AggregateMetricDoubleBlock` values, avoiding unnecessary errors.
:::

:::{dropdown} Fixes incorrect `ingest_took` value when combining bulk responses
Combining two `BulkResponse` objects with `ingest_took` set to `NO_INGEST_TOOK` resulted in a combined `ingest_took` value of `-2`, which was invalid.
This occurred because the combination logic failed to preserve the sentinel `NO_INGEST_TOOK` constant.
[#132088](https://github.com/elastic/elasticsearch/pull/132088) resolves the issue and ensures the result is correctly set to `NO_INGEST_TOOK` when applicable.
:::

:::{dropdown} Disallows remote ENRICH after FORK in query plans
An invalid combination of `FORK` followed by a remote-only `ENRICH` caused incorrect query planning and failed executions. [#131945](https://github.com/elastic/elasticsearch/pull/131945) resolves the issue by explicitly disallowing this combination, preventing invalid plans from being executed. (issue: [#131445](https://github.com/elastic/elasticsearch/issues/131445))
:::

:::{dropdown} Adds support for splitting large pages on load to avoid memory pressure
Loading large rows from a single segment occasionally created oversized pages when decoding values row-by-row, particularly for text and geo fields.
This could cause memory pressure or degraded performance.
[#131053](https://github.com/elastic/elasticsearch/pull/131053) resolves the issue by estimating the size of each page as rows are loaded.
If the estimated size exceeds a configurable `jumbo` threshold (defaulting to one megabyte), row loading stops early, the page is returned, and remaining rows are processed in subsequent iterations.
This prevents loading incomplete or oversized pages during data aggregation.
:::

Infra/Core:
:::{dropdown} Grants server module read/write permissions for deprecated `path.shared_data` setting
Grants the server module read/write access to 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} 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} 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} Fixes index sort compatibility for `date_nanos` fields in indices created before 7.14
Indices created prior to version 7.14 that used an index sort on a `date_nanos` field could not be opened in more recent versions due to a mismatch in the default `index.sort.missing` value.
A change in version 7.14 modified the default from `Long.MIN_VALUE` to `0L`, which caused newer versions to reject those older indices.
[#132162](https://github.com/elastic/elasticsearch/pull/132162) resolves the issue by restoring the expected default value for indices created before 7.14, allowing them to open successfully in newer versions. (issue: [#132040](https://github.com/elastic/elasticsearch/issues/132040))
:::

:::{dropdown} Fix missing removal of query cancellation callback in QueryPhase
The timeout cancellation callback registered in `QueryPhase` via `addQueryCancellation` was not removed after the query phase completed.
This caused unintended timeouts or cancellations during subsequent phases under specific conditions (such as large datasets, low timeouts, and partial search results enabled).
[#130279](https://github.com/elastic/elasticsearch/pull/130279) resolves the issue and ensures predictable behavior by reintroducing the cleanup logic. (issue: [#130071](https://github.com/elastic/elasticsearch/issues/130071))
:::


## 9.1.0 [elasticsearch-9.1.0-release-notes]

### Highlights [elasticsearch-9.1.0-highlights]
Expand Down
Loading