Open
Description
It seems that there is some limit we hit on Safari related to call stack size. Loading a greenfield Rails application (Rails.application.initialize!
, eager_load is true) results in a maximum call stack size exceeded error. The crash dump only shows ~100 stack frames.
dump.txt
-- Control frame information ----------------------------------------------- c:0104 p:---- s:0532 e:000531 CFUNC :eval c:0103 p:0054 s:0525 E:000ed8 METHOD /usr/local/lib/ruby/3.3.0/rubygems/specification.rb:1087 c:0102 p:0061 s:0517 e:000516 METHOD /usr/local/lib/ruby/3.3.0/rubygems/stub_specification.rb:195 c:0101 p:0033 s:0512 e:000511 METHOD /usr/local/lib/ruby/3.3.0/rubygems/stub_specification.rb:151 c:0100 p:0013 s:0508 e:000507 METHOD /usr/local/lib/ruby/3.3.0/rubygems/basic_specification.rb:76 c:0099 p:0006 s:0502 e:000501 BLOCK /usr/local/lib/ruby/3.3.0/rubygems/specification_record.rb:152 [FINISH] c:0098 p:---- s:0498 e:000497 IFUNC c:0097 p:---- s:0495 e:000494 CFUNC :each c:0096 p:---- s:0492 e:000491 CFUNC :find c:0095 p:0028 s:0488 e:000484 METHOD /usr/local/lib/ruby/3.3.0/rubygems/specification_record.rb:151 c:0094 p:0007 s:0479 e:000478 METHOD /usr/local/lib/ruby/3.3.0/rubygems/specification.rb:966 c:0093 p:0006 s:0474 e:000473 METHOD /usr/local/lib/ruby/3.3.0/rubygems.rb:194 c:0092 p:0007 s:0466 e:000465 BLOCK :139 [FINISH] c:0091 p:---- s:0463 e:000462 CFUNC :synchronize c:0090 p:0027 s:0459 e:000458 RESCUE :139 c:0089 p:0024 s:0455 e:000454 METHOD :135 c:0088 p:0055 s:0449 e:000448 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34 c:0087 p:0095 s:0441 e:000440 CLASS /bundle/gems/erubi-1.13.0/lib/erubi.rb:21 c:0086 p:0007 s:0438 e:000437 TOP /bundle/gems/erubi-1.13.0/lib/erubi.rb:3 [FINISH] c:0085 p:---- s:0435 e:000434 CFUNC :require c:0084 p:0023 s:0430 e:000429 METHOD :136 c:0083 p:0055 s:0424 e:000423 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34 c:0082 p:0005 s:0416 e:000415 TOP /bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb/erubi.rb:3 [FINISH] c:0081 p:---- s:0413 e:000412 CFUNC :require c:0080 p:0023 s:0408 e:000407 METHOD :136 c:0079 p:0055 s:0402 e:000401 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34 [FINISH] c:0078 p:0021 s:0394 e:000391 CLASS /bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:17 c:0077 p:0007 s:0389 e:000388 CLASS /bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:9 c:0076 p:0007 s:0386 e:000385 CLASS /bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:8 c:0075 p:0007 s:0383 e:000382 CLASS /bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:7 c:0074 p:0019 s:0380 e:000379 TOP /bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:6 [FINISH] c:0073 p:---- s:0377 e:000376 CFUNC :require c:0072 p:0023 s:0372 e:000371 METHOD :136 c:0071 p:0055 s:0366 e:000365 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34 [FINISH] c:0070 p:0017 s:0358 e:000355 METHOD /bundle/gems/actionview-7.2.1/lib/action_view/template/handlers.rb:14 [FINISH] c:0069 p:---- s:0351 e:000350 CFUNC :extend c:0068 p:0022 s:0346 e:000345 CLASS /bundle/gems/actionview-7.2.1/lib/action_view/template.rb:179 c:0067 p:0007 s:0343 e:000342 CLASS /bundle/gems/actionview-7.2.1/lib/action_view/template.rb:8 c:0066 p:0019 s:0340 e:000339 TOP /bundle/gems/actionview-7.2.1/lib/action_view/template.rb:6 [FINISH] c:0065 p:---- s:0337 e:000336 CFUNC :require c:0064 p:0023 s:0332 e:000331 METHOD :136 c:0063 p:0055 s:0326 e:000325 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34 c:0062 p:0023 s:0318 e:000317 TOP /bundle/gems/actionview-7.2.1/lib/action_view/template/resolver.rb:6 [FINISH] c:0061 p:---- s:0315 e:000314 CFUNC :require c:0060 p:0023 s:0310 e:000309 METHOD :136 c:0059 p:0055 s:0304 e:000303 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34 [FINISH] c:0058 p:0052 s:0296 e:000292 BLOCK /bundle/gems/actionview-7.2.1/lib/action_view/path_registry.rb:34 [FINISH] c:0057 p:---- s:0289 e:000288 CFUNC :map c:0056 p:0010 s:0285 e:000284 BLOCK /bundle/gems/actionview-7.2.1/lib/action_view/path_registry.rb:27 [FINISH] c:0055 p:---- s:0281 e:000280 CFUNC :synchronize c:0054 p:0013 s:0277 e:000276 METHOD /bundle/gems/actionview-7.2.1/lib/action_view/path_registry.rb:25 c:0053 p:0017 s:0272 e:000271 METHOD /bundle/gems/actionview-7.2.1/lib/action_view/view_paths.rb:34 c:0052 p:0007 s:0267 e:000264 METHOD /bundle/gems/actionview-7.2.1/lib/action_view/view_paths.rb:55 c:0051 p:0013 s:0260 e:000259 BLOCK /bundle/gems/railties-7.2.1/lib/rails/engine.rb:613 [FINISH] c:0050 p:---- s:0257 e:000256 CFUNC :class_eval c:0049 p:0031 s:0253 e:000252 BLOCK /bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:97 c:0048 p:0033 s:0250 e:000249 METHOD /bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:87 c:0047 p:0014 s:0243 e:000242 METHOD /bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:92 c:0046 p:0011 s:0235 e:000234 BLOCK /bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:78 [FINISH] c:0045 p:---- s:0230 e:000229 CFUNC :each c:0044 p:0026 s:0226 e:000225 METHOD /bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:77 c:0043 p:0340 s:0220 e:000219 CLASS /bundle/gems/actionpack-7.2.1/lib/action_controller/base.rb:330 c:0042 p:0008 s:0217 e:000216 CLASS /bundle/gems/actionpack-7.2.1/lib/action_controller/base.rb:207 c:0041 p:0025 s:0214 e:000213 TOP /bundle/gems/actionpack-7.2.1/lib/action_controller/base.rb:9 [FINISH] c:0040 p:---- s:0211 e:000210 CFUNC :require c:0039 p:0023 s:0206 e:000205 METHOD :136 c:0038 p:0055 s:0200 e:000199 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34 [FINISH] c:0037 p:0004 s:0192 e:000190 TOP /rails/app/controllers/application_controller.rb:1 [FINISH] c:0036 p:---- s:0188 e:000187 CFUNC :require c:0035 p:0023 s:0183 e:000182 METHOD :136 c:0034 p:0024 s:0177 e:000176 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:26 [FINISH] c:0033 p:---- s:0169 e:000168 CFUNC :const_get c:0032 p:0010 s:0163 e:000162 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/cref.rb:91 c:0031 p:0040 s:0159 e:000158 BLOCK /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:173 c:0030 p:0108 s:0151 e:000150 BLOCK /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/helpers.rb:47 [FINISH] c:0029 p:---- s:0145 e:000144 CFUNC :each c:0028 p:0018 s:0141 e:000140 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/helpers.rb:25 c:0027 p:0062 s:0135 e:000134 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:168 c:0026 p:0010 s:0124 e:000123 BLOCK /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:17 [FINISH] c:0025 p:---- s:0119 e:000118 CFUNC :each c:0024 p:0038 s:0115 e:000114 BLOCK /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:16 [FINISH] c:0023 p:---- s:0112 e:000111 CFUNC :synchronize c:0022 p:0006 s:0108 e:000107 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:10 c:0021 p:0005 s:0102 e:000101 BLOCK /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader.rb:413 [FINISH] c:0020 p:---- s:0098 e:000097 CFUNC :each c:0019 p:0007 s:0094 e:000093 METHOD /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader.rb:411 c:0018 p:0020 s:0090 e:000089 BLOCK /bundle/gems/railties-7.2.1/lib/rails/application/finisher.rb:80 [FINISH] c:0017 p:---- s:0086 e:000085 CFUNC :instance_exec c:0016 p:0013 s:0081 e:000080 METHOD /bundle/gems/railties-7.2.1/lib/rails/initializable.rb:32 c:0015 p:0017 s:0076 e:000075 BLOCK /bundle/gems/railties-7.2.1/lib/rails/initializable.rb:61 c:0014 p:0016 s:0072 e:000071 BLOCK /usr/local/lib/ruby/3.3.0/tsort.rb:231 c:0013 p:0004 s:0068 e:000067 BLOCK /usr/local/lib/ruby/3.3.0/tsort.rb:353 c:0012 p:0098 s:0064 E:000f18 METHOD /usr/local/lib/ruby/3.3.0/tsort.rb:434 c:0011 p:0023 s:0052 E:00162c BLOCK /usr/local/lib/ruby/3.3.0/tsort.rb:352 [FINISH] c:0010 p:---- s:0048 e:000047 CFUNC :each c:0009 p:---- s:0045 e:000044 CFUNC :call c:0008 p:0029 s:0041 E:0023f8 METHOD /usr/local/lib/ruby/3.3.0/tsort.rb:350 c:0007 p:0024 s:0033 E:001b00 METHOD /usr/local/lib/ruby/3.3.0/tsort.rb:229 c:0006 p:0026 s:0027 e:000026 METHOD /usr/local/lib/ruby/3.3.0/tsort.rb:208 c:0005 p:0019 s:0020 E:000890 METHOD /bundle/gems/railties-7.2.1/lib/rails/initializable.rb:60 c:0004 p:0021 s:0014 e:000013 METHOD /bundle/gems/railties-7.2.1/lib/rails/application.rb:435 c:0003 p:0054 s:0009 e:000008 EVAL eval:19 [FINISH] c:0002 p:---- s:0006 e:000005 CFUNC :eval c:0001 p:0000 s:0003 E:002238 DUMMY [FINISH]-- Ruby level backtrace information ----------------------------------------
'
-e:0:ineval' eval:19:in
/bundle/gems/railties-7.2.1/lib/rails/application.rb:435:ininitialize!' /bundle/gems/railties-7.2.1/lib/rails/initializable.rb:60:in
run_initializers'
/usr/local/lib/ruby/3.3.0/tsort.rb:208:intsort_each' /usr/local/lib/ruby/3.3.0/tsort.rb:229:in
tsort_each'
/usr/local/lib/ruby/3.3.0/tsort.rb:350:ineach_strongly_connected_component' /usr/local/lib/ruby/3.3.0/tsort.rb:350:in
call'
/usr/local/lib/ruby/3.3.0/tsort.rb:350:ineach' /usr/local/lib/ruby/3.3.0/tsort.rb:352:in
block in each_strongly_connected_component'
/usr/local/lib/ruby/3.3.0/tsort.rb:434:ineach_strongly_connected_component_from' /usr/local/lib/ruby/3.3.0/tsort.rb:353:in
block (2 levels) in each_strongly_connected_component'
/usr/local/lib/ruby/3.3.0/tsort.rb:231:inblock in tsort_each' /bundle/gems/railties-7.2.1/lib/rails/initializable.rb:61:in
block in run_initializers'
/bundle/gems/railties-7.2.1/lib/rails/initializable.rb:32:inrun' /bundle/gems/railties-7.2.1/lib/rails/initializable.rb:32:in
instance_exec'
/bundle/gems/railties-7.2.1/lib/rails/application/finisher.rb:80:inblock in <module:Finisher>' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader.rb:411:in
eager_load_all'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader.rb:411:ineach' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader.rb:413:in
block in eager_load_all'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:10:ineager_load' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:10:in
synchronize'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:16:inblock in eager_load' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:16:in
each'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:17:inblock (2 levels) in eager_load' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:168:in
actual_eager_load_dir'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/helpers.rb:25:inls' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/helpers.rb:25:in
each'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/helpers.rb:47:inblock in ls' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/loader/eager_load.rb:173:in
block in actual_eager_load_dir'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/cref.rb:91:inget' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/cref.rb:91:in
const_get'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:26:inrequire' <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in
require'
internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb:136:inrequire' /rails/app/controllers/application_controller.rb:1:in
<top (required)>'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34:inrequire' <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in
require'
internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb:136:inrequire' /bundle/gems/actionpack-7.2.1/lib/action_controller/base.rb:9:in
<top (required)>'
/bundle/gems/actionpack-7.2.1/lib/action_controller/base.rb:207:in<module:ActionController>' /bundle/gems/actionpack-7.2.1/lib/action_controller/base.rb:330:in
class:Base'
/bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:77:inrun_load_hooks' /bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:77:in
each'
/bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:78:inblock in run_load_hooks' /bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:92:in
execute_hook'
/bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:87:inwith_execution_control' /bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:97:in
block in execute_hook'
/bundle/gems/activesupport-7.2.1/lib/active_support/lazy_load_hooks.rb:97:inclass_eval' /bundle/gems/railties-7.2.1/lib/rails/engine.rb:613:in
block (2 levels) in class:Engine'
/bundle/gems/actionview-7.2.1/lib/action_view/view_paths.rb:55:inprepend_view_path' /bundle/gems/actionview-7.2.1/lib/action_view/view_paths.rb:34:in
_build_view_paths'
/bundle/gems/actionview-7.2.1/lib/action_view/path_registry.rb:25:incast_file_system_resolvers' /bundle/gems/actionview-7.2.1/lib/action_view/path_registry.rb:25:in
synchronize'
/bundle/gems/actionview-7.2.1/lib/action_view/path_registry.rb:27:inblock in cast_file_system_resolvers' /bundle/gems/actionview-7.2.1/lib/action_view/path_registry.rb:27:in
map'
/bundle/gems/actionview-7.2.1/lib/action_view/path_registry.rb:34:inblock (2 levels) in cast_file_system_resolvers' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34:in
require'
internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb:136:inrequire' <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in
require'
/bundle/gems/actionview-7.2.1/lib/action_view/template/resolver.rb:6:in<top (required)>' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34:in
require'
internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb:136:inrequire' <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in
require'
/bundle/gems/actionview-7.2.1/lib/action_view/template.rb:6:in<top (required)>' /bundle/gems/actionview-7.2.1/lib/action_view/template.rb:8:in
module:ActionView'
/bundle/gems/actionview-7.2.1/lib/action_view/template.rb:179:in<class:Template>' /bundle/gems/actionview-7.2.1/lib/action_view/template.rb:179:in
extend'
/bundle/gems/actionview-7.2.1/lib/action_view/template/handlers.rb:14:inextended' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34:in
require'
internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb:136:inrequire' <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in
require'
/bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:6:in<top (required)>' /bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:7:in
module:ActionView'
/bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:8:in<class:Template>' /bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:9:in
module:Handlers'
/bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb.rb:17:in<class:ERB>' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34:in
require'
internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb:136:inrequire' <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in
require'
/bundle/gems/actionview-7.2.1/lib/action_view/template/handlers/erb/erubi.rb:3:in<top (required)>' /bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34:in
require'
internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb:136:inrequire' <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in
require'
/bundle/gems/erubi-1.13.0/lib/erubi.rb:3:in<top (required)>' /bundle/gems/erubi-1.13.0/lib/erubi.rb:21:in
module:Erubi'
/bundle/gems/zeitwerk-2.6.18/lib/zeitwerk/kernel.rb:34:inrequire' <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:135:in
require'
internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb:139:inrescue in require' <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:139:in
synchronize'
internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb:139:inblock in require' /usr/local/lib/ruby/3.3.0/rubygems.rb:194:in
try_activate'
/usr/local/lib/ruby/3.3.0/rubygems/specification.rb:966:infind_by_path' /usr/local/lib/ruby/3.3.0/rubygems/specification_record.rb:151:in
find_by_path'
/usr/local/lib/ruby/3.3.0/rubygems/specification_record.rb:151:infind' /usr/local/lib/ruby/3.3.0/rubygems/specification_record.rb:151:in
each'
/usr/local/lib/ruby/3.3.0/rubygems/specification_record.rb:152:inblock in find_by_path' /usr/local/lib/ruby/3.3.0/rubygems/basic_specification.rb:76:in
contains_requirable_file?'
/usr/local/lib/ruby/3.3.0/rubygems/stub_specification.rb:151:inmissing_extensions?' /usr/local/lib/ruby/3.3.0/rubygems/stub_specification.rb:195:in
spec'
/usr/local/lib/ruby/3.3.0/rubygems/specification.rb:1087:inload' /usr/local/lib/ruby/3.3.0/rubygems/specification.rb:1087:in
eval'
What's interesting is that simply calling a recursive method hits the stack level too deep error at much higher values, see, for example: https://runruby.dev/?gist=84cc1d932b19755f45d9ec52b20567f2
Details
Ruby Version: 3.3.0.
rbwasm version: 2.6.2
js version: 2.6.2
The RubyVM information is as follows:
{:thread_vm_stack_size=>1048576, :thread_machine_stack_size=>1048576, :fiber_vm_stack_size=>65536, :fiber_machine_stack_size=>262144}
Other
Some possibly related issues found in the wild:
Metadata
Metadata
Assignees
Labels
No labels