ruby / ruby/digest

digest dependency breaks jruby openssl

Open
#49 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
51
Forks
37
Avg merge
8h 16m
Merged PRs (30d)
4

Description

Hello.

We are facing a weird issue where as soon as digest dependency appears for the project, it breaks jruby loading openssl extension:

NameError: cannot load (ext) (org.jruby.ext.openssl.OpenSSL)
  org/jruby/ext/jruby/JRubyUtilLibrary.java:201:in `load_ext'
  /opt/jruby/lib/ruby/stdlib/jopenssl/load.rb:31:in `<main>'
  org/jruby/RubyKernel.java:974:in `require'
  /opt/jruby/lib/ruby/stdlib/openssl.rb:1:in `<main>'
  org/jruby/RubyKernel.java:974:in `require'
  /usr/local/bundle/gems/rack-2.2.3/lib/rack/session/cookie.rb:3:in `<main>'

It does not matter if digest is listed in Gemfile or installed as a transient dependency (e.g. mail -> net-imap -> digest).

As soon as it is removed, for example, even this way (or from Gemfile):

mv /usr/local/bundle/gems/digest-3.1.0-java /usr/local/bundle/gems/digest-3.1.0-removed

The app starts just fine and doesn't break.

Environment:

jruby 9.2.14.0 (2.5.7) 2020-12-08 ebe64bafb9 OpenJDK 64-Bit Server VM 25.282-b08 on 1.8.0_282-b08 +jit [linux-x86_64]
OpenSSL 1.1.1n  15 Mar 2022

Distributor ID:	Debian
Description:	Debian GNU/Linux 10 (buster)
Release:	10
Codename:	buster

Basically it's a docker image based off jruby:9.2.14.0

Any idea what could be breaking inside jruby/jruby-openssl because of this gem?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure with the jruby:9.2.14.0 image on Debian 10, comparing startup with and without digest-3.1.0-java installed. Trace the dependency path from digest or mail/net-imap into jopenssl and inspect the reported OpenSSL loading failure. Done means identifying the compatibility cause and documenting a reproducible fix or limitation.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.