Project

General

Profile

Actions

Bug #21990

open

[ruby-talk:444791] Regression: Ruby 4.0 constantly crashing

Bug #21990: [ruby-talk:444791] Regression: Ruby 4.0 constantly crashing

Added by zenspider (Ryan Davis) about 15 hours ago. Updated about 4 hours ago.

Status:
Open
Assignee:
-
Target version:
-
[ruby-core:125234]

Description

(Filed for a user on ruby-talk who can't get registered here for some reason)

After upgrade to ruby 4.0, all our Rails applications are continuously
crashing on different nodes at different locations.

All the applications were running flawlessly for about a year
with 4.0.0.p1 and 4.0.0.p2.

Reverting to 4.0.0.p2 solves the issue.

The behaviour is the same with 4.0.0 and 4.0.1, where 4.0.1 has the
additional issue that the value of ulimit "unlimited" has been
reduced below "EFBIG", so no coredumps can be written ("too big").

Bug reporting is not possible: After registering an account on
https://bugs.ruby-lang.org/, one is requested to follow the
instructions in an e-mail, but such e-mail is never sent; not even
after repeatedly requesting it.

Versions tried:
4.0.0 (2025-12-25 revision 553f1675f3) +PRISM [amd64-freebsd14]
4.0.1 (2026-01-13 revision e04267a14b) +PRISM [amd64-freebsd14]

FreeBSD-PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294359

Stuff reported in the logfile (example):

Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /ext/gems/4.0/gems/activesupport-8.0.1/lib/active_support/core_ext/date/calculations.rb:156: [BUG] Segmentation fault at 0x0000000000000000
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: ruby 4.0.1 (2026-01-13 revision e04267a14b) +PRISM [amd64-freebsd14]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]:
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: -- Control frame information -----------------------------------------------
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: c:0017 p:---- s:0112 e:000111 l:y b:---- CFUNC  :<=>
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: c:0016 p:0021 s:0107 e:000106 l:y b:0001 METHOD /ext/gems/4.0/gems/activesupport-8.0.1/lib/active_support/core_ext/date/calculations.rb:156 [FINISH]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: c:0015 p:---- s:0102 e:000101 l:y b:---- CFUNC  :<
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: c:0014 p:0150 s:0097 e:000096 l:y b:0001 METHOD /ext/rapp/fin_prod/releases/20260408164852/app/jobs/quote_fetch_job.rb:28
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: c:0013 p:0053 s:0084 e:000083 l:y b:0001 METHOD /ext/gems/4.0/gems/que-2.4.1/lib/que/job_methods.rb:51
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: c:0012 p:0003 s:0073 e:000072 l:y b:0001 METHOD <internal:kernel>:91
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: c:0011 p:0007 s:0069 e:000068 l:n b:---- BLOCK  /ext/gems/4.0/gems/que-2.4.1/lib/que/worker.rb:103
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: c:0010 p:0002 s:0066 e:000065 l:n b:---- BLOCK  (eval at /ext/gems/4.0/gems/que-2.4.1/lib/que/utils/middleware.rb:14):11
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: c:0009 p:0027 s:0063 e:000062 l:y b:0001 METHOD /ext/gems/4.0/gems/que-2.4.1/lib/que/utils/middleware.rb:41
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: c:0008 p:0011 s:0053 e:000052 l:n b:---- BLOCK  /ext/gems/4.0/gems/que-2.4.1/lib/que/utils/middleware.rb:37
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: c:0007 p:0002 s:0050 e:000049 l:y b:0001 METHOD /ext/gems/4.0/gems/que-2.4.1/lib/que/active_record/connection.rb:33
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: c:0006 p:0021 s:0045 e:000044 l:y b:0001 METHOD /ext/gems/4.0/gems/que-2.4.1/lib/que/utils/middleware.rb:36
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: c:0005 p:0024 s:0035 e:000034 l:y b:0001 METHOD (eval at /ext/gems/4.0/gems/que-2.4.1/lib/que/utils/middleware.rb:14):11
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: c:0004 p:0050 s:0029 e:000028 l:y b:0001 METHOD /ext/gems/4.0/gems/que-2.4.1/lib/que/worker.rb:103
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: c:0003 p:0068 s:0012 e:000011 l:y b:0001 METHOD /ext/gems/4.0/gems/que-2.4.1/lib/que/worker.rb:76
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: c:0002 p:0026 s:0006 e:000005 l:n b:---- BLOCK  /ext/gems/4.0/gems/que-2.4.1/lib/que/worker.rb:46 [FINISH]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: c:0001 p:---- s:0003 e:000002 l:y b:---- DUMMY  [FINISH]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]:
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: -- Ruby level backtrace information ----------------------------------------
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /ext/gems/4.0/gems/que-2.4.1/lib/que/worker.rb:46:in 'block in initialize'
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /ext/gems/4.0/gems/que-2.4.1/lib/que/worker.rb:76:in 'work_loop'
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /ext/gems/4.0/gems/que-2.4.1/lib/que/worker.rb:103:in 'work_job'
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: (eval at /ext/gems/4.0/gems/que-2.4.1/lib/que/utils/middleware.rb:14):11:in 'run_job_middleware'
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /ext/gems/4.0/gems/que-2.4.1/lib/que/utils/middleware.rb:36:in 'invoke_middleware'
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /ext/gems/4.0/gems/que-2.4.1/lib/que/active_record/connection.rb:33:in 'call'
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /ext/gems/4.0/gems/que-2.4.1/lib/que/utils/middleware.rb:37:in 'block in invoke_middleware'
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /ext/gems/4.0/gems/que-2.4.1/lib/que/utils/middleware.rb:41:in 'invoke_middleware'
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: (eval at /ext/gems/4.0/gems/que-2.4.1/lib/que/utils/middleware.rb:14):11:in 'block in run_job_middleware'
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /ext/gems/4.0/gems/que-2.4.1/lib/que/worker.rb:103:in 'block in work_job'
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: <internal:kernel>:91:in 'tap'
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /ext/gems/4.0/gems/que-2.4.1/lib/que/job_methods.rb:51:in '_run'
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /ext/rapp/fin_prod/releases/20260408164852/app/jobs/quote_fetch_job.rb:28:in 'run'
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /ext/rapp/fin_prod/releases/20260408164852/app/jobs/quote_fetch_job.rb:28:in '<'
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /ext/gems/4.0/gems/activesupport-8.0.1/lib/active_support/core_ext/date/calculations.rb:156:in 'compare_with_coercion'
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /ext/gems/4.0/gems/activesupport-8.0.1/lib/active_support/core_ext/date/calculations.rb:156:in '<=>'
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]:
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: -- Threading information ---------------------------------------------------
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: Total ractor count: 1
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: Ruby thread count for this ractor: 6
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]:
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: -- C level backtrace information -------------------------------------------
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /usr/local/lib/libruby40.so.40(rb_profile_frame_full_label+0x233e) [0x822ec5e2e]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /usr/local/lib/libruby40.so.40(rb_bug_reporter_add) [0x822cc5b00]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /usr/local/lib/libruby40.so.40(ruby_sig_finalize) [0x822e09934]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /lib/libthr.so.3(pthread_sigmask+0x556) [0x8294dba16]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /lib/libthr.so.3(pthread_signals_unblock_np) [0x8294daf0a]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: [0x821b682d3]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /usr/local/lib/libruby40.so.40(rb_gc_adjust_memory_usage) [0x822cf7e5e]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /usr/local/lib/libruby40.so.40(rb_gc_writebarrier+0xdd) [0x822ce66fd]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /ext/gems/4.0/gems/date-3.5.1/lib/date_core.so(Init_date_core+0x145) [0x830904b65]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /ext/gems/4.0/gems/date-3.5.1/lib/date_core.so(Init_date_core+0xa5) [0x8308f5655]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /usr/local/lib/libruby40.so.40(ruby_free_at_exit_p) [0x822eb5106]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /usr/local/lib/libruby40.so.40(rb_error_arity) [0x822e97827]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /usr/local/lib/libruby40.so.40(rb_error_arity) [0x822e90b08]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /usr/local/lib/libruby40.so.40(rb_check_funcall) [0x822ea0571]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /usr/local/lib/libruby40.so.40(rb_scan_args_kw) [0x822c33448]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /usr/local/lib/libruby40.so.40(ruby_free_at_exit_p) [0x822eb5106]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /usr/local/lib/libruby40.so.40(rb_error_arity) [0x822e97827]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /usr/local/lib/libruby40.so.40(rb_error_arity) [0x822e90b9b]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /usr/local/lib/libruby40.so.40(rb_proc_ractor_make_shareable) [0x822ea6e94]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /usr/local/lib/libruby40.so.40(rb_proc_ractor_make_shareable) [0x822ea62fa]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /usr/local/lib/libruby40.so.40(rb_internal_thread_specific_set) [0x822e607ec]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /usr/local/lib/libruby40.so.40(rb_internal_thread_specific_set) [0x822e5ff39]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /usr/local/lib/libruby40.so.40(rb_internal_thread_specific_set) [0x822e5fa01]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: /lib/libthr.so.3(pthread_create) [0x8294d1d68]
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]:
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: -- Other runtime information -----------------------------------------------
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]:
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: * Loaded script: /ext/gems/4.0/bin/que
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]:
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: * Ruby Box: disabled
Apr  9 00:30:24 <daemon.notice> rail rails-fin_prod[73556]: * Loaded features: [etc.etc.]

Updated by byroot (Jean Boussier) about 4 hours ago Actions #1 [ruby-core:125236]

The C backtrace in the crash report seem bogus. Almost none of it make sense. Most of the functions on the stack can't possibly call each others.

Using gdb or lldb to produce a backtrace from a core dump might help.

Actions

Also available in: PDF Atom