Skip to content

Backport bump jruby 9.4.13#19188

Draft
andsel wants to merge 11 commits into
elastic:logstash_8.19_jruby10from
andsel:backport_bump_jruby_9.4.13
Draft

Backport bump jruby 9.4.13#19188
andsel wants to merge 11 commits into
elastic:logstash_8.19_jruby10from
andsel:backport_bump_jruby_9.4.13

Conversation

@andsel

@andsel andsel commented Jun 4, 2026

Copy link
Copy Markdown
Member

Release notes

What does this PR do?

Backports #17787 and #17696 to bundle JRuby 9.4.13 to Logstahs 8.19 branch, fixing conflicts.

Why is it important/What is the impact to the user?

Checklist

  • My code follows the style guidelines of this project
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have made corresponding change to the default configuration files (and/or docker env variables)
  • I have added tests that prove my fix is effective or that my feature works

Author's Checklist

  • [ ]

How to test this PR locally

Related issues

Use cases

Screenshots

Logs

…9183) (elastic#19187)

Made with ❤️️ by updatecli


(cherry picked from commit 497b995)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@andsel andsel self-assigned this Jun 4, 2026
@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

🤖 GitHub comments

Just comment with:

  • run docs-build : Re-trigger the docs validation. (use unformatted text in the comment!)
  • run exhaustive tests : Run the exhaustive tests Buildkite pipeline.

andsel and others added 9 commits June 5, 2026 09:35
…ic#19190)

Update Elasticsearch and Enterprise search plugins to use the 8.19 version of the respective client libraries.

Update the Gemfile.lock to use Elastic client libraries version 8.19, and update the Enterprise Search Logstash integration plugin accordingly.

Also update license management to include the license for the `ostruct` dependency.
* upgrade jruby to 9.4.11.0

* follow up cleanups

* follow up cleanups

* follow up cleanups

* follow up cleanups

* add licenses

* Update rakelib/plugins-metadata.json

* attempt to fix rubygems

* attempt to fix rubygems

* attempt to fix rubygems

* tweaks for jruby 9.4.12.0 and sha256 validation

* attempt at fixing rubygems

* attempt at fixing rubygems

* attempt at fixing rubygems

* attempt at fixing rubygems

* Bump jruby to 9.4.12.1

* Explicitly require 'set' to make `to_set` available

Something appears to have changed in code loading where this require
is no longer in the call chain. Explicitly require it here.

* Fix up dependency mapper

* Update bundler code with latest rubygems release

This commit makes 2 changes:

1. We were sending a `Gem::Platform` instance to Thor parser instead of a
string. Convert to string version of a platform name. With newly added checks in
Thor, we were getting `noMethodError` for `Gem::Platform`.

2.  It looks like there was a patch to get around a bug in bundler that was
reaching out to the network for local gems. This appears to have been fixed
upstream, this removes the patch.

* Restore patch

* Remove patch (TODO, link to full writeup)

* SPIKE: Take up jruby 9.4.13.0

* Patch bundler cache

Still validating this. Essentially ensure we check local gems when calling cache using
the updated rubygems class.

* WIP: test patch for acceptance tests

* Skip when unable to cache

* Cache every gem

* Fix acceptance test

* Force another route through builtin

* Fixup idea (it returns nil, not raise)

* Fix missing version update

* Fix qatest filter plugin

Without including a gemspec with a locally built gem logstash-plugin list
will not show it in the output.

* Use vendored gem instead of reaching out to rubygems

We vendor an udpated test gem for local install. Use that instead of
reaching out to rubygems.

* Document and comment on the patched bundler code

* Fix test

instead of downloading the "broken" one from rubygems (downloading the `.gem` file directly
does show up in plugin-list), using a vendored one polutes the cache. Use a new vendored
gem

---------

Co-authored-by: João Duarte <jsvduarte@gmail.com>
Co-authored-by: João Duarte <jsvd@users.noreply.github.com>
Without this change the Bundler shipped with JRuby 9.4.13 (2.6.3) checks the
existing lockfile version (2.3.26), given the mismatching version, Bundler tries
to restarts itself but with half backed configuration, not setting a HOME properly
and makes failing the `:bootstrap`.

./gradlew bootstrap runs Bundler inside Gradle’s embedded JRuby (jruby-core), not via vendor/jruby/bin/jruby. Because that embedded runtime has no JRuby home set, Gem.ruby points to a non-existent $TMPDIR/bin/jruby, and when Bundler tries to auto-switch to the lockfile’s Bundler version (2.3.26 vs 2.6.3), it fails with Errno::ENOENT trying to exec that path.
* Pin jar-dependencies to match jruby 9.4.13.0

When default and bundler dont agree we can see errors about activated versions.

* Revert "fix jars installer for new maven and pin psych to 5.2.2 (elastic#16919)"

This reverts commit 52b7fb0.
@andsel andsel force-pushed the backport_bump_jruby_9.4.13 branch from 79fdc60 to 116e076 Compare June 5, 2026 08:14
@andsel

andsel commented Jun 5, 2026

Copy link
Copy Markdown
Member Author

run exhaustive tests

@elasticmachine

Copy link
Copy Markdown

💚 Build Succeeded

History

cc @andsel

@andsel

andsel commented Jun 10, 2026

Copy link
Copy Markdown
Member Author

run exhaustive tests

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants