Issue #18250 has been updated by byroot (Jean Boussier).


So following the last fixes Rails CI, as well as Shopify CI with regular ruby-head now passes.

However I noticed our ruby-head debug builds are running into an assertion error:

```
id_table.c:153: hash_table_raw_insert: Assertion 'key != 0' failed.
```

I replaced the `assert` with `rb_bug` to get a proper crash report:

```
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/compile_cache/iseq.rb:19: [BUG] hash_table_raw_insert key = 0
ruby 3.1.0dev (2021-11-12T15:59:33Z shopify 5ef4ca3264) [x86_64-linux]
 
-- Control frame information -----------------------------------------------
c:0067 p:---- s:0389 e:000388 CFUNC  :load_from_binary
c:0066 p:0017 s:0384 e:000383 METHOD /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/compile_cache/iseq.rb:19 [FINISH]
c:0065 p:---- s:0377 e:000376 CFUNC  :fetch
c:0064 p:0061 s:0369 e:000368 METHOD /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/compile_cache/iseq.rb:30
c:0063 p:0053 s:0362 e:000361 METHOD /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/compile_cache/iseq.rb:55 [FINISH]
c:0062 p:---- s:0356 e:000355 CFUNC  :require
c:0061 p:0011 s:0351 e:000350 BLOCK  /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23
c:0060 p:0069 s:0348 e:000347 METHOD /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92
c:0059 p:0025 s:0336 e:000335 METHOD /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22
c:0058 p:0057 s:0330 e:000329 METHOD /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31
c:0057 p:0054 s:0322 e:000321 METHOD /tmp/bundle/ruby/3.1.0/gems/zeitwerk-2.5.1/lib/zeitwerk/kernel.rb:35
c:0056 p:0017 s:0316 e:000315 TOP    /app/lib/podding/routing.rb:6 [FINISH]
c:0055 p:---- s:0313 e:000312 CFUNC  :require
c:0054 p:0011 s:0308 e:000307 BLOCK  /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23
c:0053 p:0069 s:0305 e:000304 METHOD /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92
c:0052 p:0025 s:0293 e:000292 METHOD /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22
c:0051 p:0057 s:0287 e:000286 METHOD /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31
c:0050 p:0054 s:0279 e:000278 METHOD /tmp/bundle/ruby/3.1.0/gems/zeitwerk-2.5.1/lib/zeitwerk/kernel.rb:35
c:0049 p:0085 s:0273 e:000272 TOP    /app/config/initializers/010_podding.rb:18 [FINISH]
c:0048 p:---- s:0270 e:000269 CFUNC  :load
c:0047 p:0035 s:0264 e:000263 METHOD /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:60
c:0046 p:0005 s:0254 e:000253 BLOCK  /tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/engine.rb:667
c:0045 p:0033 s:0251 e:000250 METHOD /tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/activesupport/lib/active_support/notifications.rb:209
c:0044 p:0020 s:0245 e:000244 METHOD /tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/engine.rb:666
c:0043 p:0005 s:0240 e:000239 BLOCK  /tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/engine.rb:620 [FINISH]
c:0042 p:---- s:0236 e:000235 CFUNC  :each
c:0041 p:0016 s:0232 e:000231 BLOCK  /tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/engine.rb:619 [FINISH]
c:0040 p:---- s:0229 e:000228 CFUNC  :instance_exec
c:0039 p:0013 s:0224 e:000223 METHOD /tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/initializable.rb:32
c:0038 p:0017 s:0219 e:000218 BLOCK  /tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/initializable.rb:61
c:0037 p:0016 s:0215 e:000214 BLOCK  /usr/local/ruby/lib/ruby/3.1.0/tsort.rb:228
c:0036 p:0004 s:0211 e:000210 BLOCK  /usr/local/ruby/lib/ruby/3.1.0/tsort.rb:350
c:0035 p:0004 s:0207 e:000206 BLOCK  /usr/local/ruby/lib/ruby/3.1.0/tsort.rb:422
c:0034 p:0098 s:0203 E:001640 METHOD /usr/local/ruby/lib/ruby/3.1.0/tsort.rb:431
c:0033 p:0057 s:0191 E:0007d8 BLOCK  /usr/local/ruby/lib/ruby/3.1.0/tsort.rb:421 [FINISH]
c:0032 p:---- s:0185 e:000184 CFUNC  :each
c:0031 p:0010 s:0181 e:000180 METHOD /tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/initializable.rb:50 [FINISH]
c:0030 p:---- s:0175 e:000174 CFUNC  :call
c:0029 p:0067 s:0170 E:000f20 METHOD /usr/local/ruby/lib/ruby/3.1.0/tsort.rb:415
c:0028 p:0031 s:0158 E:0010e8 BLOCK  /usr/local/ruby/lib/ruby/3.1.0/tsort.rb:349 [FINISH]
c:0027 p:---- s:0154 e:000153 CFUNC  :each
c:0026 p:---- s:0151 e:000150 CFUNC  :call
c:0025 p:0029 s:0147 E:001e40 METHOD /usr/local/ruby/lib/ruby/3.1.0/tsort.rb:347
c:0024 p:0032 s:0139 E:0019b0 METHOD /usr/local/ruby/lib/ruby/3.1.0/tsort.rb:226
c:0023 p:0033 s:0133 e:000132 METHOD /usr/local/ruby/lib/ruby/3.1.0/tsort.rb:205
c:0022 p:0019 s:0126 E:001950 METHOD /tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/initializable.rb:60
c:0021 p:0021 s:0120 e:000119 METHOD /tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/application.rb:369
c:0020 p:0019 s:0115 e:000114 TOP    /app/config/environment.rb:8 [FINISH]
c:0019 p:---- s:0112 e:000111 CFUNC  :require
c:0018 p:0011 s:0107 e:000106 BLOCK  /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23
c:0017 p:0069 s:0104 e:000103 METHOD /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92
c:0016 p:0025 s:0092 e:000091 METHOD /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22
c:0015 p:0057 s:0086 e:000085 METHOD /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31
c:0014 p:0047 s:0078 e:000077 METHOD /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54
c:0013 p:0005 s:0071 e:000070 TOP    /app/test/support/application_test_case.rb:4 [FINISH]
c:0012 p:---- s:0068 e:000067 CFUNC  :require
c:0011 p:0011 s:0063 e:000062 BLOCK  /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23
c:0010 p:0069 s:0060 e:000059 METHOD /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92
c:0009 p:0025 s:0048 e:000047 METHOD /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22
c:0008 p:0057 s:0042 e:000041 METHOD /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31
c:0007 p:0047 s:0034 e:000033 METHOD /tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54
c:0006 p:0006 s:0027 e:000026 BLOCK  /app/test/test_helper.rb:8
c:0005 p:0062 s:0024 e:000023 METHOD /app/test/support/core_ci.rb:29
c:0004 p:0028 s:0017 e:000016 TOP    /app/test/test_helper.rb:7 [FINISH]
c:0003 p:---- s:0014 e:000013 CFUNC  :require_relative
c:0002 p:0035 s:0009 E:001cd8 EVAL   ./bin/ci/write_test_names:13 [FINISH]
c:0001 p:0000 s:0003 E:000930 (none) [FINISH]
 
-- Ruby level backtrace information ----------------------------------------
./bin/ci/write_test_names:13:in `<main>'
./bin/ci/write_test_names:13:in `require_relative'
/app/test/test_helper.rb:7:in `<top (required)>'
/app/test/support/core_ci.rb:29:in `step'
/app/test/test_helper.rb:8:in `block in <top (required)>'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `require_relative'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/app/test/support/application_test_case.rb:4:in `<main>'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:54:in `require_relative'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/app/config/environment.rb:8:in `<main>'
/tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/application.rb:369:in `initialize!'
/tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/initializable.rb:60:in `run_initializers'
/usr/local/ruby/lib/ruby/3.1.0/tsort.rb:205:in `tsort_each'
/usr/local/ruby/lib/ruby/3.1.0/tsort.rb:226:in `tsort_each'
/usr/local/ruby/lib/ruby/3.1.0/tsort.rb:347:in `each_strongly_connected_component'
/usr/local/ruby/lib/ruby/3.1.0/tsort.rb:347:in `call'
/usr/local/ruby/lib/ruby/3.1.0/tsort.rb:347:in `each'
/usr/local/ruby/lib/ruby/3.1.0/tsort.rb:349:in `block in each_strongly_connected_component'
/usr/local/ruby/lib/ruby/3.1.0/tsort.rb:415:in `each_strongly_connected_component_from'
/usr/local/ruby/lib/ruby/3.1.0/tsort.rb:415:in `call'
/tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/initializable.rb:50:in `tsort_each_child'
/tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/initializable.rb:50:in `each'
/usr/local/ruby/lib/ruby/3.1.0/tsort.rb:421:in `block in each_strongly_connected_component_from'
/usr/local/ruby/lib/ruby/3.1.0/tsort.rb:431:in `each_strongly_connected_component_from'
/usr/local/ruby/lib/ruby/3.1.0/tsort.rb:422:in `block (2 levels) in each_strongly_connected_component_from'
/usr/local/ruby/lib/ruby/3.1.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
/usr/local/ruby/lib/ruby/3.1.0/tsort.rb:228:in `block in tsort_each'
/tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/initializable.rb:61:in `block in run_initializers'
/tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/initializable.rb:32:in `run'
/tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/initializable.rb:32:in `instance_exec'
/tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/engine.rb:619:in `block in <class:Engine>'
/tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/engine.rb:619:in `each'
/tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/engine.rb:620:in `block (2 levels) in <class:Engine>'
/tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/engine.rb:666:in `load_config_initializer'
/tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/activesupport/lib/active_support/notifications.rb:209:in `instrument'
/tmp/bundle/ruby/3.1.0/bundler/gems/rails-016f6c850c0c/railties/lib/rails/engine.rb:667:in `block in load_config_initializer'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:60:in `load'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:60:in `load'
/app/config/initializers/010_podding.rb:18:in `<main>'
/tmp/bundle/ruby/3.1.0/gems/zeitwerk-2.5.1/lib/zeitwerk/kernel.rb:35:in `require'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/app/lib/podding/routing.rb:6:in `<main>'
/tmp/bundle/ruby/3.1.0/gems/zeitwerk-2.5.1/lib/zeitwerk/kernel.rb:35:in `require'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/compile_cache/iseq.rb:55:in `load_iseq'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/compile_cache/iseq.rb:30:in `fetch'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/compile_cache/iseq.rb:30:in `fetch'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/compile_cache/iseq.rb:19:in `storage_to_output'
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/compile_cache/iseq.rb:19:in `load_from_binary'
 
-- C level backtrace information -------------------------------------------
/usr/local/ruby/bin/ruby(rb_print_backtrace+0x11) [0x55830558a008] vm_dump.c:759
/usr/local/ruby/bin/ruby(rb_vm_bugreport) vm_dump.c:1045
/usr/local/ruby/bin/ruby(bug_report_end+0x0) [0x5583053bdf5f] error.c:797
/usr/local/ruby/bin/ruby(rb_bug_without_die) error.c:797
/usr/local/ruby/bin/ruby(die+0x0) [0x5583053a1680] error.c:805
/usr/local/ruby/bin/ruby(rb_bug) error.c:807
/usr/local/ruby/bin/ruby(rb_thread_fetch+0x0) [0x5583053aad53] id_table.c:154
/usr/local/ruby/bin/ruby(ibf_load_outer_variables+0xb5) [0x5583055eae06] compile.c:11587
/usr/local/ruby/bin/ruby(ibf_load_iseq_each) compile.c:11852
/usr/local/ruby/bin/ruby(rb_ibf_load_iseq_complete) compile.c:12745
/usr/local/ruby/bin/ruby(ibf_load_iseq+0xb0) [0x5583055ee0a0] compile.c:12800
/usr/local/ruby/bin/ruby(ibf_load_code+0x209) [0x5583055ecbb9] compile.c:11168
/usr/local/ruby/bin/ruby(ibf_load_iseq_each) compile.c:11863
/usr/local/ruby/bin/ruby(rb_ibf_load_iseq_complete) compile.c:12745
/usr/local/ruby/bin/ruby(ibf_load_iseq+0xb0) [0x5583055ee0a0] compile.c:12800
/usr/local/ruby/bin/ruby(ibf_load_code+0x209) [0x5583055ecbb9] compile.c:11168
/usr/local/ruby/bin/ruby(ibf_load_iseq_each) compile.c:11863
/usr/local/ruby/bin/ruby(rb_ibf_load_iseq_complete) compile.c:12745
/usr/local/ruby/bin/ruby(ibf_load_iseq+0xb0) [0x5583055ee0a0] compile.c:12800
/usr/local/ruby/bin/ruby(ibf_load_code+0x209) [0x5583055ecbb9] compile.c:11168
/usr/local/ruby/bin/ruby(ibf_load_iseq_each) compile.c:11863
/usr/local/ruby/bin/ruby(rb_ibf_load_iseq_complete) compile.c:12745
/usr/local/ruby/bin/ruby(ibf_load_iseq+0xb0) [0x5583055ee0a0] compile.c:12800
/usr/local/ruby/bin/ruby(ibf_load_code+0x209) [0x5583055ecbb9] compile.c:11168
/usr/local/ruby/bin/ruby(ibf_load_iseq_each) compile.c:11863
/usr/local/ruby/bin/ruby(rb_ibf_load_iseq_complete) compile.c:12745
/usr/local/ruby/bin/ruby(ibf_load_iseq+0xb0) [0x5583055ee0a0] compile.c:12800
/usr/local/ruby/bin/ruby(ibf_load_code+0x209) [0x5583055ecbb9] compile.c:11168
/usr/local/ruby/bin/ruby(ibf_load_iseq_each) compile.c:11863
/usr/local/ruby/bin/ruby(rb_ibf_load_iseq_complete) compile.c:12745
/usr/local/ruby/bin/ruby(ibf_load_iseq+0xb0) [0x5583055ee0a0] compile.c:12800
/usr/local/ruby/bin/ruby(rb_iseq_ibf_load+0x57) [0x5583055ee197] compile.c:12906
/usr/local/ruby/bin/ruby(iseqw_s_load_from_binary+0x10) [0x558305418f40] iseq.c:3552
/usr/local/ruby/bin/ruby(vm_call_cfunc_with_frame+0x110) [0x558305569450] vm_insnhelper.c:3026
/usr/local/ruby/bin/ruby(vm_sendish+0x190) [0x558305563c40] vm_insnhelper.c:4652
/usr/local/ruby/bin/ruby(vm_exec_core+0x139) [0x558305573e79] insns.def:777
/usr/local/ruby/bin/ruby(rb_vm_exec+0xbc) [0x55830556b65c] vm.c:2205
/usr/local/ruby/bin/ruby(vm_call0_body+0x37e) [0x55830556d17e] vm_eval.c:192
/usr/local/ruby/bin/ruby(rb_funcallv_scope+0x1f6) [0x558305570bf6] vm_eval.c:86
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/bootsnap.so(prot_storage_to_output+0x6c) [0x7f771ff4bc3c] bootsnap.c:925
/usr/local/ruby/bin/ruby(rb_protect+0x111) [0x5583053c9cf1] eval.c:967
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/bootsnap.so(bs_storage_to_output+0x21) [0x7f771ff4c0a3] bootsnap.c:937
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/bootsnap.so(bs_fetch) bootsnap.c:772
/tmp/bundle/ruby/3.1.0/gems/bootsnap-1.9.1/lib/bootsnap/bootsnap.so(bs_rb_fetch) bootsnap.c:362
/usr/local/ruby/bin/ruby(vm_call_cfunc_with_frame+0x110) [0x558305569450] vm_insnhelper.c:3026
/usr/local/ruby/bin/ruby(vm_sendish+0x190) [0x558305563c40] vm_insnhelper.c:4652
/usr/local/ruby/bin/ruby(vm_exec_core+0x139) [0x558305573e79] insns.def:777
/usr/local/ruby/bin/ruby(rb_vm_exec+0xbc) [0x55830556b65c] vm.c:2205
/usr/local/ruby/bin/ruby(vm_call0_body+0x37e) [0x55830556d17e] vm_eval.c:192
/usr/local/ruby/bin/ruby(rb_vm_call0+0xf5) [0x55830556daa5] vm_eval.c:57
/usr/local/ruby/bin/ruby(rb_vm_call_kw+0x1e) [0x55830556f378] vm_eval.c:295
/usr/local/ruby/bin/ruby(rb_check_funcall_default_kw) vm_eval.c:678
/usr/local/ruby/bin/ruby(RB_IMMEDIATE_P+0x0) [0x55830541e77a] iseq.c:946
/usr/local/ruby/bin/ruby(RB_SPECIAL_CONST_P) ./include/ruby/internal/special_consts.h:262
/usr/local/ruby/bin/ruby(rb_iseq_load_iseq) iseq.c:948
/usr/local/ruby/bin/ruby(load_iseq_eval+0x9) [0x5583054263a5] load.c:644
/usr/local/ruby/bin/ruby(require_internal) load.c:1128
/usr/local/ruby/bin/ruby(rb_require_string+0x38) [0x5583054265c2] load.c:1219
/usr/local/ruby/bin/ruby(rb_f_require) load.c:900
/usr/local/ruby/bin/ruby(vm_call_cfunc_with_frame+0x110) [0x558305569450] vm_insnhelper.c:3026
/usr/local/ruby/bin/ruby(vm_call_method_each_type+0x7d) [0x55830557c2fd] vm_insnhelper.c:3542
/usr/local/ruby/bin/ruby(vm_call_alias+0x9e) [0x55830557d97e] vm_insnhelper.c:3178
/usr/local/ruby/bin/ruby(vm_sendish+0x190) [0x558305563c40] vm_insnhelper.c:4652
/usr/local/ruby/bin/ruby(vm_exec_core+0x139) [0x558305573e79] insns.def:777
/usr/local/ruby/bin/ruby(rb_vm_exec+0xbc) [0x55830556b65c] vm.c:2205
/usr/local/ruby/bin/ruby(load_iseq_eval+0xa) [0x5583054263e6] load.c:656
/usr/local/ruby/bin/ruby(require_internal) load.c:1128
/usr/local/ruby/bin/ruby(rb_require_string+0x38) [0x5583054265c2] load.c:1219
/usr/local/ruby/bin/ruby(rb_f_require) load.c:900
/usr/local/ruby/bin/ruby(vm_call_cfunc_with_frame+0x110) [0x558305569450] vm_insnhelper.c:3026
/usr/local/ruby/bin/ruby(vm_call_method_each_type+0x7d) [0x55830557c2fd] vm_insnhelper.c:3542
/usr/local/ruby/bin/ruby(vm_call_alias+0x9e) [0x55830557d97e] vm_insnhelper.c:3178
/usr/local/ruby/bin/ruby(vm_sendish+0x190) [0x558305563c40] vm_insnhelper.c:4652
/usr/local/ruby/bin/ruby(vm_exec_core+0x139) [0x558305573e79] insns.def:777
/usr/local/ruby/bin/ruby(rb_vm_exec+0xbc) [0x55830556b65c] vm.c:2205
/usr/local/ruby/bin/ruby(raise_load_if_failed+0x0) [0x558305424c3e] load.c:656
/usr/local/ruby/bin/ruby(rb_load_internal) load.c:716
/usr/local/ruby/bin/ruby(rb_f_load) load.c:788
/usr/local/ruby/bin/ruby(vm_call_cfunc_with_frame+0x110) [0x558305569450] vm_insnhelper.c:3026
/usr/local/ruby/bin/ruby(vm_call_method_each_type+0x7d) [0x55830557c2fd] vm_insnhelper.c:3542
/usr/local/ruby/bin/ruby(vm_call_alias+0x9e) [0x55830557d97e] vm_insnhelper.c:3178
/usr/local/ruby/bin/ruby(vm_sendish+0x190) [0x558305563c40] vm_insnhelper.c:4652
/usr/local/ruby/bin/ruby(vm_exec_core+0x139) [0x558305573e79] insns.def:777
/usr/local/ruby/bin/ruby(rb_vm_exec+0xbc) [0x55830556b65c] vm.c:2205
/usr/local/ruby/bin/ruby(rb_yield+0x3f9) [0x55830557fbd9] vm.c:1298
/usr/local/ruby/bin/ruby(RB_BUILTIN_TYPE+0x0) [0x55830559e0c5] array.c:2522
/usr/local/ruby/bin/ruby(rbimpl_RB_TYPE_P_fastpath) ./include/ruby/internal/value_type.h:351
/usr/local/ruby/bin/ruby(RB_TYPE_P) ./include/ruby/internal/value_type.h:378
/usr/local/ruby/bin/ruby(Check_Type) ./include/ruby/internal/value_type.h:434
/usr/local/ruby/bin/ruby(rb_array_len) ./include/ruby/internal/core/rarray.h:300
/usr/local/ruby/bin/ruby(rb_ary_each) array.c:2521
/usr/local/ruby/bin/ruby(vm_call_cfunc_with_frame+0x110) [0x558305569450] vm_insnhelper.c:3026
/usr/local/ruby/bin/ruby(vm_sendish+0x190) [0x558305563c40] vm_insnhelper.c:4652
/usr/local/ruby/bin/ruby(vm_exec_core+0x1b8) [0x558305573ef8] insns.def:758
/usr/local/ruby/bin/ruby(rb_vm_exec+0xbc) [0x55830556b65c] vm.c:2205
/usr/local/ruby/bin/ruby(yield_under+0x264) [0x558305581004] vm.c:1425
/usr/local/ruby/bin/ruby(vm_call_cfunc_with_frame+0x110) [0x558305569450] vm_insnhelper.c:3026
/usr/local/ruby/bin/ruby(vm_sendish+0x190) [0x558305563c40] vm_insnhelper.c:4652
/usr/local/ruby/bin/ruby(vm_exec_core+0x1b8) [0x558305573ef8] insns.def:758
/usr/local/ruby/bin/ruby(rb_vm_exec+0xbc) [0x55830556b65c] vm.c:2205
/usr/local/ruby/bin/ruby(rb_yield+0x3f9) [0x55830557fbd9] vm.c:1298
/usr/local/ruby/bin/ruby(RB_BUILTIN_TYPE+0x0) [0x55830559e0c5] array.c:2522
/usr/local/ruby/bin/ruby(rbimpl_RB_TYPE_P_fastpath) ./include/ruby/internal/value_type.h:351
/usr/local/ruby/bin/ruby(RB_TYPE_P) ./include/ruby/internal/value_type.h:378
/usr/local/ruby/bin/ruby(Check_Type) ./include/ruby/internal/value_type.h:434
/usr/local/ruby/bin/ruby(rb_array_len) ./include/ruby/internal/core/rarray.h:300
/usr/local/ruby/bin/ruby(rb_ary_each) array.c:2521
/usr/local/ruby/bin/ruby(vm_call_cfunc_with_frame+0x110) [0x558305569450] vm_insnhelper.c:3026
/usr/local/ruby/bin/ruby(vm_sendish+0x190) [0x558305563c40] vm_insnhelper.c:4652
/usr/local/ruby/bin/ruby(vm_exec_core+0x1b8) [0x558305573ef8] insns.def:758
/usr/local/ruby/bin/ruby(rb_vm_exec+0xbc) [0x55830556b65c] vm.c:2205
/usr/local/ruby/bin/ruby(vm_call0_body+0x37e) [0x55830556d17e] vm_eval.c:192
/usr/local/ruby/bin/ruby(rb_vm_call0+0xf5) [0x55830556daa5] vm_eval.c:57
/usr/local/ruby/bin/ruby(rb_method_call_pass_called_kw+0x9c) [0x558305485ecc] proc.c:2422
/usr/local/ruby/bin/ruby(vm_call_cfunc_with_frame+0x110) [0x558305569450] vm_insnhelper.c:3026
/usr/local/ruby/bin/ruby(vm_sendish+0x190) [0x558305563c40] vm_insnhelper.c:4652
/usr/local/ruby/bin/ruby(vm_exec_core+0x1b8) [0x558305573ef8] insns.def:758
/usr/local/ruby/bin/ruby(rb_vm_exec+0xbc) [0x55830556b65c] vm.c:2205
/usr/local/ruby/bin/ruby(rb_yield+0x3f9) [0x55830557fbd9] vm.c:1298
/usr/local/ruby/bin/ruby(RB_BUILTIN_TYPE+0x0) [0x55830559e0c5] array.c:2522
/usr/local/ruby/bin/ruby(rbimpl_RB_TYPE_P_fastpath) ./include/ruby/internal/value_type.h:351
/usr/local/ruby/bin/ruby(RB_TYPE_P) ./include/ruby/internal/value_type.h:378
/usr/local/ruby/bin/ruby(Check_Type) ./include/ruby/internal/value_type.h:434
/usr/local/ruby/bin/ruby(rb_array_len) ./include/ruby/internal/core/rarray.h:300
/usr/local/ruby/bin/ruby(rb_ary_each) array.c:2521
/usr/local/ruby/bin/ruby(vm_call0_cfunc_with_frame+0x6e) [0x55830556d01a] vm_eval.c:149
/usr/local/ruby/bin/ruby(vm_call0_cfunc) vm_eval.c:163
/usr/local/ruby/bin/ruby(vm_call0_body) vm_eval.c:196
/usr/local/ruby/bin/ruby(rb_vm_call0+0xf5) [0x55830556daa5] vm_eval.c:57
/usr/local/ruby/bin/ruby(rb_method_call_pass_called_kw+0x9c) [0x558305485ecc] proc.c:2422
/usr/local/ruby/bin/ruby(vm_call_cfunc_with_frame+0x110) [0x558305569450] vm_insnhelper.c:3026
/usr/local/ruby/bin/ruby(vm_call_method_each_type+0x7d) [0x55830557c2fd] vm_insnhelper.c:3542
/usr/local/ruby/bin/ruby(vm_call_method+0x11f) [0x55830557cdef] vm_insnhelper.c:3666
/usr/local/ruby/bin/ruby(vm_sendish+0x190) [0x558305563c40] vm_insnhelper.c:4652
/usr/local/ruby/bin/ruby(vm_exec_core+0x1b8) [0x558305573ef8] insns.def:758
/usr/local/ruby/bin/ruby(rb_vm_exec+0xbc) [0x55830556b65c] vm.c:2205
/usr/local/ruby/bin/ruby(load_iseq_eval+0xa) [0x5583054263e6] load.c:656
/usr/local/ruby/bin/ruby(require_internal) load.c:1128
/usr/local/ruby/bin/ruby(rb_require_string+0x38) [0x5583054265c2] load.c:1219
/usr/local/ruby/bin/ruby(rb_f_require) load.c:900
/usr/local/ruby/bin/ruby(vm_call_cfunc_with_frame+0x110) [0x558305569450] vm_insnhelper.c:3026
/usr/local/ruby/bin/ruby(vm_call_method_each_type+0x7d) [0x55830557c2fd] vm_insnhelper.c:3542
/usr/local/ruby/bin/ruby(vm_call_alias+0x9e) [0x55830557d97e] vm_insnhelper.c:3178
/usr/local/ruby/bin/ruby(vm_sendish+0x190) [0x558305563c40] vm_insnhelper.c:4652
/usr/local/ruby/bin/ruby(vm_exec_core+0x139) [0x558305573e79] insns.def:777
/usr/local/ruby/bin/ruby(rb_vm_exec+0xbc) [0x55830556b65c] vm.c:2205
/usr/local/ruby/bin/ruby(load_iseq_eval+0xa) [0x5583054263e6] load.c:656
/usr/local/ruby/bin/ruby(require_internal) load.c:1128
/usr/local/ruby/bin/ruby(rb_require_string+0x38) [0x5583054265c2] load.c:1219
/usr/local/ruby/bin/ruby(rb_f_require) load.c:900
/usr/local/ruby/bin/ruby(vm_call_cfunc_with_frame+0x110) [0x558305569450] vm_insnhelper.c:3026
/usr/local/ruby/bin/ruby(vm_call_method_each_type+0x7d) [0x55830557c2fd] vm_insnhelper.c:3542
/usr/local/ruby/bin/ruby(vm_call_alias+0x9e) [0x55830557d97e] vm_insnhelper.c:3178
/usr/local/ruby/bin/ruby(vm_sendish+0x190) [0x558305563c40] vm_insnhelper.c:4652
/usr/local/ruby/bin/ruby(vm_exec_core+0x139) [0x558305573e79] insns.def:777
/usr/local/ruby/bin/ruby(rb_vm_exec+0xbc) [0x55830556b65c] vm.c:2205
/usr/local/ruby/bin/ruby(load_iseq_eval+0xa) [0x5583054263e6] load.c:656
/usr/local/ruby/bin/ruby(require_internal) load.c:1128
/usr/local/ruby/bin/ruby(rb_require_string+0x35) [0x558305426663] load.c:1219
/usr/local/ruby/bin/ruby(rb_f_require_relative) load.c:919
/usr/local/ruby/bin/ruby(vm_call_cfunc_with_frame+0x110) [0x558305569450] vm_insnhelper.c:3026
/usr/local/ruby/bin/ruby(vm_sendish+0x190) [0x558305563c40] vm_insnhelper.c:4652
/usr/local/ruby/bin/ruby(vm_exec_core+0x139) [0x558305573e79] insns.def:777
/usr/local/ruby/bin/ruby(rb_vm_exec+0xbc) [0x55830556b65c] vm.c:2205
/usr/local/ruby/bin/ruby(rb_ec_exec_node+0xc9) [0x5583053c4229] eval.c:280
/usr/local/ruby/bin/ruby(ruby_run_node+0x58) [0x5583053c8ed8] eval.c:321
/usr/local/ruby/bin/ruby(main+0x73) [0x5583053ba9a3] ./main.c:47
```

I'm not 100% certain it's still the same error, but it looks like it.


----------------------------------------
Bug #18250: Anonymous variables seem to break `Ractor.make_shareable`
https://bugs.ruby-lang.org/issues/18250#change-94628

* Author: tenderlovemaking (Aaron Patterson)
* Status: Open
* Priority: Normal
* ruby -v: ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-darwin20]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
The following code breaks with a strange error:

```ruby
def foo(*); ->{ super };end
Ractor.make_shareable(foo) # expected Symbol
```

Output:

```
[aaron@tc ~/g/ruby (master)]$ cat test.rb
def foo(*); ->{ super };end      
Ractor.make_shareable(foo) # expected Symbol
[aaron@tc ~/g/ruby (master)]$ ruby test.rb
<internal:ractor>:816:in `make_shareable': wrong argument type false (expected Symbol) (TypeError)
        from test.rb:2:in `<main>'
[aaron@tc ~/g/ruby (master)]$
```

The reason is because the `*` parameter has no name, but Ractor tries to find the name so it can make an exception.

I *expect* the above program to raise an `Ractor::IsolationError`, but instead it raises a `TypeError`.

I've attached a patch that fixes this bug.

---Files--------------------------------
0001-Give-params-a-name.patch (3.33 KB)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>