Tags: elastic/elasticsearch
Tags
Fix built-in roles sync losing updates (#142433) (#142891) Built-in role sync requests arriving while another sync was in progress were silently discarded. This caused roles to go missing when cluster change events fired in quick succession during bootstrap. Replace the synchronizationInProgress AtomicBoolean with a lock-free AtomicInteger state machine (RolesSync) that tracks idle, syncing, and syncing_pending states. When a sync completes and updates are pending, it automatically retries with the latest roles.
Fix built-in roles sync losing updates (#142433) (#142892) Built-in role sync requests arriving while another sync was in progress were silently discarded. This caused roles to go missing when cluster change events fired in quick succession during bootstrap. Replace the synchronizationInProgress AtomicBoolean with a lock-free AtomicInteger state machine (RolesSync) that tracks idle, syncing, and syncing_pending states. When a sync completes and updates are pending, it automatically retries with the latest roles.
[Test] Set explicit heap size in DebPreservationTests to prevent oom-… …killed failures (#141440) (#141448) The `@Before` hook for heap sizing runs before installation is assigned, leading to potential issues with automatic heap sizing. This change sets the heap size to `1g` explicitly to avoid oom-killed errors during tests.
Fix ST_DISTANCE handling of invalid geometry literals that fold to nu… …ll (#140116) (#140265) (#140276) Occasionally on serverless we see a NullPointerException in parsing a geometry literal within ST_DISTANCE functions. This turned out to be hard to reproduce since we cannot see the original query causing this problem. It has been reported in #138594, including a full stack track confirming that it occurs during planning, while folding literals. It turned out to be reproducible with a query like: ``` ROW point = MV_SLICE(["POINT(0)"], 0, 0)::geo_point | EVAL distance = ST_DISTANCE(point, point) ``` Here the WKT is invalid, and the fold over the MV_SLICE would return literal `null` values, since the inner TO_GEOPOINT function was throwing exceptions (since the WKT was invalid). It turned out that MvSlice was using EvaluatorMapper.fold for folding the children, which returns literal java `null` values, and any function using these values needs to also handle literal nulls. So, `fold()` is expected to explicitly return null values when input is null, and the implementation of fold in StDistance did not do this. This PR now covers all descendents of BinarySpatialFunction: * ST_DISTANCE * ST_INTERSECTS * ST_DISJOINT * ST_CONTAINS * ST_WITHIN
PreviousNext