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?

For example it is often overwritten in the context of a web server.
 
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