Skip to content

Migrate SampleOperator Status transport version to standard getMinimalSupportedVersion pattern#120

Open
augment-app-staging[bot] wants to merge 504 commits intomainfrom
eval-1e3037ab
Open

Migrate SampleOperator Status transport version to standard getMinimalSupportedVersion pattern#120
augment-app-staging[bot] wants to merge 504 commits intomainfrom
eval-1e3037ab

Conversation

@augment-app-staging
Copy link

Summary

Migrate the SampleOperator.Status inner record's transport version handling from the custom supportsVersion override pattern to the standard getMinimalSupportedVersion pattern.

Changes

  • Changed getMinimalSupportedVersion() to return ESQL_SAMPLE_OPERATOR_STATUS_9_1 instead of throwing UnsupportedOperationException
  • Removed the supportsVersion(TransportVersion) override, since the default implementation in VersionedNamedWriteable already does version.supports(getMinimalSupportedVersion()) which produces the same behavior

Triggered by: Slack-Bot-Evals

Slack discussion: https://augment-wic8570.slack.com/archives/C0AG2MXKEQJ/p1772675735191709

lukewhiting and others added 30 commits July 29, 2025 15:35
…131429) (elastic#132073)

* Prevent auto-sharding for data streams in LOOKUP index mode

* Update docs/changelog/131429.yaml

* Reduce test duplication
)

Previously, entitlement checks got disabled when resetting the policy manager (which defaults to inactive). This change makes sure entitlements are correctly enabled during tests.

