Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

emphasize the folllowing cluster need to have correct version #117739

Closed
wants to merge 931 commits into from

Conversation

Camilleli
Copy link

I do believe a new version compatibility matrix should be made for following index. But it might involve other issues that support not thinking about. The current matrix here would likely mislead the customer to think the following cluster can be older than the remote cluster.

elasticsearchmachine and others added 30 commits October 22, 2024 20:43
It looks like this test was accidentally re-muted. Unmuting again.
Closes #112575
This reverts commit 4c15cc0.
This commit introduced an orders of magnitude regression when searching many shards.

Co-authored-by: Elastic Machine <[email protected]>
…115379)

By definition a "mixed cluster" has nodes of two different versions of
Elasticsearch. It doesn't make sense to run these tests against the
current version of Elasticsearch.
This PR exposes operator-defined, cluster-state role mappings in the
[Get role mappings
API](https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-get-role-mapping.html).


Cluster-state role mappings are returned with a reserved suffix
`-read-only-operator-mapping`, to disambiguate with native role mappings
stored in the security index. CS role mappings are also marked with a
`_read_only` metadata flag. It's possible to query a CS role mapping
using its name both with and without the suffix.  

CS role mappings can be viewed via the API, but cannot be modified. To
clarify this, the PUT and DELETE role mapping endpoints return header
warnings if native role mappings that name-clash with CS role mappings
are created, modified, or deleted. 

The PR also prevents the creation or role mappings with names ending in
`-read-only-operator-mapping` to ensure that CS role mappings and native
role mappings can always be fully disambiguated.

Finally, the PR changes how CS role mappings are persisted in
cluster-state. CS role mappings are written (and read from disk) in the
`XContent` format. This format omits the role mapping's name. This means
that if CS role mappings are ever recovered from disk (e.g., during a
master-node restart), their names are erased. To address this, this PR
changes CS role mapping serialization to persist the name of a mapping
in a reserved metadata field, and recover it from metadata during
serialization. This allows us to persist the name without BWC-breaks in
role mapping `XContent` format. It also allows us to ensure that role
mappings are re-written to cluster state in the new, name-preserving
format the first time operator file settings are processed.

Depends on: #114295
Relates: ES-9628
The new names are .elser-2-elasticsearch and .multilingual-e5-small-elasticsearch
Fix #115281

Let's disable the faulty optimization for now and re-introduce it later,
correctly.

(cherry picked from commit 98d5335)

Co-authored-by: Alexander Spies <[email protected]>
…estEveryActionIsEitherOperatorOnlyOrNonOperator #102992

