[[release-notes-8.7.1]] == {es} version 8.7.1 Also see <>. [[known-issues-8.7.1]] [float] === Known issues * `ArrayIndexOutOfBoundsException` may be thrown while creating a transport message + Certain sequences of writes and seeks to the buffer used to create a transport message may encounter an alignment bug which results in an `ArrayIndexOutOfBoundsException`, preventing the transport message from being sent. + This issue is fixed in 8.8.0. include::8.6.0.asciidoc[tag=reconciliation-imbalance-known-issue] // tag::no-preventive-gc-issue[] * High Memory Pressure due to a GC JVM setting change + This version of Elasticsearch is bundled with JDK 20. In JDK 20 https://bugs.openjdk.org/browse/JDK-8293861[Preventive GC is disabled by default]. This may lead to increased memory pressure and an increased number of CircuitBreakerExceptions when retrieving large documents under some load patterns. (issue: {es-issue}99592[#99592]) + If this change affects your use of Elasticsearch, consider re-enabling the previous behaviour by adding the JVM arguments `-XX:+UnlockDiagnosticVMOptions -XX:+G1UsePreventiveGC` (reference: https://www.oracle.com/java/technologies/javase/20-relnote-issues.html#JDK-8293861[JDK 20 release notes]). It is important to note that this workaround is temporary and works only with JDK 20, which is bundled with Elasticsearch up to version 8.10.2 inclusive. Successive versions are bundling JDK 21+, where this setting https://bugs.openjdk.org/browse/JDK-8297639[has been removed]. Specifying those JVM arguments will prevent the JVM (and therefore Elasticsearch Nodes) from starting. // end::no-preventive-gc-issue[] [[bug-8.7.1]] [float] === Bug fixes Allocation:: * Compute balancer threshold based on max shard size {es-pull}95090[#95090] * Use applied state after `DiskThresholdMonitor` reroute {es-pull}94916[#94916] * Weaken node-replacement decider during reconciliation {es-pull}95070[#95070] ILM+SLM:: * Downsample ILM action should skip non-time-series indices {es-pull}94835[#94835] (issue: {es-issue}93123[#93123]) Ingest Node:: * Fix async enrich execution prematurely releases enrich policy lock {es-pull}94702[#94702] (issue: {es-issue}94690[#94690]) Network:: * Fix off-by-one bug in `RecyclerBytesStreamOutput` {es-pull}95036[#95036] Recovery:: * Async creation of `IndexShard` instances {es-pull}94545[#94545] Search:: * Return 200 when closing empty PIT or scroll {es-pull}94708[#94708] Stats:: * Fix _cluster/stats `.nodes.fs` deduplication {es-pull}94798[#94798] (issue: {es-issue}24472[#24472]) * Fix `FsInfo` device deduplication {es-pull}94744[#94744] [[enhancement-8.7.1]] [float] === Enhancements Authorization:: * Reuse `FieldPermissionsCache` in Role parsing {es-pull}94931[#94931] [[upgrade-8.7.1]] [float] === Upgrades Packaging:: * Upgrade bundled JDK to Java 20 {es-pull}94600[#94600]