Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Jan 2025 11:02:33 +0000
From:      bugzilla-noreply@freebsd.org
To:        ruby@FreeBSD.org
Subject:   [Bug 284112] sysutils/puppetserver7 broken by upgrade to devel/ruby-gems 3.6.2
Message-ID:  <bug-284112-21402@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D284112

            Bug ID: 284112
           Summary: sysutils/puppetserver7 broken by upgrade to
                    devel/ruby-gems 3.6.2
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: ray@bellis.me.uk
                CC: puppet@FreeBSD.org, ruby@FreeBSD.org
                CC: puppet@FreeBSD.org, ruby@FreeBSD.org

With latest 2025q1 packages for puppetserver7, the puppet daemon crashes af=
ter
a few seconds, with this (snipped) stack trace appearing in the log as appa=
rent
root cause:

--8<--8<--
Caused by: org.jruby.embed.EvalFailedException: (NoMethodError) undefined
method `bind_call' for #<UnboundMethod: Kernel#warn>
        at
org.jruby.embed.internal.EmbedEvalUnitImpl.run(EmbedEvalUnitImpl.java:134)
...
Caused by: org.jruby.exceptions.NoMethodError: (NoMethodError) undefined me=
thod
`bind_call' for #<UnboundMethod: Kernel#warn>
        at
RUBY.warn(/usr/local/lib/ruby/site_ruby/3.2/rubygems/core_ext/kernel_warn.r=
b:16)
...
--8<--8<--

I have traced this to a 4 month old commit to ruby-gems, which among other
things replaces a few calls to `.bind(self).call(args...)` with
`.bind_call(self, args...)`:

https://github.com/rubygems/rubygems/commit/fc1f03b06a72b9e74a5e7410cf9a2d1=
1b28090e7

IIUC this crash might arise because the version of JRuby embedded inside the
FreeBSD puppetserver7 package perhaps does not support `.bind_call()` ?

I have been able to get my puppetserver running in the meantime by patching
ruby-gems itself to revert the use of `.bind_call` in lines 16 and 43 of
site_ruby/3.2/rubygems/core_ext/kernel_warn.rb

I'm happy to file additional reports elsewhere as needed, but in the first
instance I think this needs triage from someone with much more experience w=
ith
(J)Ruby than I have.

--=20
You are receiving this mail because:
You are on the CC list for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-284112-21402>