(cherry picked from commit 3b9d55d)
…ndIncompleteContent with JDK23 (#115197) (#115441)

Resolves #115172

Co-authored-by: Pooya Salehi <[email protected]>
Long GC disruption relies on Thread.resume, which is removed in JDK 23.
Tests that use it predate more modern disruption tests. This commit
removes gc disruption and the master disruption tests. Note that tests
relying on this scheme have already not been running since JDK 20 first
deprecated Thread.resume.
Fix the test muting on the test for grapheme clusters - it should only
allow the test if we're on the 20+ jvm.

Closes #114536
In LogsDB we would like to use a default value of `8191` for the index-level setting
`index.mapping.ignore_above`. The value for `ignore_above` is the _character count_,
but Lucene counts bytes. Here we set the limit to `32766 / 4 = 8191` since UTF-8
characters may occupy at most 4 bytes.

(cherry picked from commit 521e434)

# Conflicts:
#	server/src/main/java/org/elasticsearch/common/settings/Setting.java

Co-authored-by: Salvatore Campagna <[email protected]>
This fixes filtered aggs when they are grouped on a field with ordinals.
This looks like:
```
| STATS max = max(salary) WHERE salary > 0 BY job_positions
```
when the `job_positions` field is a keyword field with doc values. In
that case we use a faster group-by-segment-ordinals algorithm that needs
to be able to merge the results of aggregators from multiple segments.
This previously failed with a `ClassCastException` because of a mistake.

Also! the group-by-segment-ordinals algorithm wasn't properly releasing
the closure used to add inputs, causing a breaker size leak. This wasn't
really leaking memory, but leaking *tracking* of memory.

Closes #114897
Fixes some faulty assertions in an upgrade test. Test failures only
manifest on the 8.16 branch since 9.x does not qualify for these upgrade
tests, and the change is not backported to 8.17 yet (unrelated CI
failures).

I validated this works by running it locally from the 8.16 branch.

Resolves: #115410
Resolves: #115411
If a node has been removed from the cluster and the trained model 
assignment has not been updated the GET stats action can have an
inconsistent view where it thinks a model is deployed on the removed
node. The bug only affected nodes with failed deployments.
(cherry picked from commit e581ae3)

Co-authored-by: shainaraskas <[email protected]>
maxhniebergall and others added 11 commits November 27, 2024 11:03
…#117595) (#117601)

* Add test and fix

* Update docs/changelog/117595.yaml

* Remove test which wasn't working
* [Gradle] Remove static use of BuildParams (#115122)

Static fields dont do well in Gradle with configuration cache enabled.

- Use buildParams extension in build scripts
- Keep BuildParams.ci for now for easy serverless migration
-  Tweak testing doc

(cherry picked from commit 13c8aae)

# Conflicts:
#	TESTING.asciidoc
#	build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/InternalDistributionBwcSetupPlugin.java
#	build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/RestTestBasePlugin.java
#	build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/test/rest/compat/compat/AbstractYamlRestCompatTestPlugin.java
#	build.gradle
#	modules/ingest-geoip/qa/full-cluster-restart/build.gradle
#	qa/mixed-cluster/build.gradle
#	x-pack/plugin/ent-search/qa/full-cluster-restart/build.gradle
#	x-pack/plugin/eql/qa/rest/build.gradle
#	x-pack/plugin/fleet/qa/rest/build.gradle
#	x-pack/plugin/kql/build.gradle
#	x-pack/plugin/mapper-unsigned-long/build.gradle
#	x-pack/plugin/ml/qa/multi-cluster-tests-with-security/build.gradle
#	x-pack/plugin/security/qa/multi-cluster/build.gradle
#	x-pack/plugin/sql/qa/jdbc/build.gradle
#	x-pack/plugin/transform/qa/multi-cluster-tests-with-security/build.gradle

* Fix merge

* [Build] Fix fips testing after buildparams rework (#116934)

* More Cleanup

* [Build] Fix checkstyle exclusions on windows (#115185)

* More merge fixes

* Delete x-pack/plugin/kql/build.gradle
* ESQL: fix COUNT filter pushdown (#117503)

If `COUNT` agg has a filter applied, this must also be push down to source. This currently does not happen, but this issue is masked currently by two factors:
* a logical optimisation, `ExtractAggregateCommonFilter` that extracts the filter out of the STATS entirely (and pushes it to source then from a `WHERE`);
* the phisical plan optimisation implementing the  push down, `PushStatsToSource`, currently only applies if there's just one agg function to push down.

However, this fix needs to be applied since:
* it's still present in versions prior to `ExtractAggregateCommonFilter` introduction;
* the defect might resurface when the restriction in `PushStatsToSource` is lifted.

Fixes #115522.

(cherry picked from commit 560e0c5)

* 8.16 adaptation
I do believe a new version compatibility matrix should be made for following index. 
But it might involve other issues that support not thinking about. 
The current matrix here would likely mislead the customer to think the following cluster can be older than the remote cluster.
Copy link
Contributor

Documentation preview:

@elasticsearchmachine
Copy link
Collaborator

@Camilleli please enable the option "Allow edits and access to secrets by maintainers" on your PR. For more information, see the documentation.

@elasticsearchmachine elasticsearchmachine added needs:triage Requires assignment of a team area label v8.16.2 external-contributor Pull request authored by a developer outside the Elasticsearch team labels Nov 29, 2024
@PeteGillinElastic PeteGillinElastic added :Distributed Indexing/CCR Issues around the Cross Cluster State Replication features and removed needs:triage Requires assignment of a team area label labels Dec 5, 2024
@elasticsearchmachine elasticsearchmachine added the Team:Distributed Indexing Meta label for Distributed Indexing team label Dec 5, 2024
@elasticsearchmachine
Copy link
Collaborator

Pinging @elastic/es-distributed-indexing (Team:Distributed Indexing)

@kingherc
Copy link
Contributor

@Camilleli is there a reason this is targetted only for 8.16 and not main as well?

@Camilleli Camilleli changed the base branch from 8.16 to main December 13, 2024 01:32
@Camilleli Camilleli requested review from a team as code owners December 13, 2024 01:32
@Camilleli
Copy link
Author

@kingherc, my bad, I do like to merge it to the main. Properly some wrong clicks during opening this PR. I have updated it. Please let me know if it works.

@kingherc
Copy link
Contributor

@Camilleli Probably need to update the PR and merge main to it, or rebase it on top of main. Because now it has >5000 files changed. Feel free to open a new PR if it's more straightforward.

@Camilleli Camilleli closed this Dec 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
:Distributed Indexing/CCR Issues around the Cross Cluster State Replication features external-contributor Pull request authored by a developer outside the Elasticsearch team Team:Distributed Indexing Meta label for Distributed Indexing team v8.16.3
Projects
None yet
Development

Successfully merging this pull request may close these issues.