ruby 4.0 is broken - and how to get the coredumps?

After upgrading ruby from 4.0.0.p2 to 4.0.1, it does constantly crash:

Code:
Apr  8 21:43:52 <kern.info> edge kernel: [19591] pid 73557 (ruby40), jid 10, uid 5111: exited on signal 11 (no core dump - too large)
Apr  8 23:13:54 <kern.info> edge kernel: [24993] pid 46972 (ruby40), jid 10, uid 5111: exited on signal 11 (no core dump - too large)
Apr  8 23:50:43 <kern.info> edge kernel: [27202] pid 69098 (ruby40), jid 10, uid 5100: exited on signal 11 (no core dump - too large)
Apr  8 23:56:59 <kern.info> edge kernel: [27578] pid 21440 (ruby40), jid 10, uid 5111: exited on signal 11 (no core dump - too large)
Apr  9 00:30:24 <kern.info> edge kernel: [29583] pid 49328 (ruby40), jid 10, uid 5111: exited on signal 11 (no core dump - too large)

How to I get these coredumps?

I tried to use ruby 4.0.0 - this does crash all the same, but here coredumps are written:

Code:
Apr  9 00:38:56 <kern.info> edge kernel: [30095] pid 78786 (ruby40), jid 10, uid 5100: exited on signal 11 (core dumped)
Apr  9 00:39:49 <kern.info> edge kernel: [30148] pid 78782 (ruby40), jid 10, uid 5111: exited on signal 11 (core dumped)

The kernel source says, the coredump and this specific message is retrieved from limits. That would then be
Code:
$ ulimit -c
unlimited

So apparently in ruby 4.0.1 the size of "unlimited" has been reduced...
Eh? :-/
 
ruby doesn't accept any bug reports. :(

Trying to follow the procedure as explained here fails already at the first step: "sign up for an account on the bug tracker."
One will get a message "Account was successfully created. An email containing the instructions to activate your account was sent" - but no email is ever coming.

Alternatively trying to join the mailing list as described here does get one step further, because here is a confirmation email received, but then replying to that mail for final confirmation gets ignored.
 
Are you sure the ulimit isn't overwritten somewhere?

I wouldn't be fully sure, but then why would that behaviour change between ruby 4.0.0 and 4.0.1, with the whole difference being this:

Code:
--- a/lang/ruby40/distinfo
+++ b/lang/ruby40/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1768626867
-SHA256 (ruby/ruby-4.0.1.tar.xz) = 0531fe57dfdb56bf591620d2450642ea0e0964f3512a6ebee7dc9305de69395f
-SIZE (ruby/ruby-4.0.1.tar.xz) = 17892492
+TIMESTAMP = 1767157763
+SHA256 (ruby/ruby-4.0.0.tar.xz) = a72bacee9de07283ebc19baa4ac243b193129f21aa4e168c7186fb1fe7d07fe1
+SIZE (ruby/ruby-4.0.0.tar.xz) = 18008368

Also, this is a dedicated application server running the ruby applications from this rc.d script[1]; and I don't know of any 'ulimit -c' in there.

For example it is often overwritten in the context of a web server.

The web server is an entirely different node here. ;)

So no, I don't have an explanation for this. I don't even know how an application might tell the system whether it wants its core dumped or not in case of SIGSEGV.

[1] This currently takes a while, due to the highly regarded A.I. crap being very engaged in killing my website :(
 
Back
Top