Elasticsearch version 8.19.1
editElasticsearch version 8.19.1
editComing in 8.19.1.
Also see Breaking changes in 8.19.
Bug fixes
edit- Data streams
-
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 resolves this issue by disabling auto-sharding for data streams withLOOKUP
index mode, avoiding unsupported replica settings. - EQL
-
Resolves EQL parsing failure for IP-mapped fields in
OR
expressionsParsing 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 intoIN
expressions, which are unsupported for IP-type fields. #132167 resolves the issue and ensures EQL can now successfully parse and execute such or queries involving IP fields. (issue: #118621) - ES|QL
-
Fixes inconsistent equality and hashcode behavior for
ConstantNullBlock
Inconsistent equality checks caused
constantNullBlock.equals(anyDoubleBlock)
to return false, even whendoubleBlock.equals(constantNullBlock)
returned true. This asymmetry led to unreliable comparisons and mismatched hashcodes whenConstantNullBlock
was functionally equivalent to other standard blocks. #131817 resolves the issue and ensures both equality and hashcode functions are symmetric for these block types.Fixes
ConcurrentModificationException
caused by live operator listA
ConcurrentModificationException
caused test failures inCrossClusterAsyncEnrichStopIT.testEnrichAfterStop
under certain conditions. This happened because the ES|QL driver added a live operator list to theDriverStatus
object, which could be modified while the status was being serialized. #132260 fixes the issue by copying the operator list before storing it, preventing concurrent changes during status reads. (issue: #131564)Prevents null pointer exception for
to_lower
andto_upper
with no parametersCalling the
to_lower
orto_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 resolves the issue and ensures that empty parameter calls now return the correct error message. (issue: #131913)Fixes
aggregate_metric_double
decoding andmv_expand
behavior on multi-index queriesSorting 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 asNullBlock
but later incorrectly decoded asAggregateMetricDoubleBlock
, which expects four values. This mismatch caused decoding errors. #131658 resolves the issue and also improvesmv_expand
by returning the input block unchanged for unsupportedAggregateMetricDoubleBlock
values, avoiding unnecessary errors.Fixes incorrect
ingest_took
value when combining bulk responsesCombining two
BulkResponse
objects withingest_took
set toNO_INGEST_TOOK
resulted in a combinedingest_took
value of-2
, which was invalid. This occurred because the combination logic failed to preserve the sentinelNO_INGEST_TOOK
constant. #132088 resolves the issue and ensures the result is correctly set toNO_INGEST_TOOK
when applicable.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 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
-
Grants server module read/write permissions for deprecated
path.shared_data
settingGrants the server module read/write access to the deprecated
path.shared_data
setting. #131680 resolves issues surfaced in internal testing and ensures compatibility with legacy configurations. - Ingest Node
-
Fixes incorrect mapping resolution in simulate ingest API when
mapping_addition
is providedWhen 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 resolves the issue and ensures that the index’s actual mapping is used when available, preserving consistency between simulation and execution. - Machine Learning
-
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 resolves the issue by reverting the change and restoring accurate memory estimation for trained model deployments.
- Mapping
-
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 becauseString.length()
was used to calculate the byte length of the field name, which only works correctly for ASCII characters. #132018 resolves the issue by using the actual byte array length of the encoded field name, ensuring proper decoding regardless of character encoding. - Search
-
Fixes index sort compatibility for
date_nanos
fields in indices created before 7.14Indices 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 defaultindex.sort.missing
value. A change in version 7.14 modified the default fromLong.MIN_VALUE
to0L
, which caused newer versions to reject those older indices. #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)Fix missing removal of query cancellation callback in QueryPhase
The timeout cancellation callback registered in
QueryPhase
viaaddQueryCancellation
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 resolves the issue and ensures predictable behavior by reintroducing the cleanup logic. (issue: #130071)
Enhancements
edit- Engine
-
-
Available disk space is now recorded when merge tasks are scheduled, helping to diagnose issues caused by running merges despite low disk space on nodes. This information appears in heap dumps and can inform adjustments to
indices.merge.disk.watermark.high
or inspire future enhancements such as aborting already running merges. #131711
-
Available disk space is now recorded when merge tasks are scheduled, helping to diagnose issues caused by running merges despite low disk space on nodes. This information appears in heap dumps and can inform adjustments to