Update bundled Opensearch in Datanode to 3.5.0#25062
Conversation
There was a problem hiding this comment.
Pull request overview
Upgrades the bundled OpenSearch distribution shipped with the Data Node to 3.5.0 and aligns the codebase with related upstream changes (Lucene upgrade and renamed OpenSearch node roles for searchable snapshots).
Changes:
- Bump bundled OpenSearch (Data Node) to 3.5.0 and update associated checksums/JDK artifacts.
- Upgrade Lucene to 10.3.2 and adapt Lucene API usage in query validation code.
- Rename searchable-snapshots role from
searchtowarm, updating config logic and tests; adjust index compatibility tests accordingly.
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
pom.xml |
Updates shared Lucene version to match the new OpenSearch/Lucene baseline. |
graylog2-server/.../FixedBooleanQuery.java |
Adapts to Lucene 10 BooleanClause accessor API changes. |
data-node/pom.xml |
Bumps bundled OpenSearch to 3.5.0, updates download checksums, and updates macOS JDK download coordinates. |
data-node/src/main/resources/opensearch/config/jvm.options |
Updates OpenSearch JVM options shipped inside the embedded OpenSearch distribution. |
data-node/config/jvm.options |
Updates Data Node JVM options file (used by the Data Node launcher script). |
data-node/src/main/java/.../SearchableSnapshotsConfigurationBean.java |
Renames role handling from search to warm for searchable snapshots configuration. |
data-node/src/main/java/.../OpensearchNodeRole.java |
Renames role constant SEARCH → WARM. |
data-node/src/test/java/.../SearchableSnapshotsConfigurationBeanTest.java |
Updates assertions to expect WARM role behavior. |
data-node/src/test/java/.../OpensearchClusterConfigurationBeanTest.java |
Updates test fixtures and role values from search to warm. |
data-node/src/test/java/.../ShardStatsParserTest.java |
Updates expectations for reading older index formats (now incompatible). |
data-node/src/test/java/.../IndicesDirectoryParserTest.java |
Updates expectations to treat older index formats as incompatible. |
UPGRADING.md |
Adds upgrade guidance note related to Data Node/OpenSearch migration constraints. |
changelog/unreleased/issue-25063.toml |
Adds changelog entry for the OpenSearch 3.5.0 bundle update. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| return builder | ||
| .properties(properties(searchRoleEnabled, enabledRepositories)) | ||
| .properties(properties(warmRoleEnabled, enabledRepositories)) | ||
| .keystoreItems(keystoreItems(enabledRepositories)) |
There was a problem hiding this comment.
warmRoleEnabled is passed into properties(...), but the method parameter name and inline comment still refer to searchRoleEnabled / “search role”. Renaming those to warmRoleEnabled (and updating the comment) would avoid confusion now that the node role has been renamed to warm.
| throw new OpensearchConfigurationException("Your configuration contains the warm node role in node_roles but there is no" + | ||
| "snapshots repository configured. Please remove the role or provide path_repo or S3 repository credentials."); |
There was a problem hiding this comment.
The exception message is built using string concatenation that currently yields "there is nosnapshots repository configured" (missing space after "no"). Also, it specifically mentions only path_repo and “S3 repository credentials”, but this bean appears to support multiple repository types; consider making the guidance generic (e.g. “configure a snapshots repository”) or enumerating the supported options.
| throw new OpensearchConfigurationException("Your configuration contains the warm node role in node_roles but there is no" + | |
| "snapshots repository configured. Please remove the role or provide path_repo or S3 repository credentials."); | |
| throw new OpensearchConfigurationException("Your configuration contains the warm node role in node_roles but there is no searchable snapshots repository configured. Please remove the role or configure a searchable snapshots repository (for example, using path_repo or S3 repository credentials)."); |
todvora
left a comment
There was a problem hiding this comment.
LGTM and works reliably for me locally. Won't merge it now, as we are waiting for the right moment. But this PR is perfectly fine and ready.
This reverts commit 66d8c7e.
This reverts commit 66d8c7e.
Description
Updates bundled Opensearch and plugins to 3.5.0
Renames node roles from
searchtowarmto comply with the new role names introduced in 3.0 (see https://docs.opensearch.org/latest/breaking-changes/#searchable-snapshots-node-role)/jpd https://github.com/Graylog2/graylog-plugin-enterprise/pull/13492
Motivation and Context
closes #25063
can only be merged after version verification: https://github.com/orgs/Graylog2/projects/98/views/1?pane=issue&itemId=119290031&issue=Graylog2%7Cgraylog-plugin-enterprise%7C11310merging this to be included in alpha
How Has This Been Tested?
running locally (upgrade from latest version)
existing integration tests
Screenshots (if appropriate):
Types of changes
Checklist: