Skip to content

Update bundled Opensearch in Datanode to 3.5.0#25062

Merged
moesterheld merged 21 commits intomasterfrom
datanode/bundle-os-3-5-0
Mar 22, 2026
Merged

Update bundled Opensearch in Datanode to 3.5.0#25062
moesterheld merged 21 commits intomasterfrom
datanode/bundle-os-3-5-0

Conversation

@moesterheld
Copy link
Copy Markdown
Contributor

@moesterheld moesterheld commented Feb 19, 2026

Description

Updates bundled Opensearch and plugins to 3.5.0

Renames node roles from search to warm to 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%7C11310
merging 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

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Refactoring (non-breaking change)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have requested a documentation update.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 search to warm, 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 SEARCHWARM.
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.

Comment thread UPGRADING.md
Comment thread data-node/config/jvm.options
Comment thread data-node/config/jvm.options
Comment thread UPGRADING.md Outdated
Comment thread UPGRADING.md Outdated
Comment thread UPGRADING.md Outdated
Comment on lines 98 to 100
return builder
.properties(properties(searchRoleEnabled, enabledRepositories))
.properties(properties(warmRoleEnabled, enabledRepositories))
.keystoreItems(keystoreItems(enabledRepositories))
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Comment on lines +103 to 104
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.");
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
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).");

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor

@todvora todvora left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@moesterheld moesterheld merged commit 66d8c7e into master Mar 22, 2026
25 checks passed
@moesterheld moesterheld deleted the datanode/bundle-os-3-5-0 branch March 22, 2026 16:21
dennisoelkers added a commit that referenced this pull request Mar 23, 2026
moesterheld added a commit that referenced this pull request Apr 2, 2026
moesterheld added a commit that referenced this pull request Apr 7, 2026
* Revert "Update bundled Opensearch in Datanode to 3.5.0 (#25062)"

This reverts commit 66d8c7e.

* use os 2.19.5

* cl

* cl

* fix version

---------

Co-authored-by: Tomas Dvorak <tomas.dvorak@graylog.com>
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.

Bundle Opensearch 3.5.0 in Datanode

3 participants