Due to the lack of entitlement delegation (and usage of server's FileSystemUtils and similar in test code), there's a few remaining issues:
- various tests have to run without entitlements
- node base dirs cannot be removed immediately when shutting down the node due to pending cleanups (wipePendingDataDirectories)

Due to Netty dependency issues (ES-12435), azure and inference tests have to run without entitlements.
This reverts commit afa7fec.

(cherry picked from commit 54d0e6f)
…2157) (elastic#132233)

This is the same failure as observed in elastic#129644 for which the original
fix elastic#129680 did not really work. It did not work because the the
ordering of checks. The shutdown marker is removed after the cluster
passes ready check so that new shards can be allocated. But the cluster
cannot pass the ready check before the shards are allocated. Hence the
circular dependency. In hindsight, there is no need to put shutdown
record for all nodes. It is only needed on the node that upgrades the
last to prevent snapshot from completion during the upgrade process.
This PR does that which ensures there are always 2 nodes for hosting new
shards.

Resolves: elastic#132135 Resolves: elastic#132136 Resolves: elastic#132137
(cherry picked from commit f39ccb5)

# Conflicts:
#	muted-tests.yml
…lastic#132244)

The listener is expected to be called on failure case. This PR does
that.

Resolves: elastic#131979
…tBlocksNewMergeTasksFromStartingExecution (elastic#132020) (elastic#132267)

Avoid mocking merge tasks as backlogged (which are then re-enqueued)
because it makes the merge task's queue available budget value unsteady,
which breaks the test when it later schedules merge tasks that are
under/over budget.

Closes elastic#130205
elastic#131982
…ic#132170) (elastic#132270)

A follow-up to elastic#131990. This PR ensures that only assigned allocations and not current allocations are used in the memory requirements calculation in AssignmentPlan.

This change led to the simplification of the code in ZoneAwareAssignmentPlanner and TrainedModelRebalancer.

This PR also improves readability by adding comments, code documentation, renaming variables, and making the flow of if statements more straightforward.

Marking is a non-issue since the bug was already documented in elastic#131990.
If we combined two `BulkResponse`s with `ingest_took` set to
`NO_INGEST_TOOK` we'd get an `ingest_took` of `-2`. Which doesn't make
any sense. This fixes it to be set to `NO_INGEST_TOOK` properly.
This change is needed after release of 8.17.9 as 8.17.10 is the next
version for the 8.17 branch.
It has been already added previously, but reverted in https://github
.com/elastic/elasticsearch/commit
/f8d97f36e37fe18530e2f3858ded147f11634ebe probably by a bug in
automation.

(cherry picked from commit 42f9368)

# Conflicts:
#	.buildkite/pipelines/intake.yml
#	.buildkite/pipelines/periodic.yml
Test was removed in elastic#132063, so we can remove the mutes and close the
test failure issue.

Closes elastic#131803
…lastic#132171)

This commit fixes an issue whereby indices created prior to 7.14 that have an index sort on a date_nanos field can no longer be opened (with versions >= 7.14). When opening an index the configured index sort, derived from the index settings, must match exactly that of the sort encoded in the index itself. A change to fix a bug back in 7.14 changed this for date_nanos fields whose index.sort.missing value is absent, see elastic#74760. Specifically, the default minimum value changed from Long.MIN_VALUE to 0L.

The change in this commit restores the default minimum value for indices prior to 7.14.
In some contexts ESQL's HeapAttack tests were failing because the
TranslogWriter keeps a map with the contents of the documents in it
around. But only when assertions are enabled. Fun. This flushes the map
away, preventing the odd OOM we were seeing in the HeapAttack tests.
…ic#132260) (elastic#132333)

`DriverStatus` is an immutable record created by the Driver. However, its components are not inherently immutable.

This PR fixes a live collection used by the Driver, that was being directly put into the status, leading to `ConcurrentModificationException`s when reading it (Through the Task list API, for example).

Some example errors:
```
java.util.ConcurrentModificationException
	at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1096)
	at java.base/java.util.ArrayList$Itr.next(ArrayList.java:1050)
	at org.elasticsearch.compute.operator.DriverStatus.toXContent(DriverStatus.java:134)
	at org.elasticsearch.xcontent@9.2.0/org.elasticsearch.xcontent.XContentBuilder.value(XContentBuilder.java:993)
	at org.elasticsearch.xcontent@9.2.0/org.elasticsearch.xcontent.XContentBuilder.field(XContentBuilder.java:978)
	at org.elasticsearch.server@9.2.0/org.elasticsearch.tasks.TaskInfo.toXContent(TaskInfo.java:113)
	at org.elasticsearch.server@9.2.0/org.elasticsearch.action.admin.cluster.node.tasks.list.TaskGroup.toXContent(TaskGroup.java:63)
	at org.elasticsearch.server@9.2.0/org.elasticsearch.action.admin.cluster.node.tasks.list.TaskGroup.toXContent(TaskGroup.java:67)
	at org.elasticsearch.server@9.2.0/org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksResponse.lambda$groupedByParent$10(ListTasksResponse.java:183)
```
And:
```
java.util.ConcurrentModificationException
	at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1096)
	at java.base/java.util.ArrayList$Itr.next(ArrayList.java:1050)
	at org.elasticsearch.compute.operator.DriverStatus.documentsFound(DriverStatus.java:157)
	at org.elasticsearch.compute.operator.DriverStatus.toXContent(DriverStatus.java:129)
	at org.elasticsearch.xcontent@9.2.0/org.elasticsearch.xcontent.XContentBuilder.value(XContentBuilder.java:993)
	at org.elasticsearch.xcontent@9.2.0/org.elasticsearch.xcontent.XContentBuilder.field(XContentBuilder.java:978)
	at org.elasticsearch.server@9.2.0/org.elasticsearch.tasks.TaskInfo.toXContent(TaskInfo.java:113)
	at org.elasticsearch.server@9.2.0org.elasticsearch.action.admin.cluster.node.tasks.list.TaskGroup.toXContent(TaskGroup.java:63)
	at org.elasticsearch.server@9.2.0/org.elasticsearch.action.admin.cluster.node.tasks.list.TaskGroup.toXContent(TaskGroup.java:67)
	at org.elasticsearch.server@9.2.0/org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksResponse.lambda$groupedByParent$10(ListTasksResponse.java:183)

```

Also, this looks like the source of this issue, with another similar case:
Fixes elastic#131564
This PR contains the following updates:

| Package | Type | Update | Change | |---|---|---|---| |
docker.elastic.co/wolfi/chainguard-base |  | digest | `2a601e3` ->
`442a566` | | docker.elastic.co/wolfi/chainguard-base | final | digest |
`2a601e3` -> `442a566` | | docker.elastic.co/wolfi/chainguard-base |
stage | digest | `2a601e3` -> `442a566` | |
docker.elastic.co/wolfi/chainguard-base-fips |  | digest | `93befc0` ->
`4a8fe3e` | | docker.elastic.co/wolfi/chainguard-base-fips | final |
digest | `93befc0` -> `4a8fe3e` | |
docker.elastic.co/wolfi/chainguard-base-fips | stage | digest |
`93befc0` -> `4a8fe3e` |

---

### Configuration

📅 **Schedule**: Branch creation - "after 1pm on tuesday" (UTC),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once
you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://elastic.slack.com/archives/C07AMD4CNUR) if that's
undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiOS4xIiwibGFiZWxzIjpbIjpEZWxpdmVyeS9QYWNrYWdpbmciLCI+bm9uLWlzc3VlIiwiVGVhbTpEZWxpdmVyeSIsImF1dG8tbWVyZ2Utd2l0aG91dC1hcHByb3ZhbCJdfQ==-->
ywangd and others added 30 commits September 4, 2025 10:53
…etting (elastic#134099) (elastic#134108)

Ensure green after rollover to avoid unexpected license state flipping.

Resolves: elastic#133455
…33793) (elastic#134111)

This PR focuses on the short term solution which add the logs-sentinel_one.application-* and logs-sentinel_one.application_risk-* indices under the kibana_system role with deletion privileges to prevent a failed deletion error when the index enters the deletion phase for the ILM lifecycle, in upcoming PR. As it ships transform pipeline too hence read, write permissions are also required.

Current behavior:
It shows permission issue while deleting the index.

(cherry picked from commit bfde47a)
…elastic#134139)

This ensures we provide a new test seed per build invocation when running
with configuration cache enabled while still ensuring the configuration cache
can be reused.

basically test seed beeing ignored as cc input.
…lastic#134084) (elastic#134142)

This reverts our other bootstrapping of file-based transport versions
to make migration simpler moving forward and adds the initial version
one prior to the last initial version for each of 9.1, 9.0, 8.19, and 8.18.
…4158) (elastic#134159)

This leaves the latest initial elasticsearch transport version for 8.18 as a marker.

ES-12334
…#134176)

This leaves the latest initial elasticsearch transport version for 8.19 as a marker.

ES-12334
…tic#134191)

* Mark migrate_reindex APIs as public

* Add indices.create_from too

* Mark migrate_reindex APIs as stable

* Fix indices.get_migrate_reindex_status stability
These tests would sometimes create 1-replica indices in a 1-node cluster
which will never reach `green` health. This commit ensures there are
enough nodes to allocate all the shards.

Closes elastic#133455
Closes elastic#134124
Closes elastic#134123
Backport of elastic#134132 to `9.1`
They are used in Kibana, and documented as Kibana-only in the documentation.
…34226)

This leaves the latest initial elasticsearch transport version for 9.0 as a marker.

ES-12334
…artialResultsSetToFalse (elastic#134236) (elastic#134247)

* Block remote query search too

(cherry picked from commit 9f4262b)

# Conflicts:
#	muted-tests.yml
…stic#134291)

We already fixed an issue with this in elastic#128362 but apparently another
instance of the unnecessary determinization was hiding elsewhere and in
its current state throws exceptions starting with Lucene 10 on complext
patterns.
This change adds the same fix as elastic#128362 and adds a test that would have
triggered this.

Closes elastic#133652
) (elastic#134313)

When new cluster settings are applied, consumers watchings are notified.
The consumer should see the latest value at the time of initializing a
watch. However, only the node settings were ever used in finding the
value to initialize the consumer. This commit fixes the consumer to use
the value from latest applied if it exists.

closes elastic#133701
…134311)

This leaves the latest initial elasticsearch transport version for 9.1 as a marker.

ES-12334
Tracks the more memory that's involved in topn.

Lucene doesn't track memory usage for TopN and can use a fair bit of it.
Try this query:
```
FROM big_table
| SORT a, b, c, d, e
| LIMIT 1000000
| STATS MAX(a)
```

We attempt to return all million documents from lucene. Is we did this
with the compute engine we're track all of the memory usage. With lucene
we have to reserve it.

In the case of the query above the sort keys weight 8 bytes each. 40
bytes total. Plus another 72 for Lucene's `FieldDoc`. And another 40 at
least for copying to the values to `FieldDoc`. That totals something
like 152 bytes a piece. That's 145mb. Worth tracking!

 ## Esql Engine TopN

Esql *does* track memory for topn, but it doesn't track the memory used by the min heap itself. It's just a big array of pointers. But it can get very big!
…lastic#134336)

Comments may be added to the beginning of transport version
files by starting each comment line with the hash # character.
elastic#134377 is an automatically generated backport PR that was merged
without CI actually having run. It turns out that there are changes in
my newly added tests there that aren't compatible with the 9.1 branch.
That would have shaken out if CI had actually run, but it didn't, so I'm
fixing it in post.

This is tangentially related to elastic#134319.
…pattern

Replace the custom supportsVersion override with the standard
getMinimalSupportedVersion pattern. The default implementation in
VersionedNamedWriteable already does version.supports(getMinimalSupportedVersion())
which produces the same behavior.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.