Skip to content

Conversation

@kares
Copy link
Contributor

@kares kares commented Dec 11, 2025

No description provided.

@headius headius merged commit 5af4cec into ruby:master Dec 11, 2025
75 checks passed
@headius
Copy link
Contributor

headius commented Dec 11, 2025

Thanks @kares!

donoghuc added a commit to donoghuc/logstash that referenced this pull request Dec 17, 2025
The latest psych 5.3 minor version has bumped snakeyaml-engine
ruby/psych#762. This is causing issues in bundler.
Constrain the psych gem to the 5.2 minor version while we are still on jruby
9.4.13.0.
@donoghuc
Copy link

@kares @headius Would we expect that the snakeyaml-engine for psych need to match the version vendored with jruby? For example when running psych 5.3.1 with jruby 9.4.13.0 (which ships with snakeyaml-engine 2.9) we are seeing issues with bundler (see elastic/logstash#18507 (comment))

Errno::ENOENT: No such file or directory - /Users/cas/elastic-repos/logstash/vendor/jruby/lib/ruby/gems/shared/gems/psych-5.3.1-java/deps.lst
  org/jruby/RubyIO.java:1279:in `sysopen'

Seems related to the maven/jar-dependencies rabbit hole this points to #690

donoghuc added a commit to elastic/logstash that referenced this pull request Dec 17, 2025
The latest psych 5.3 minor version has bumped snakeyaml-engine
ruby/psych#762. This is causing issues in bundler.
Constrain the psych gem to the 5.2 minor version while we are still on jruby
9.4.13.0.
mergify bot pushed a commit to elastic/logstash that referenced this pull request Dec 17, 2025
The latest psych 5.3 minor version has bumped snakeyaml-engine
ruby/psych#762. This is causing issues in bundler.
Constrain the psych gem to the 5.2 minor version while we are still on jruby
9.4.13.0.

(cherry picked from commit a089904)
mashhurs pushed a commit to elastic/logstash that referenced this pull request Dec 17, 2025
The latest psych 5.3 minor version has bumped snakeyaml-engine
ruby/psych#762. This is causing issues in bundler.
Constrain the psych gem to the 5.2 minor version while we are still on jruby
9.4.13.0.

(cherry picked from commit a089904)

Co-authored-by: Cas Donoghue <cas.donoghue@gmail.com>
@kares
Copy link
Contributor Author

kares commented Dec 18, 2025

for the embedded use-case, Logstah is, this really is up to you to manage.

you can e.g. take on jar-deps to be better aligned with your use-case, unless the plan is to comment on every jar dependency bump on external gems.

@donoghuc
Copy link

It seems like with jruby 9.4.13.0 and bundler 2.6.3 at least, the issue is independent of logstash. For example:

For this Gemfile:

source "https://rubygems.org"

gem 'psych', '~> 5.3.1'

A bundle install gives this error:

Fetching gem metadata from https://rubygems.org/........
Resolving dependencies...
Fetching date 3.5.1 (java)
Installing date 3.5.1 (java)
Fetching psych 5.3.1 (java)
Installing psych 5.3.1 (java)
  jar dependencies for psych-5.3.1-java.gemspec . . .
      org.snakeyaml:snakeyaml-engine:2.10:compile
[ERROR] Failed to execute goal on project jars: Could not collect dependencies for project no_group_id_given:jars:jar:0.0.0
[ERROR] Failed to read artifact descriptor for org.snakeyaml:snakeyaml-engine:jar:2.10
[ERROR] 	Caused by: The following artifacts could not be resolved: org.snakeyaml:snakeyaml-engine:pom:2.10 (absent): Could not transfer artifact org.snakeyaml:snakeyaml-engine:pom:2.10 from/to central (https://repo.maven.apache.org/maven2): Operation timed out
[ERROR]
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
--- ERROR REPORT TEMPLATE -------------------------------------------------------

Errno::ENOENT: No such file or directory - /Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/gems/shared/gems/psych-5.3.1-java/deps.lst
org/jruby/RubyIO.java:1279:in sysopen' org/jruby/RubyIO.java:4275:in read'
/Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/gems/shared/gems/jar-dependencies-0.5.5/lib/jars/installer.rb:76:in load_from_maven' /Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/gems/shared/gems/jar-dependencies-0.5.5/lib/jars/installer.rb:221:in install_dependencies'
/Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/gems/shared/gems/jar-dependencies-0.5.5/lib/jars/installer.rb:210:in do_install' /Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/gems/shared/gems/jar-dependencies-0.5.5/lib/jars/installer.rb:155:in vendor_jars'
/Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/stdlib/rubygems/defaults/jruby.rb:110:in block in <main>' /Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/stdlib/rubygems/installer.rb:367:in block in run_post_install_hooks'
org/jruby/RubyArray.java:2009:in each' /Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/stdlib/rubygems/installer.rb:366:in run_post_install_hooks'
/Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/stdlib/bundler/rubygems_gem_installer.rb:48:in install' /Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/stdlib/bundler/source/rubygems.rb:205:in install'
/Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/stdlib/bundler/installer/gem_installer.rb:55:in install' /Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/stdlib/bundler/installer/gem_installer.rb:17:in install_from_spec'
/Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/stdlib/bundler/installer/parallel_installer.rb:133:in do_install' /Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/stdlib/bundler/installer/parallel_installer.rb:124:in block in worker_pool'
/Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/stdlib/bundler/worker.rb:62:in apply_func' /Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/stdlib/bundler/worker.rb:57:in block in process_queue'
org/jruby/RubyKernel.java:1725:in loop' /Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/stdlib/bundler/worker.rb:54:in process_queue'
/Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/stdlib/bundler/worker.rb:90:in `block in create_threads'


## Environment

Bundler 2.6.3
Platforms ruby, universal-java-21
Ruby 3.1.4p0 (2025-06-10 revision 9938a3461fbfdf6048dda0a0411551d6a433581a) [universal-java-21]
Full Path /Users/cas/.rbenv/versions/jruby-9.4.13.0/bin/jruby
Config Dir /Users/cas/.rbenv/versions/jruby-9.4.13.0/etc
RubyGems 3.6.3
Gem Home /Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/gems/shared
Gem Path /Users/cas/.local/share/gem/jruby/3.1.0:/Users/cas/.rbenv/versions/jruby-9.4.13.0/lib/ruby/gems/shared
User Home /Users/cas
User Path /Users/cas/.local/share/gem/jruby/3.1.0
Bin Dir /Users/cas/.rbenv/versions/jruby-9.4.13.0/bin
OpenSSL
Compiled JRuby-OpenSSL 0.15.4
Loaded JRuby-OpenSSL 0.15.4
Cert File /opt/homebrew/Cellar/openjdk@21/21.0.6/libexec/openjdk.jdk/Contents/Home/lib/security/cacerts
Cert Dir /etc/ssl/certs
Tools
Git 2.47.0
RVM not installed
rbenv rbenv 1.3.2
chruby not installed
Gem.ruby /Users/cas/.rbenv/versions/jruby-9.4.13.0/bin/jruby
bundle #! /usr/bin/env jruby


## Bundler Build Metadata

Built At 2025-01-16
Git SHA 3c7c4ff2d8f
Released Version true


## Gemfile

### Gemfile

```ruby
source "https://rubygems.org"

gem 'psych', '~> 5.3.1'

Gemfile.lock

<No /private/tmp/bar/Gemfile.lock found>

--- TEMPLATE END ----------------------------------------------------------------

Unfortunately, an unexpected error occurred, and Bundler cannot continue.

First, try this link to see if there are any existing issue reports for this error:
https://github.com/rubygems/rubygems/search?q=No+such+file+or+directory+-+%2FUsers%2Fcas%2F.rbenv%2Fversions%2Fjruby-9.4.13.0%2Flib%2Fruby%2Fgems%2Fshared%2Fgems%2Fpsych-5.3.1-java%2Fdeps.lst&type=Issues

If there aren't any reports for this error yet, please fill in the new issue form located at https://github.com/rubygems/rubygems/issues/new?labels=Bundler&template=bundler-related-issue.md, and copy and paste the report template above in there.


@donoghuc
Copy link

Actually disregard that! Sorry, I had a local maven config that was using a broken proxy 🤦 Jar-dependencies is able to manage the snakeyaml-engine jar.

@chadlwilson
Copy link
Contributor

chadlwilson commented Dec 19, 2025

Yeah, this broke gocd too with the a similar error; except a file not found on the jar. I suspect there could be a bug in jar_dependencies, possibly when using an existing cached jar_dependencies alongside BUNDLE_GLOBAL_GEM_CACHE and JARS_SKIP in my case.

@donoghuc - did you have to do anything in particular with your proxy to "unbreak" it, in case my issue is that too?

@donoghuc
Copy link

@chadlwilson i found that setting the JARS_DEBUG=true and JARS_VERBOSE=true environment variables when doing the install helped explain exactly what the issue was. In my case i had a defunct proxy configured in my ~/.m2/settings.xml file.

One note that i found frustrating was that in the case I mentioned in this comment #762 (comment) the rest of the psych gem would install (just not the snakeyaml-engine jar) and then subsequent bundle installs would appear to succeed.

@chadlwilson
Copy link
Contributor

Thanks for the tips!

I noted something similar about the "appears to succeed" in jruby/jruby#8886 which is a related issue (the one I was trying to workaround with JARS_SKIP in the first place since I don't actually need psych, I just get it as a transitive). I imagine my setup is sufficiently different that my problems might be something different though.

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.

4 participants