Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ibf_dump_object_unsupported […] T_NONE (NotImplementedError) #436

Closed
tisba opened this issue Feb 6, 2023 · 26 comments
Closed

ibf_dump_object_unsupported […] T_NONE (NotImplementedError) #436

tisba opened this issue Feb 6, 2023 · 26 comments

Comments

@tisba
Copy link

tisba commented Feb 6, 2023

See: Ruby upstream issue https://bugs.ruby-lang.org/issues/19419
See: Repo with reproduction case https://github.com/tisba/bootsnap-ruby-crash


Steps to reproduce

I'm having a hard time to produce a minimal version that reliably reproduces this error. Locally, with a Gemfile just containing aws-sdk-ec2, nokogiri and bootsnap I have seen it too, but cannot reproduce that reliably on my local machine yet. It seems to happen on a slightly more regular basis in our GH Action CI run, but also not 100% of the time.

According to the trace (see below) the NotImplementedError happens when loading clients_api.rb from the AWS SDK. Note that clients_api.rb is a MASSIVE file with >20,000 LOC. Maybe the size is (part of) the problem?

Is there something I can do to provide more useful information to debug this issue?

Expected behavior

It should not crash.

Actual behavior

It crashes.

System configuration

Bootsnap version: 1.16.0

Ruby version: 3.2.0, 3.2.1 (on aarch64, x86)

Rails version: 7.0.4.2 (not relevant)

Backtrace

In our CI it fails when we do a sanity check of the Rails app via RAILS_ENV=production bundle exec rails runner 'puts "Hello from #{Rails.env}!"':

/home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:42:in `to_binary': ibf_dump_object_unsupported: 0x00007f11b8efff58 [0      ] T_NONE  (NotImplementedError)
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:42:in `input_to_storage'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:60:in `fetch'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:60:in `fetch'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:85:in `load_iseq'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/aws-sdk-ec2-1.364.0/lib/aws-sdk-ec2.rb:15:in `require_relative'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/aws-sdk-ec2-1.364.0/lib/aws-sdk-ec2.rb:15:in `<main>'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/gems/3.2.0/gems/bundler-2.4.3/lib/bundler/runtime.rb:60:in `block (2 levels) in require'
	from /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/gems/3.2.0/gems/bundler-2.4.3/lib/bundler/runtime.rb:55:in `each'
	from /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/gems/3.2.0/gems/bundler-2.4.3/lib/bundler/runtime.rb:55:in `block in require'
	from /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/gems/3.2.0/gems/bundler-2.4.3/lib/bundler/runtime.rb:44:in `each'
	from /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/gems/3.2.0/gems/bundler-2.4.3/lib/bundler/runtime.rb:44:in `require'
	from /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/gems/3.2.0/gems/bundler-2.4.3/lib/bundler.rb:195:in `require'
	from /home/runner/work/foo/foo/config/application.rb:13:in `<main>'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/railties-7.0.4.2/lib/rails/command/actions.rb:22:in `require_application!'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/railties-7.0.4.2/lib/rails/command/actions.rb:14:in `require_application_and_environment!'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/railties-7.0.4.2/lib/rails/commands/runner/runner_command.rb:33:in `perform'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/railties-7.0.4.2/lib/rails/command/base.rb:87:in `perform'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/railties-7.0.4.2/lib/rails/command.rb:48:in `invoke'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/railties-7.0.4.2/lib/rails/commands.rb:18:in `<main>'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from bin/rails:5:in `<main>'
@tisba
Copy link
Author

tisba commented Feb 6, 2023

Another one, probably related:

$ bundle exec rails db:prepare
<OBJ_INFO:gc_mark_ptr@gc.c:7058> 0x00007fb6a86ea148 [0 M    ] T_NONE 
/home/runner/work/forge/forge/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/watcher/abstract.rb:64: [BUG] try to mark T_NONE object

@casperisfine
Copy link
Contributor

Thanks for the report.

Based on the report, it's quite certainly a Ruby bug, triggered by Bootsnap perhaps, but can't be fixed by us.

T_NONE isn't supposed to be accessible at all by gems or extensions, it's literally an empty object slots.

So it will be best to open this upstream, but let's see if we can craft a good error report.

[BUG] try to mark T_NONE object

That's the start of an error report, it could be very useful if you could include the extended crash report, most notably the C level backtrace section. If you have it, that would probably be sufficient to submit the bug upstream.

Overall I suspect that this is a write barrier issue of some sort, in other words some Ruby object is being garbage collected when it shouldn't, but that's just a guess.

We might be able to reproduce this by compiling that big AWS file with GC.stress = true.

cc @peterzhu2118 (in case this issue rings a bell).

@tisba
Copy link
Author

tisba commented Feb 6, 2023

Here is the full output of the crash (wasn't sure if that was helpful at all, so I did not included it right away, sorry).

Full output / [BUG] try to mark T_NONE object
<OBJ_INFO:gc_mark_ptr@gc.c:7058> 0x00007fb6a86ea148 [0 M    ] T_NONE 
/home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/watcher/abstract.rb:64: [BUG] try to mark T_NONE object
ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0020 p:---- s:0105 e:000104 CFUNC  :directory?
c:0019 p:---- s:0102 e:000101 CFUNC  :directory?
c:0018 p:0005 s:0098 e:000097 BLOCK  /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/watcher/abstract.rb:64 [FINISH]
c:0017 p:---- s:0094 e:000093 CFUNC  :each
c:0016 p:0006 s:0090 e:000089 BLOCK  /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/watcher/abstract.rb:63 [FINISH]
c:0015 p:---- s:0087 e:000086 CFUNC  :synchronize
c:0014 p:0009 s:0083 e:000082 METHOD /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/mutex_m.rb:79
c:0013 p:0025 s:0078 e:000077 METHOD /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/watcher/abstract.rb:62
c:0012 p:0017 s:0073 e:000072 METHOD /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/watcher/polling.rb:26
c:0011 p:0008 s:0068 e:000067 RESCUE /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/application.rb:117
c:0010 p:0181 s:0064 e:000062 METHOD /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/application.rb:124
c:0009 p:0073 s:0057 e:000056 METHOD /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/application.rb:166
c:0008 p:0045 s:0043 e:000042 BLOCK  /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/application.rb:148 [FINISH]
c:0007 p:---- s:0040 e:000039 CFUNC  :loop
c:0006 p:0016 s:0036 e:000035 METHOD /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/application.rb:142
c:0005 p:0080 s:0032 E:001698 TOP    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/application/boot.rb:19 [FINISH]
c:0004 p:---- s:0028 e:000027 CFUNC  :require
c:0003 p:0109 s:0023 e:000022 METHOD <internal:/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85
c:0002 p:0005 s:0006 e:000005 EVAL   -e:1 [FINISH]
c:0001 p:0000 s:0003 E:001720 DUMMY  [FINISH]

-- Ruby level backtrace information ----------------------------------------
-e:1:in `<main>'
<internal:/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
<internal:/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
/home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/application/boot.rb:19:in `<top (required)>'
/home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/application.rb:142:in `run'
/home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/application.rb:142:in `loop'
/home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/application.rb:148:in `block in run'
/home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/application.rb:166:in `serve'
/home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/application.rb:124:in `preload'
/home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/application.rb:117:in `ensure in preload'
/home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/watcher/polling.rb:26:in `add'
/home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/watcher/abstract.rb:62:in `add'
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/mutex_m.rb:79:in `mu_synchronize'
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/mutex_m.rb:79:in `synchronize'
/home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/watcher/abstract.rb:63:in `block in add'
/home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/watcher/abstract.rb:63:in `each'
/home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/watcher/abstract.rb:64:in `block (2 levels) in add'
/home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/watcher/abstract.rb:64:in `directory?'
/home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/spring-4.1.1/lib/spring/watcher/abstract.rb:64:in `directory?'

-- C level backtrace information -------------------------------------------
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_print_backtrace+0xd) [0x7fb6b050ab39] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_dump.c:785
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_vm_bugreport) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_dump.c:1080
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(bug_report_end+0x0) [0x7fb6b0301049] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/error.c:790
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_bug_without_die) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/error.c:790
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(die+0x0) [0x7fb6b025ae4f] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/error.c:798
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_bug) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/error.c:800
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(gc_mark_ptr+0xcf) [0x7fb6b032a43f] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/gc.c:7059
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(mark_key+0x2f) [0x7fb6b032a75f] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/gc.c:7085
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(apply_functor+0x13) [0x7fb6b0466bc5] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/st.c:1574
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(st_general_foreach) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/st.c:1484
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_st_foreach) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/st.c:1581
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(ibf_dump_mark+0x1a) [0x7fb6b029895a] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/compile.c:13033
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(gc_mark_stacked_objects+0x78) [0x7fb6b032d628] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/gc.c:7437
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(gc_mark_stacked_objects_all) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/gc.c:7477
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(gc_marks_rest) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/gc.c:8675
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(gc_marks+0x423) [0x7fb6b032e643] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/gc.c:8716
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(gc_start) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/gc.c:9547
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(heap_prepare+0x2d) [0x7fb6b03319c8] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/gc.c:2431
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(heap_next_free_page) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/gc.c:2672
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(newobj_alloc) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/gc.c:2780
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(newobj_of0+0x66) [0x7fb6b0332441] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/gc.c:2876
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(newobj_of) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/gc.c:2896
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_wb_protected_newobj_of) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/gc.c:2918
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(str_alloc_embed+0x10) [0x7fb6b046f9a8] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/string.c:890
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(str_new0) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/string.c:926
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(str_new_frozen_buffer+0x7d) [0x7fb6b04757ed] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/string.c:1461
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_file_directory_p+0xf4) [0x7fb6b03114d4] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/file.c:1309
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_call0_cfunc_with_frame+0x111) [0x7fb6b04fafb1] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_eval.c:150
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_call0_cfunc) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_eval.c:164
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_call0_body) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_eval.c:210
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_call0_cc+0x76) [0x7fb6b04ff242] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_eval.c:87
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_funcallv) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_eval.c:1051
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/pathname.so(path_directory_p+0x76) [0x7fb6ab327fb6] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/ext/pathname/pathname.c:919
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_call_cfunc_with_frame+0x127) [0x7fb6b04df147] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_insnhelper.c:3252
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_sendish+0x97) [0x7fb6b04ef644] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_insnhelper.c:5064
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_exec_core) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/insns.def:820
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_vm_exec+0xd3) [0x7fb6b04f4f23] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm.c:2374
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_yield+0x1df) [0x7fb6b04fa4bf] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm.c:1398
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(RB_FL_TEST_RAW+0x0) [0x7fb6b026765c] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/array.c:2740
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(RB_FL_ANY_RAW) ./include/ruby/internal/fl_type.h:552
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_array_len) ./include/ruby/internal/core/rarray.h:321
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_ary_each) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/array.c:2739
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_call_cfunc_with_frame+0x127) [0x7fb6b04df147] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_insnhelper.c:3252
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_sendish+0xd2) [0x7fb6b04e4e62] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_insnhelper.c:5064
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_exec_core+0x1e2) [0x7fb6b04ef722] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/insns.def:801
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_vm_exec+0xd3) [0x7fb6b04f4f23] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm.c:2374
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_yield+0x4c9) [0x7fb6b04fa7a9] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm.c:1398
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_ensure+0x126) [0x7fb6b030abb6] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/eval.c:1007
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_call_cfunc_with_frame+0x127) [0x7fb6b04df147] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_insnhelper.c:3252
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_sendish+0xd2) [0x7fb6b04e4e62] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_insnhelper.c:5064
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_exec_core+0x1e2) [0x7fb6b04ef722] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/insns.def:801
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_vm_exec+0x5af) [0x7fb6b04f53ff] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm.c:2383
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(invoke_block_from_c_bh+0x212) [0x7fb6b04f63df] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm.c:1398
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_yield_with_cref) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm.c:1509
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_yield) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm.c:1517
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_yield_0) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_eval.c:1348
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(loop_i) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_eval.c:1447
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_vrescue2+0x11e) [0x7fb6b030a5fe] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/eval.c:917
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_rescue2+0x8e) [0x7fb6b030a88e] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/eval.c:898
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_call_cfunc_with_frame+0x127) [0x7fb6b04df147] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_insnhelper.c:3252
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_sendish+0xd2) [0x7fb6b04e4e62] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_insnhelper.c:5064
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_exec_core+0x1e2) [0x7fb6b04ef722] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/insns.def:801
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_vm_exec+0x5af) [0x7fb6b04f53ff] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm.c:2383
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(load_iseq_eval+0x3c) [0x7fb6b03730d1] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/load.c:697
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(require_internal) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/load.c:1202
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_require_string+0x42) [0x7fb6b0373b32] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/load.c:1293
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_call_cfunc_with_frame+0x127) [0x7fb6b04df147] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_insnhelper.c:3252
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_call_alias+0x7d) [0x7fb6b05055dd] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_insnhelper.c:3431
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_sendish+0x97) [0x7fb6b04ef644] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm_insnhelper.c:5064
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(vm_exec_core) /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/insns.def:820
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_vm_exec+0xd3) [0x7fb6b04f4f23] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/vm.c:2374
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(rb_ec_exec_node+0xb1) [0x7fb6b0306481] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/eval.c:289
/opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2(ruby_run_node+0x93) [0x7fb6b030c943] /tmp/ruby-build.20221225115541.1993.T5gBvw/ruby-3.2.0/eval.c:330
/opt/hostedtoolcache/Ruby/3.2.0/x64/bin/ruby(rb_main+0x21) [0x55ae81d00187] ./main.c:38
/opt/hostedtoolcache/Ruby/3.2.0/x64/bin/ruby(main) ./main.c:57
/lib/x86_64-linux-gnu/libc.so.6(0x7fb6afde4d90) [0x7fb6afde4d90]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7fb6afde4e40]
[0x55ae81d001d5]

-- Other runtime information -----------------------------------------------

* Process memory map:

55ae81cff000-55ae81d00000 r--p 00000000 08:01 4686484                    /opt/hostedtoolcache/Ruby/3.2.0/x64/bin/ruby
55ae81d00000-55ae81d01000 r-xp 00001000 08:01 4686484                    /opt/hostedtoolcache/Ruby/3.2.0/x64/bin/ruby
55ae81d01000-55ae81d02000 r--p 00002000 08:01 4686484                    /opt/hostedtoolcache/Ruby/3.2.0/x64/bin/ruby
55ae81d02000-55ae81d03000 r--p 00002000 08:01 4686484                    /opt/hostedtoolcache/Ruby/3.2.0/x64/bin/ruby
55ae81d03000-55ae81d04000 rw-p 00003000 08:01 4686484                    /opt/hostedtoolcache/Ruby/3.2.0/x64/bin/ruby
55ae83846000-55ae8a170000 rw-p 00000000 00:00 0                          [heap]
7fb69c000000-7fb69c021000 rw-p 00000000 00:00 0 
7fb69c021000-7fb6a0000000 ---p 00000000 00:00 0 
7fb6a2edc000-7fb6a4000000 r--s 00000000 08:01 4683870                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2.0
7fb6a4000000-7fb6a4128000 rw-p 00000000 00:00 0 
7fb6a4128000-7fb6a8000000 ---p 00000000 00:00 0 
7fb6a80d0000-7fb6a82ee000 r--s 00000000 08:01 4966                       /usr/lib/x86_64-linux-gnu/libc.so.6
7fb6a82ee000-7fb6a831b000 r--s 00000000 08:01 4686120                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/pathname.so
7fb6a831b000-7fb6a8350000 r--s 00000000 08:01 4686484                    /opt/hostedtoolcache/Ruby/3.2.0/x64/bin/ruby
7fb6a8350000-7fb6a85e0000 rw-p 00000000 00:00 0 
7fb6a85f0000-7fb6a8600000 rw-p 00000000 00:00 0 
7fb6a8600000-7fb6a8ac0000 rw-p 00000000 00:00 0 
7fb6a8ac6000-7fb6a8b60000 r--p 00000000 08:01 4961                       /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30
7fb6a8b60000-7fb6a8c70000 r-xp 0009a000 08:01 4961                       /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30
7fb6a8c70000-7fb6a8cdf000 r--p 001aa000 08:01 4961                       /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30
7fb6a8cdf000-7fb6a8cea000 r--p 00218000 08:01 4961                       /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30
7fb6a8cea000-7fb6a8ced000 rw-p 00223000 08:01 4961                       /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30
7fb6a8ced000-7fb6a8d00000 rw-p 00000000 00:00 0 
7fb6a8d10000-7fb6a8d20000 rw-p 00000000 00:00 0 
7fb6a8d20000-7fb6a8ee0000 rw-p 00000000 00:00 0 
7fb6a8ee9000-7fb6a8f0f000 r--p 00000000 08:01 68491                      /usr/lib/x86_64-linux-gnu/libmysqlclient.so.21.2.32
7fb6a8f0f000-7fb6a8f9a000 r-xp 00026000 08:01 68491                      /usr/lib/x86_64-linux-gnu/libmysqlclient.so.21.2.32
7fb6a8f9a000-7fb6a9278000 r--p 000b1000 08:01 68491                      /usr/lib/x86_64-linux-gnu/libmysqlclient.so.21.2.32
7fb6a9278000-7fb6a927f000 r--p 0038e000 08:01 68491                      /usr/lib/x86_64-linux-gnu/libmysqlclient.so.21.2.32
7fb6a927f000-7fb6a956d000 rw-p 00395000 08:01 68491                      /usr/lib/x86_64-linux-gnu/libmysqlclient.so.21.2.32
7fb6a956d000-7fb6a9572000 rw-p 00000000 00:00 0 
7fb6a9572000-7fb6a95b0000 r--p 00000000 08:01 1374269                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/nokogiri-1.14.1/lib/nokogiri/nokogiri.so
7fb6a95b0000-7fb6a96ed000 r-xp 0003e000 08:01 1374269                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/nokogiri-1.14.1/lib/nokogiri/nokogiri.so
7fb6a96ed000-7fb6a977f000 r--p 0017b000 08:01 1374269                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/nokogiri-1.14.1/lib/nokogiri/nokogiri.so
7fb6a977f000-7fb6a978b000 r--p 0020c000 08:01 1374269                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/nokogiri-1.14.1/lib/nokogiri/nokogiri.so
7fb6a978b000-7fb6a978f000 rw-p 00218000 08:01 1374269                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/nokogiri-1.14.1/lib/nokogiri/nokogiri.so
7fb6a978f000-7fb6a97a0000 rw-p 00000000 00:00 0 
7fb6a97b0000-7fb6a99a0000 rw-p 00000000 00:00 0 
7fb6a99b0000-7fb6a99c0000 rw-p 00000000 00:00 0 
7fb6a99c0000-7fb6a9b20000 rw-p 00000000 00:00 0 
7fb6a9b21000-7fb6a9b2b000 r--p 00000000 08:01 4735                       /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8
7fb6a9b2b000-7fb6a9bdd000 r-xp 0000a000 08:01 4735                       /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8
7fb6a9bdd000-7fb6a9bee000 r--p 000bc000 08:01 4735                       /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8
7fb6a9bee000-7fb6a9bef000 r--p 000cc000 08:01 4735                       /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8
7fb6a9bef000-7fb6a9bf0000 rw-p 000cd000 08:01 4735                       /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.8
7fb6a9bf0000-7fb6a9c00000 rw-p 00000000 00:00 0 
7fb6a9c06000-7fb6a9c07000 r--p 00000000 08:01 3617                       /usr/lib/x86_64-linux-gnu/gconv/CP932.so
7fb6a9c07000-7fb6a9c09000 r-xp 00001000 08:01 3617                       /usr/lib/x86_64-linux-gnu/gconv/CP932.so
7fb6a9c09000-7fb6a9c1e000 r--p 00003000 08:01 3617                       /usr/lib/x86_64-linux-gnu/gconv/CP932.so
7fb6a9c1e000-7fb6a9c1f000 r--p 00017000 08:01 3617                       /usr/lib/x86_64-linux-gnu/gconv/CP932.so
7fb6a9c1f000-7fb6a9c20000 rw-p 00018000 08:01 3617                       /usr/lib/x86_64-linux-gnu/gconv/CP932.so
7fb6a9c20000-7fb6a9c50000 rw-p 00000000 00:00 0 
7fb6a9c55000-7fb6a9c58000 r--p 00000000 08:01 3865                       /usr/lib/x86_64-linux-gnu/liblzma.so.5.2.5
7fb6a9c58000-7fb6a9c73000 r-xp 00003000 08:01 3865                       /usr/lib/x86_64-linux-gnu/liblzma.so.5.2.5
7fb6a9c73000-7fb6a9c7e000 r--p 0001e000 08:01 3865                       /usr/lib/x86_64-linux-gnu/liblzma.so.5.2.5
7fb6a9c7e000-7fb6a9c7f000 r--p 00028000 08:01 3865                       /usr/lib/x86_64-linux-gnu/liblzma.so.5.2.5
7fb6a9c7f000-7fb6a9c80000 rw-p 00029000 08:01 3865                       /usr/lib/x86_64-linux-gnu/liblzma.so.5.2.5
7fb6a9c80000-7fb6a9e00000 rw-p 00000000 00:00 0 
7fb6a9e10000-7fb6a9e20000 rw-p 00000000 00:00 0 
7fb6a9e20000-7fb6a9f80000 rw-p 00000000 00:00 0 
7fb6a9f81000-7fb6a9f8a000 r--p 00000000 08:01 1373178                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/oj-3.14.1/lib/oj/oj.so
7fb6a9f8a000-7fb6a9fd5000 r-xp 00009000 08:01 1373178                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/oj-3.14.1/lib/oj/oj.so
7fb6a9fd5000-7fb6a9fe7000 r--p 00054000 08:01 1373178                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/oj-3.14.1/lib/oj/oj.so
7fb6a9fe7000-7fb6a9fe8000 ---p 00066000 08:01 1373178                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/oj-3.14.1/lib/oj/oj.so
7fb6a9fe8000-7fb6a9fe9000 r--p 00066000 08:01 1373178                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/oj-3.14.1/lib/oj/oj.so
7fb6a9fe9000-7fb6a9feb000 rw-p 00067000 08:01 1373178                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/oj-3.14.1/lib/oj/oj.so
7fb6a9feb000-7fb6aa090000 rw-p 00000000 00:00 0 
7fb6aa092000-7fb6aa095000 r--p 00000000 08:01 1366996                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/hiredis-0.6.3/lib/hiredis/ext/hiredis_ext.so
7fb6aa095000-7fb6aa0a0000 r-xp 00003000 08:01 1366996                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/hiredis-0.6.3/lib/hiredis/ext/hiredis_ext.so
7fb6aa0a0000-7fb6aa0a3000 r--p 0000e000 08:01 1366996                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/hiredis-0.6.3/lib/hiredis/ext/hiredis_ext.so
7fb6aa0a3000-7fb6aa0a4000 r--p 00010000 08:01 1366996                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/hiredis-0.6.3/lib/hiredis/ext/hiredis_ext.so
7fb6aa0a4000-7fb6aa0a5000 rw-p 00011000 08:01 1366996                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/hiredis-0.6.3/lib/hiredis/ext/hiredis_ext.so
7fb6aa0a5000-7fb6aa0a8000 r--p 00000000 08:01 4979                       /usr/lib/x86_64-linux-gnu/libresolv.so.2
7fb6aa0a8000-7fb6aa0b2000 r-xp 00003000 08:01 4979                       /usr/lib/x86_64-linux-gnu/libresolv.so.2
7fb6aa0b2000-7fb6aa0b5000 r--p 0000d000 08:01 4979                       /usr/lib/x86_64-linux-gnu/libresolv.so.2
7fb6aa0b5000-7fb6aa0b6000 r--p 0000f000 08:01 4979                       /usr/lib/x86_64-linux-gnu/libresolv.so.2
7fb6aa0b6000-7fb6aa0b7000 rw-p 00010000 08:01 4979                       /usr/lib/x86_64-linux-gnu/libresolv.so.2
7fb6aa0b7000-7fb6aa0b9000 rw-p 00000000 00:00 0 
7fb6aa0b9000-7fb6aa0bf000 r--p 00000000 08:01 1578215                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/mysql2-0.5.5/lib/mysql2/mysql2.so
7fb6aa0bf000-7fb6aa0ca000 r-xp 00006000 08:01 1578215                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/mysql2-0.5.5/lib/mysql2/mysql2.so
7fb6aa0ca000-7fb6aa0cd000 r--p 00011000 08:01 1578215                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/mysql2-0.5.5/lib/mysql2/mysql2.so
7fb6aa0cd000-7fb6aa0cf000 r--p 00013000 08:01 1578215                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/mysql2-0.5.5/lib/mysql2/mysql2.so
7fb6aa0cf000-7fb6aa0d0000 rw-p 00015000 08:01 1578215                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/mysql2-0.5.5/lib/mysql2/mysql2.so
7fb6aa0d0000-7fb6aa1e0000 rw-p 00000000 00:00 0 
7fb6aa1e5000-7fb6aa1e7000 r--p 00000000 08:01 4686045                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/strscan.so
7fb6aa1e7000-7fb6aa1eb000 r-xp 00002000 08:01 4686045                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/strscan.so
7fb6aa1eb000-7fb6aa1ed000 r--p 00006000 08:01 4686045                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/strscan.so
7fb6aa1ed000-7fb6aa1ee000 r--p 00007000 08:01 4686045                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/strscan.so
7fb6aa1ee000-7fb6aa1ef000 rw-p 00008000 08:01 4686045                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/strscan.so
7fb6aa1ef000-7fb6aa1f2000 r--p 00000000 08:01 4686044                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/bigdecimal.so
7fb6aa1f2000-7fb6aa20a000 r-xp 00003000 08:01 4686044                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/bigdecimal.so
7fb6aa20a000-7fb6aa20e000 r--p 0001b000 08:01 4686044                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/bigdecimal.so
7fb6aa20e000-7fb6aa20f000 r--p 0001e000 08:01 4686044                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/bigdecimal.so
7fb6aa20f000-7fb6aa210000 rw-p 0001f000 08:01 4686044                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/bigdecimal.so
7fb6aa210000-7fb6aa290000 rw-p 00000000 00:00 0 
7fb6aa290000-7fb6aa292000 r--p 00000000 08:01 1352440                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/rcsv-0.3.1/lib/rcsv/rcsv.so
7fb6aa292000-7fb6aa296000 r-xp 00002000 08:01 1352440                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/rcsv-0.3.1/lib/rcsv/rcsv.so
7fb6aa296000-7fb6aa297000 r--p 00006000 08:01 1352440                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/rcsv-0.3.1/lib/rcsv/rcsv.so
7fb6aa297000-7fb6aa298000 r--p 00006000 08:01 1352440                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/rcsv-0.3.1/lib/rcsv/rcsv.so
7fb6aa298000-7fb6aa299000 rw-p 00007000 08:01 1352440                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/rcsv-0.3.1/lib/rcsv/rcsv.so
7fb6aa299000-7fb6aa34b000 r--p 00000000 08:01 4691                       /usr/lib/x86_64-linux-gnu/libcrypto.so.3
7fb6aa34b000-7fb6aa5a8000 r-xp 000b2000 08:01 4691                       /usr/lib/x86_64-linux-gnu/libcrypto.so.3
7fb6aa5a8000-7fb6aa67a000 r--p 0030f000 08:01 4691                       /usr/lib/x86_64-linux-gnu/libcrypto.so.3
7fb6aa67a000-7fb6aa6d5000 r--p 003e0000 08:01 4691                       /usr/lib/x86_64-linux-gnu/libcrypto.so.3
7fb6aa6d5000-7fb6aa6d8000 rw-p 0043b000 08:01 4691                       /usr/lib/x86_64-linux-gnu/libcrypto.so.3
7fb6aa6d8000-7fb6aa6db000 rw-p 00000000 00:00 0 
7fb6aa6db000-7fb6aa6f9000 r--p 00000000 08:01 4692                       /usr/lib/x86_64-linux-gnu/libssl.so.3
7fb6aa6f9000-7fb6aa754000 r-xp 0001e000 08:01 4692                       /usr/lib/x86_64-linux-gnu/libssl.so.3
7fb6aa754000-7fb6aa771000 r--p 00079000 08:01 4692                       /usr/lib/x86_64-linux-gnu/libssl.so.3
7fb6aa771000-7fb6aa77b000 r--p 00095000 08:01 4692                       /usr/lib/x86_64-linux-gnu/libssl.so.3
7fb6aa77b000-7fb6aa77f000 rw-p 0009f000 08:01 4692                       /usr/lib/x86_64-linux-gnu/libssl.so.3
7fb6aa784000-7fb6aa786000 r--p 00000000 08:01 4686122                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/digest.so
7fb6aa786000-7fb6aa788000 r-xp 00002000 08:01 4686122                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/digest.so
7fb6aa788000-7fb6aa789000 r--p 00004000 08:01 4686122                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/digest.so
7fb6aa789000-7fb6aa78a000 r--p 00004000 08:01 4686122                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/digest.so
7fb6aa78a000-7fb6aa78b000 rw-p 00005000 08:01 4686122                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/digest.so
7fb6aa78b000-7fb6aa7a0000 r--p 00000000 08:01 4686042                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/openssl.so
7fb6aa7a0000-7fb6aa7d9000 r-xp 00015000 08:01 4686042                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/openssl.so
7fb6aa7d9000-7fb6aa7eb000 r--p 0004e000 08:01 4686042                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/openssl.so
7fb6aa7eb000-7fb6aa7ed000 r--p 0005f000 08:01 4686042                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/openssl.so
7fb6aa7ed000-7fb6aa7ef000 rw-p 00061000 08:01 4686042                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/openssl.so
7fb6aa7ef000-7fb6aa840000 rw-p 00000000 00:00 0 
7fb6aa842000-7fb6aa845000 r--p 00000000 08:01 4686124                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/date_core.so
7fb6aa845000-7fb6aa874000 r-xp 00003000 08:01 4686124                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/date_core.so
7fb6aa874000-7fb6aa87d000 r--p 00032000 08:01 4686124                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/date_core.so
7fb6aa87d000-7fb6aa87e000 r--p 0003a000 08:01 4686124                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/date_core.so
7fb6aa87e000-7fb6aa87f000 rw-p 0003b000 08:01 4686124                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/date_core.so
7fb6aa87f000-7fb6aa900000 rw-p 00000000 00:00 0 
7fb6aa902000-7fb6aa904000 r--p 00000000 08:01 4686127                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/json/ext/generator.so
7fb6aa904000-7fb6aa90b000 r-xp 00002000 08:01 4686127                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/json/ext/generator.so
7fb6aa90b000-7fb6aa90d000 r--p 00009000 08:01 4686127                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/json/ext/generator.so
7fb6aa90d000-7fb6aa90e000 r--p 0000a000 08:01 4686127                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/json/ext/generator.so
7fb6aa90e000-7fb6aa90f000 rw-p 0000b000 08:01 4686127                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/json/ext/generator.so
7fb6aa90f000-7fb6aa911000 r--p 00000000 08:01 4858                       /usr/lib/x86_64-linux-gnu/libyaml-0.so.2.0.6
7fb6aa911000-7fb6aa92a000 r-xp 00002000 08:01 4858                       /usr/lib/x86_64-linux-gnu/libyaml-0.so.2.0.6
7fb6aa92a000-7fb6aa92e000 r--p 0001b000 08:01 4858                       /usr/lib/x86_64-linux-gnu/libyaml-0.so.2.0.6
7fb6aa92e000-7fb6aa92f000 r--p 0001e000 08:01 4858                       /usr/lib/x86_64-linux-gnu/libyaml-0.so.2.0.6
7fb6aa92f000-7fb6aa930000 rw-p 0001f000 08:01 4858                       /usr/lib/x86_64-linux-gnu/libyaml-0.so.2.0.6
7fb6aa930000-7fb6aa940000 rw-p 00000000 00:00 0 
7fb6aa941000-7fb6aa943000 r--p 00000000 08:01 4686138                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/etc.so
7fb6aa943000-7fb6aa946000 r-xp 00002000 08:01 4686138                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/etc.so
7fb6aa946000-7fb6aa948000 r--p 00005000 08:01 4686138                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/etc.so
7fb6aa948000-7fb6aa949000 r--p 00006000 08:01 4686138                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/etc.so
7fb6aa949000-7fb6aa94a000 rw-p 00007000 08:01 4686138                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/etc.so
7fb6aa94a000-7fb6aa94e000 r--p 00000000 08:01 4686118                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/zlib.so
7fb6aa94e000-7fb6aa95a000 r-xp 00004000 08:01 4686118                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/zlib.so
7fb6aa95a000-7fb6aa95d000 r--p 00010000 08:01 4686118                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/zlib.so
7fb6aa95d000-7fb6aa95e000 ---p 00013000 08:01 4686118                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/zlib.so
7fb6aa95e000-7fb6aa95f000 r--p 00013000 08:01 4686118                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/zlib.so
7fb6aa95f000-7fb6aa960000 rw-p 00014000 08:01 4686118                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/zlib.so
7fb6aa960000-7fb6aaba0000 rw-p 00000000 00:00 0 
7fb6aaba1000-7fb6aaba2000 r--p 00000000 08:01 4686114                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/erb/escape.so
7fb6aaba2000-7fb6aaba3000 r-xp 00001000 08:01 4686114                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/erb/escape.so
7fb6aaba3000-7fb6aaba4000 r--p 00002000 08:01 4686114                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/erb/escape.so
7fb6aaba4000-7fb6aaba5000 r--p 00002000 08:01 4686114                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/erb/escape.so
7fb6aaba5000-7fb6aaba6000 rw-p 00003000 08:01 4686114                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/erb/escape.so
7fb6aaba6000-7fb6aabab000 r--p 00000000 08:01 1366279                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/msgpack-1.6.0/lib/msgpack/msgpack.so
7fb6aabab000-7fb6aabb9000 r-xp 00005000 08:01 1366279                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/msgpack-1.6.0/lib/msgpack/msgpack.so
7fb6aabb9000-7fb6aabbd000 r--p 00013000 08:01 1366279                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/msgpack-1.6.0/lib/msgpack/msgpack.so
7fb6aabbd000-7fb6aabbe000 r--p 00016000 08:01 1366279                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/msgpack-1.6.0/lib/msgpack/msgpack.so
7fb6aabbe000-7fb6aabbf000 rw-p 00017000 08:01 1366279                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/msgpack-1.6.0/lib/msgpack/msgpack.so
7fb6aabbf000-7fb6aabc0000 ---p 00000000 00:00 0 
7fb6aabc0000-7fb6aae10000 rw-p 00000000 00:00 0 
7fb6aae11000-7fb6aae12000 r--p 00000000 08:01 4686037                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/io/nonblock.so
7fb6aae12000-7fb6aae13000 r-xp 00001000 08:01 4686037                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/io/nonblock.so
7fb6aae13000-7fb6aae14000 r--p 00002000 08:01 4686037                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/io/nonblock.so
7fb6aae14000-7fb6aae15000 r--p 00002000 08:01 4686037                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/io/nonblock.so
7fb6aae15000-7fb6aae16000 rw-p 00003000 08:01 4686037                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/io/nonblock.so
7fb6aae16000-7fb6aae18000 r--p 00000000 08:01 4686128                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/json/ext/parser.so
7fb6aae18000-7fb6aae1c000 r-xp 00002000 08:01 4686128                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/json/ext/parser.so
7fb6aae1c000-7fb6aae1d000 r--p 00006000 08:01 4686128                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/json/ext/parser.so
7fb6aae1d000-7fb6aae1e000 r--p 00006000 08:01 4686128                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/json/ext/parser.so
7fb6aae1e000-7fb6aae1f000 rw-p 00007000 08:01 4686128                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/json/ext/parser.so
7fb6aae24000-7fb6aae25000 r--p 00000000 08:01 4686133                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/digest/sha2.so
7fb6aae25000-7fb6aae27000 r-xp 00001000 08:01 4686133                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/digest/sha2.so
7fb6aae27000-7fb6aae28000 r--p 00003000 08:01 4686133                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/digest/sha2.so
7fb6aae28000-7fb6aae29000 r--p 00003000 08:01 4686133                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/digest/sha2.so
7fb6aae29000-7fb6aae2a000 rw-p 00004000 08:01 4686133                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/digest/sha2.so
7fb6aae2a000-7fb6aae2b000 r--p 00000000 08:01 4686137                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/digest/sha1.so
7fb6aae2b000-7fb6aae2d000 r-xp 00001000 08:01 4686137                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/digest/sha1.so
7fb6aae2d000-7fb6aae2e000 r--p 00003000 08:01 4686137                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/digest/sha1.so
7fb6aae2e000-7fb6aae2f000 r--p 00003000 08:01 4686137                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/digest/sha1.so
7fb6aae2f000-7fb6aae30000 rw-p 00004000 08:01 4686137                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/digest/sha1.so
7fb6aae30000-7fb6aaec0000 rw-p 00000000 00:00 0 
7fb6aaec3000-7fb6aaec4000 r--p 00000000 08:01 4686036                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/io/wait.so
7fb6aaec4000-7fb6aaec5000 r-xp 00001000 08:01 4686036                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/io/wait.so
7fb6aaec5000-7fb6aaec6000 r--p 00002000 08:01 4686036                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/io/wait.so
7fb6aaec6000-7fb6aaec7000 r--p 00002000 08:01 4686036                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/io/wait.so
7fb6aaec7000-7fb6aaec8000 rw-p 00003000 08:01 4686036                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/io/wait.so
7fb6aaec8000-7fb6aaeca000 r--p 00000000 08:01 4686111                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/racc/cparse.so
7fb6aaeca000-7fb6aaecd000 r-xp 00002000 08:01 4686111                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/racc/cparse.so
7fb6aaecd000-7fb6aaece000 r--p 00005000 08:01 4686111                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/racc/cparse.so
7fb6aaece000-7fb6aaecf000 r--p 00005000 08:01 4686111                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/racc/cparse.so
7fb6aaecf000-7fb6aaed0000 rw-p 00006000 08:01 4686111                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/racc/cparse.so
7fb6aaed0000-7fb6ab000000 rw-p 00000000 00:00 0 
7fb6ab004000-7fb6ab006000 r--p 00000000 08:01 4686115                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/stringio.so
7fb6ab006000-7fb6ab00b000 r-xp 00002000 08:01 4686115                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/stringio.so
7fb6ab00b000-7fb6ab00d000 r--p 00007000 08:01 4686115                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/stringio.so
7fb6ab00d000-7fb6ab00e000 r--p 00008000 08:01 4686115                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/stringio.so
7fb6ab00e000-7fb6ab00f000 rw-p 00009000 08:01 4686115                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/stringio.so
7fb6ab00f000-7fb6ab010000 ---p 00000000 00:00 0 
7fb6ab010000-7fb6ab240000 rw-p 00000000 00:00 0 
7fb6ab240000-7fb6ab241000 r--p 00000000 08:01 4686041                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/cgi/escape.so
7fb6ab241000-7fb6ab243000 r-xp 00001000 08:01 4686041                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/cgi/escape.so
7fb6ab243000-7fb6ab244000 r--p 00003000 08:01 4686041                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/cgi/escape.so
7fb6ab244000-7fb6ab245000 r--p 00003000 08:01 4686041                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/cgi/escape.so
7fb6ab245000-7fb6ab246000 rw-p 00004000 08:01 4686041                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/cgi/escape.so
7fb6ab246000-7fb6ab248000 r--p 00000000 08:01 4686131                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/pty.so
7fb6ab248000-7fb6ab24a000 r-xp 00002000 08:01 4686131                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/pty.so
7fb6ab24a000-7fb6ab24b000 r--p 00004000 08:01 4686131                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/pty.so
7fb6ab24b000-7fb6ab24c000 r--p 00004000 08:01 4686131                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/pty.so
7fb6ab24c000-7fb6ab24d000 rw-p 00005000 08:01 4686131                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/pty.so
7fb6ab24d000-7fb6ab253000 r--p 00000000 08:01 4686121                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/socket.so
7fb6ab253000-7fb6ab276000 r-xp 00006000 08:01 4686121                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/socket.so
7fb6ab276000-7fb6ab27e000 r--p 00029000 08:01 4686121                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/socket.so
7fb6ab27e000-7fb6ab27f000 r--p 00030000 08:01 4686121                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/socket.so
7fb6ab27f000-7fb6ab280000 rw-p 00031000 08:01 4686121                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/socket.so
7fb6ab280000-7fb6ab320000 rw-p 00000000 00:00 0 
7fb6ab324000-7fb6ab326000 r--p 00000000 08:01 4686120                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/pathname.so
7fb6ab326000-7fb6ab32c000 r-xp 00002000 08:01 4686120                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/pathname.so
7fb6ab32c000-7fb6ab32e000 r--p 00008000 08:01 4686120                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/pathname.so
7fb6ab32e000-7fb6ab32f000 r--p 00009000 08:01 4686120                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/pathname.so
7fb6ab32f000-7fb6ab330000 rw-p 0000a000 08:01 4686120                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/pathname.so
7fb6ab330000-7fb6ab410000 rw-p 00000000 00:00 0 
7fb6ab410000-7fb6ab411000 ---p 00000000 00:00 0 
7fb6ab411000-7fb6ab4b2000 rw-p 00000000 00:00 0 
7fb6ab4b2000-7fb6ab4b3000 ---p 00000000 00:00 0 
7fb6ab4b3000-7fb6ab554000 rw-p 00000000 00:00 0 
7fb6ab554000-7fb6ab555000 ---p 00000000 00:00 0 
7fb6ab555000-7fb6ab5f6000 rw-p 00000000 00:00 0 
7fb6ab5f6000-7fb6ab5f7000 ---p 00000000 00:00 0 
7fb6ab5f7000-7fb6ab698000 rw-p 00000000 00:00 0 
7fb6ab698000-7fb6ab699000 ---p 00000000 00:00 0 
7fb6ab699000-7fb6ab73a000 rw-p 00000000 00:00 0 
7fb6ab73a000-7fb6ab73b000 ---p 00000000 00:00 0 
7fb6ab73b000-7fb6ab7dc000 rw-p 00000000 00:00 0 
7fb6ab7dc000-7fb6ab7dd000 ---p 00000000 00:00 0 
7fb6ab7dd000-7fb6ab87e000 rw-p 00000000 00:00 0 
7fb6ab87e000-7fb6ab87f000 ---p 00000000 00:00 0 
7fb6ab87f000-7fb6ab920000 rw-p 00000000 00:00 0 
7fb6ab920000-7fb6ab921000 ---p 00000000 00:00 0 
7fb6ab921000-7fb6ab9c2000 rw-p 00000000 00:00 0 
7fb6ab9c2000-7fb6ab9c3000 ---p 00000000 00:00 0 
7fb6ab9c3000-7fb6aba64000 rw-p 00000000 00:00 0 
7fb6aba64000-7fb6aba65000 ---p 00000000 00:00 0 
7fb6aba65000-7fb6abb06000 rw-p 00000000 00:00 0 
7fb6abb06000-7fb6abb07000 ---p 00000000 00:00 0 
7fb6abb07000-7fb6abba8000 rw-p 00000000 00:00 0 
7fb6abba8000-7fb6abba9000 ---p 00000000 00:00 0 
7fb6abba9000-7fb6abc4a000 rw-p 00000000 00:00 0 
7fb6abc4a000-7fb6abc4b000 ---p 00000000 00:00 0 
7fb6abc4b000-7fb6abcec000 rw-p 00000000 00:00 0 
7fb6abcec000-7fb6abced000 ---p 00000000 00:00 0 
7fb6abced000-7fb6abd8e000 rw-p 00000000 00:00 0 
7fb6abd8e000-7fb6abd8f000 ---p 00000000 00:00 0 
7fb6abd8f000-7fb6abe30000 rw-p 00000000 00:00 0 
7fb6abe30000-7fb6abe31000 ---p 00000000 00:00 0 
7fb6abe31000-7fb6abed2000 rw-p 00000000 00:00 0 
7fb6abed2000-7fb6abed3000 ---p 00000000 00:00 0 
7fb6abed3000-7fb6abf74000 rw-p 00000000 00:00 0 
7fb6abf74000-7fb6abf75000 ---p 00000000 00:00 0 
7fb6abf75000-7fb6ac016000 rw-p 00000000 00:00 0 
7fb6ac016000-7fb6ac017000 ---p 00000000 00:00 0 
7fb6ac017000-7fb6ac0b8000 rw-p 00000000 00:00 0 
7fb6ac0b8000-7fb6ac0b9000 ---p 00000000 00:00 0 
7fb6ac0b9000-7fb6ac15a000 rw-p 00000000 00:00 0 
7fb6ac15a000-7fb6ac15b000 ---p 00000000 00:00 0 
7fb6ac15b000-7fb6ac1fc000 rw-p 00000000 00:00 0 
7fb6ac1fc000-7fb6ac1fd000 ---p 00000000 00:00 0 
7fb6ac1fd000-7fb6ac29e000 rw-p 00000000 00:00 0 
7fb6ac29e000-7fb6ac29f000 ---p 00000000 00:00 0 
7fb6ac29f000-7fb6ac340000 rw-p 00000000 00:00 0 
7fb6ac340000-7fb6ac341000 ---p 00000000 00:00 0 
7fb6ac341000-7fb6ac3e2000 rw-p 00000000 00:00 0 
7fb6ac3e2000-7fb6ac3e3000 ---p 00000000 00:00 0 
7fb6ac3e3000-7fb6ac484000 rw-p 00000000 00:00 0 
7fb6ac484000-7fb6ac485000 ---p 00000000 00:00 0 
7fb6ac485000-7fb6ac526000 rw-p 00000000 00:00 0 
7fb6ac526000-7fb6ac527000 ---p 00000000 00:00 0 
7fb6ac527000-7fb6ac5c8000 rw-p 00000000 00:00 0 
7fb6ac5c8000-7fb6ac5c9000 ---p 00000000 00:00 0 
7fb6ac5c9000-7fb6ac66a000 rw-p 00000000 00:00 0 
7fb6ac66a000-7fb6ac66b000 ---p 00000000 00:00 0 
7fb6ac66b000-7fb6ac70c000 rw-p 00000000 00:00 0 
7fb6ac70c000-7fb6ac70d000 ---p 00000000 00:00 0 
7fb6ac70d000-7fb6ac7ae000 rw-p 00000000 00:00 0 
7fb6ac7ae000-7fb6ac7af000 ---p 00000000 00:00 0 
7fb6ac7af000-7fb6ac880000 rw-p 00000000 00:00 0 
7fb6ac881000-7fb6ac882000 r--p 00000000 08:01 4686109                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/monitor.so
7fb6ac882000-7fb6ac883000 r-xp 00001000 08:01 4686109                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/monitor.so
7fb6ac883000-7fb6ac884000 r--p 00002000 08:01 4686109                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/monitor.so
7fb6ac884000-7fb6ac885000 r--p 00002000 08:01 4686109                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/monitor.so
7fb6ac885000-7fb6ac886000 rw-p 00003000 08:01 4686109                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/monitor.so
7fb6ac886000-7fb6af88f000 rw-p 00000000 00:00 0 
7fb6af890000-7fb6af893000 r--p 00000000 08:01 4686112                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/psych.so
7fb6af893000-7fb6af897000 r-xp 00003000 08:01 4686112                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/psych.so
7fb6af897000-7fb6af898000 r--p 00007000 08:01 4686112                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/psych.so
7fb6af898000-7fb6af899000 r--p 00007000 08:01 4686112                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/psych.so
7fb6af899000-7fb6af89a000 rw-p 00008000 08:01 4686112                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/psych.so
7fb6af89a000-7fb6af89b000 r--p 00000000 08:01 1375015                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/bootsnap.so
7fb6af89b000-7fb6af89d000 r-xp 00001000 08:01 1375015                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/bootsnap.so
7fb6af89d000-7fb6af89e000 r--p 00003000 08:01 1375015                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/bootsnap.so
7fb6af89e000-7fb6af89f000 r--p 00003000 08:01 1375015                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/bootsnap.so
7fb6af89f000-7fb6af8a0000 rw-p 00004000 08:01 1375015                    /home/runner/work/foo/foo/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/bootsnap.so
7fb6af8a0000-7fb6af950000 rw-p 00000000 00:00 0 
7fb6af953000-7fb6af954000 r--p 00000000 08:01 4686068                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/enc/trans/transdb.so
7fb6af954000-7fb6af955000 r-xp 00001000 08:01 4686068                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/enc/trans/transdb.so
7fb6af955000-7fb6af956000 r--p 00002000 08:01 4686068                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/enc/trans/transdb.so
7fb6af956000-7fb6af957000 r--p 00002000 08:01 4686068                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/enc/trans/transdb.so
7fb6af957000-7fb6af958000 rw-p 00003000 08:01 4686068                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/enc/trans/transdb.so
7fb6af958000-7fb6afa59000 rw-p 00000000 00:00 0 
7fb6afa59000-7fb6afab0000 r--p 00000000 08:01 6118                       /usr/lib/locale/C.utf8/LC_CTYPE
7fb6afab0000-7fb6afd99000 r--p 00000000 08:01 6127                       /usr/lib/locale/locale-archive
7fb6afd99000-7fb6afd9b000 rw-p 00000000 00:00 0 
7fb6afd9b000-7fb6afd9e000 r--p 00000000 08:01 4962                       /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7fb6afd9e000-7fb6afdb5000 r-xp 00003000 08:01 4962                       /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7fb6afdb5000-7fb6afdb9000 r--p 0001a000 08:01 4962                       /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7fb6afdb9000-7fb6afdba000 r--p 0001d000 08:01 4962                       /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7fb6afdba000-7fb6afdbb000 rw-p 0001e000 08:01 4962                       /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
7fb6afdbb000-7fb6afde3000 r--p 00000000 08:01 4966                       /usr/lib/x86_64-linux-gnu/libc.so.6
7fb6afde3000-7fb6aff78000 r-xp 00028000 08:01 4966                       /usr/lib/x86_64-linux-gnu/libc.so.6
7fb6aff78000-7fb6affd0000 r--p 001bd000 08:01 4966                       /usr/lib/x86_64-linux-gnu/libc.so.6
7fb6affd0000-7fb6affd4000 r--p 00214000 08:01 4966                       /usr/lib/x86_64-linux-gnu/libc.so.6
7fb6affd4000-7fb6affd6000 rw-p 00218000 08:01 4966                       /usr/lib/x86_64-linux-gnu/libc.so.6
7fb6affd6000-7fb6affe5000 rw-p 00000000 00:00 0 
7fb6affe5000-7fb6afff3000 r--p 00000000 08:01 4969                       /usr/lib/x86_64-linux-gnu/libm.so.6
7fb6afff3000-7fb6b006f000 r-xp 0000e000 08:01 4969                       /usr/lib/x86_64-linux-gnu/libm.so.6
7fb6b006f000-7fb6b00ca000 r--p 0008a000 08:01 4969                       /usr/lib/x86_64-linux-gnu/libm.so.6
7fb6b00ca000-7fb6b00cb000 r--p 000e4000 08:01 4969                       /usr/lib/x86_64-linux-gnu/libm.so.6
7fb6b00cb000-7fb6b00cc000 rw-p 000e5000 08:01 4969                       /usr/lib/x86_64-linux-gnu/libm.so.6
7fb6b00cc000-7fb6b00ce000 r--p 00000000 08:01 3568                       /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
7fb6b00ce000-7fb6b00e2000 r-xp 00002000 08:01 3568                       /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
7fb6b00e2000-7fb6b00fb000 r--p 00016000 08:01 3568                       /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
7fb6b00fb000-7fb6b00fc000 ---p 0002f000 08:01 3568                       /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
7fb6b00fc000-7fb6b00fd000 r--p 0002f000 08:01 3568                       /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
7fb6b00fd000-7fb6b00fe000 rw-p 00030000 08:01 3568                       /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
7fb6b00fe000-7fb6b0106000 rw-p 00000000 00:00 0 
7fb6b0106000-7fb6b0110000 r--p 00000000 08:01 3575                       /usr/lib/x86_64-linux-gnu/libgmp.so.10.4.1
7fb6b0110000-7fb6b016f000 r-xp 0000a000 08:01 3575                       /usr/lib/x86_64-linux-gnu/libgmp.so.10.4.1
7fb6b016f000-7fb6b0186000 r--p 00069000 08:01 3575                       /usr/lib/x86_64-linux-gnu/libgmp.so.10.4.1
7fb6b0186000-7fb6b0187000 r--p 0007f000 08:01 3575                       /usr/lib/x86_64-linux-gnu/libgmp.so.10.4.1
7fb6b0187000-7fb6b0188000 rw-p 00080000 08:01 3575                       /usr/lib/x86_64-linux-gnu/libgmp.so.10.4.1
7fb6b0188000-7fb6b018a000 r--p 00000000 08:01 3935                       /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
7fb6b018a000-7fb6b019b000 r-xp 00002000 08:01 3935                       /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
7fb6b019b000-7fb6b01a1000 r--p 00013000 08:01 3935                       /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
7fb6b01a1000-7fb6b01a2000 ---p 00019000 08:01 3935                       /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
7fb6b01a2000-7fb6b01a3000 r--p 00019000 08:01 3935                       /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
7fb6b01a3000-7fb6b01a4000 rw-p 0001a000 08:01 3935                       /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
7fb6b01a4000-7fb6b01a5000 r--p 00000000 08:01 4686075                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/enc/encdb.so
7fb6b01a5000-7fb6b01a6000 r-xp 00001000 08:01 4686075                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/enc/encdb.so
7fb6b01a6000-7fb6b01a7000 r--p 00002000 08:01 4686075                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/enc/encdb.so
7fb6b01a7000-7fb6b01a8000 r--p 00002000 08:01 4686075                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/enc/encdb.so
7fb6b01a8000-7fb6b01a9000 rw-p 00003000 08:01 4686075                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/ruby/3.2.0/x86_64-linux/enc/encdb.so
7fb6b01a9000-7fb6b01b0000 r--s 00000000 08:01 3841                       /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7fb6b01b0000-7fb6b0254000 r--p 00000000 08:01 4683870                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2.0
7fb6b0254000-7fb6b0629000 r-xp 000a4000 08:01 4683870                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2.0
7fb6b0629000-7fb6b07cc000 r--p 00479000 08:01 4683870                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2.0
7fb6b07cc000-7fb6b07cd000 ---p 0061c000 08:01 4683870                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2.0
7fb6b07cd000-7fb6b07e8000 r--p 0061c000 08:01 4683870                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2.0
7fb6b07e8000-7fb6b07ec000 rw-p 00637000 08:01 4683870                    /opt/hostedtoolcache/Ruby/3.2.0/x64/lib/libruby.so.3.2.0
7fb6b07ec000-7fb6b0801000 rw-p 00000000 00:00 0 
7fb6b0801000-7fb6b0803000 r--p 00000000 08:01 4960                       /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7fb6b0803000-7fb6b082d000 r-xp 00002000 08:01 4960                       /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7fb6b082d000-7fb6b0838000 r--p 0002c000 08:01 4960                       /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7fb6b0839000-7fb6b083b000 r--p 00037000 08:01 4960                       /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7fb6b083b000-7fb6b083d000 rw-p 00039000 08:01 4960                       /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7ffef1a19000-7ffef2a18000 rw-p 00000000 00:00 0                          [stack]
7ffef2bb3000-7ffef2bb7000 r--p 00000000 00:00 0                          [vvar]
7ffef2bb7000-7ffef2bb9000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0                  [vsyscall]

@casperisfine
Copy link
Contributor

Thank you for the full crash report, one thing though, are you sure bootsnap has anything to do with it?

From the report it crashes in GC (like I suspected) when GC triggers inside the File.directory? method. COuld you try disabling bootsnap (DISABLE_BOOTSNAP=1 ) to see if you can repro it?

I'll open the bug report upstream.

@casperisfine
Copy link
Contributor

Actually, File.directory? is innocent here, if crash when marking an "ibf_dump" object. So relatively likely to be triggered by bootsnap.

@casperisfine
Copy link
Contributor

Report submitted upstream: https://bugs.ruby-lang.org/issues/19419

@beauraF
Copy link

beauraF commented Feb 7, 2023

@casperisfine we are facing the exact same issue since our upgrade to ruby 3.2. Mostly in Github Actions also, but I have some reports from devs that have it locally. It's flaky but happens a lot. Disabling bootsnap fix the issue.

Also, it's maybe something else, but sounds really linked, when we don't have this error, we have this one:

#67 9.710 NoMethodError: undefined method `new' for #<Seahorse::Model::Shapes::StructureShape:0x00007fd08f0896b8 @members={}, @members_by_location_name={}, @required=#<Set: {}>, @metadata={}, @name="ValidStorageOptions">
#67 9.710 /usr/local/bundle/gems/aws-sdk-rds-1.171.0/lib/aws-sdk-rds/client_api.rb:3615:in `<module:ClientApi>'
#67 9.710 /usr/local/bundle/gems/aws-sdk-rds-1.171.0/lib/aws-sdk-rds/client_api.rb:12:in `<module:RDS>'
#67 9.710 /usr/local/bundle/gems/aws-sdk-rds-1.171.0/lib/aws-sdk-rds/client_api.rb:10:in `<main>'
#67 9.710 /usr/local/bundle/gems/aws-sdk-rds-1.171.0/lib/aws-sdk-rds.rb:15:in `require_relative'
#67 9.710 /usr/local/bundle/gems/aws-sdk-rds-1.171.0/lib/aws-sdk-rds.rb:15:in `<main>'
#67 9.710 /usr/local/bundle/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
#67 9.710 /usr/local/bundle/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
#67 9.710 /app/config/application.rb:26:in `block in <main>'
#67 9.710 /app/lib/dev_tools/telemetry/tracing.rb:20:in `trace'
#67 9.710 /app/config/application.rb:5:in `<main>'
#67 9.710 /app/Rakefile:11:in `require_relative'
#67 9.710 /app/Rakefile:11:in `<main>'
#67 9.710 /usr/local/bundle/gems/railties-7.0.4.2/lib/rails/commands/rake/rake_command.rb:20:in `block in perform'
#67 9.710 /usr/local/bundle/gems/railties-7.0.4.2/lib/rails/commands/rake/rake_command.rb:18:in `perform'
#67 9.710 /usr/local/bundle/gems/railties-7.0.4.2/lib/rails/command.rb:51:in `invoke'
#67 9.710 /usr/local/bundle/gems/railties-7.0.4.2/lib/rails/commands.rb:18:in `<main>'
#67 9.710 /usr/local/bundle/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
#67 9.710 /usr/local/bundle/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
#67 9.710 bin/rails:6:in `<main>'

I can't reproduce either. But I can try to contact some devs that have the issue locally. What would interest you the most?

@casperisfine
Copy link
Contributor

but sounds really linked, when we don't have this error, we have this one:

Yes. What is happening is that one reference isn't properly marked, so when gc trigger the slot is recycled. If the slot is empty you'll get that T_NONE error, but if it's used by another object you can get weird NoMethodError like yours.

At this stage what could help:

  • A core dump, to be able to inspect the heap state.
  • A crash report with the C Level Backtrace but with gc.stress = true. This is very slow, but would properly pinpoint where the bug is.

@alejandroperea
Copy link

alejandroperea commented Feb 7, 2023

I have the same error:

rails aborted!
NotImplementedError: ibf_dump_object_unsupported: 0x00007f63b049fd98 [0      ] T_NONE
/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:42:in `to_binary'
/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:42:in `input_to_storage'
/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:60:in `fetch'
/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:60:in `fetch'
/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:85:in `load_iseq'
/bundle/ruby/3.2.0/gems/aws-sdk-cognitoidentityprovider-1.73.0/lib/aws-sdk-cognitoidentityprovider.rb:15:in `require_relative'
/bundle/ruby/3.2.0/gems/aws-sdk-cognitoidentityprovider-1.73.0/lib/aws-sdk-cognitoidentityprovider.rb:15:in `<main>'
/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/app/config/application.rb:20:in `<main>'

I can see kind of a pattern. In our case the backtrace shows that it comes from aws-sdk-cognitoidentityprovider. In the original report of this issue it came from aws-sdk-ec2, and in the previous report it came from aws-sdk-rds, all of them AWS related gems.

In addition, it is not happening always. We are using kubernetes for starting a bunch of pods and it is failing some times, we haven't found a way to reproduce it always.

@tisba
Copy link
Author

tisba commented Feb 7, 2023

In our project's Ruby 3.2.0 update branch, it fails currently about ~10-20% of the time - that's just way too unwieldy in this setup. I tried to load aws-sdk-ec2 with GC.stress = true, but that truly takes FOREVER. I'll try to take some time later to figure out a more manageable case in hopes to be able to reproduce it more reliably.

/cc @casperisfine

@XrXr
Copy link
Contributor

XrXr commented Feb 7, 2023

If you're setup to build Ruby with patches, try applying the following against Ruby 3.2.0:

diff --git a/compile.c b/compile.c
index f252339ee5..5a9ad9d6cc 100644
--- a/compile.c
+++ b/compile.c
@@ -13062,7 +13062,7 @@ ibf_dump_memsize(const void *ptr)
 static const rb_data_type_t ibf_dump_type = {
     "ibf_dump",
     {ibf_dump_mark, ibf_dump_free, ibf_dump_memsize,},
-    0, 0, RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_FREE_IMMEDIATELY
+    0, 0, RUBY_TYPED_FREE_IMMEDIATELY
 };
 
 static void

If the patched version does not crash, it confirms an explanation for the bug.

@tisba
Copy link
Author

tisba commented Feb 13, 2023

There has been a change in Ruby 3.2.1 in compile.c ruby/ruby@v3_2_0...v3_2_1#diff-a5ba41b51e3655f9f244362a616282b5119d3e15dd6c52ee999bbdfcc5b86a77. Not sure if that is related to this issue here.

At first it looked like the initial issue (NotImplementedError) is gone with 3.2.1, but after a few more tests, I am again seeing this exact issue with 3.2.1 (both on aarch64 and x86 if that helps).

The crash (#436 (comment)) however I do see with quite a bit lower frequency.

@casperisfine
Copy link
Contributor

casperisfine commented Feb 13, 2023

The change in compile.c is unrelated, this bug wasn't known of ruby-core until you brought it up here.

@tisba did you have the chance to try Alan's patch? Or any other information you could share for us to be able to reproduce? Your Gemfile and Gemfile.lock perhaps?

@tisba
Copy link
Author

tisba commented Feb 13, 2023

Unfortunately I don't have a ready to use setup to compile Ruby with patches (and lacking the time to research and set it up).

I just spend some time this morning to try it again. I can't reliably reproduce the crash ([BUG] try to mark T_NONE object), but the iseq.rb:42:in 'to_binary': ibf_dump_object_unsupported: 0x0000ffffa1fb87d0 [0 ] T_NONE (NotImplementedError) can be triggered very reliably for me now.

I created a repo: https://github.com/tisba/bootsnap-ruby-crash using Docker and a minimal Gemfile:

  • on aarch64-linux (via Docker, see README in the repo) I can get it to produce NotImplementedError reliably.
  • on arm64-darwin22 I can't get it to cause the exception at all, by basically doing the same thing, removing the bootsnap cache and run ruby crash.rb.

I can later test this on x86-linux. Update: x86_64-linux (Docker on Intel Mac) and x86_64-darwin21 looks pretty much the same in terms of reproducibility.

One observation that might be relevant: If I remove nokogiri from the Gemfile, it works without NotImplementedError. AFAIL the aws-sdk-ec2 tries to requires nokogiri at some point, but can continue when it fails (the generated code is a mess, haven't fully understood how that works yet).

@casperisfine
Copy link
Contributor

Interesting, so I'm able to repro with your docker image on an M1.

I tried the same on our CI infra, so x86_64-linux, but without luck. I'll keep digging.

@tisba
Copy link
Author

tisba commented Feb 13, 2023

I tried the same on our CI infra, so x86_64-linux, but without luck. I'll keep digging.

I get the same results on x86_64-linux (Docker on Intel Mac) 🤔

@casperisfine
Copy link
Contributor

Hum, actually I'm able to repro on macos:

byroot@whipstaff:bootstrap-ruby-crash:(shopify-build-add-test-ruby-crash)$ BOOTSNAP_CACHE_DIR=tmp/ time bundle exec ruby crash.rb 
/Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:42:in `to_binary': ibf_dump_object_unsupported: 0x00000001095affa0 [0      ] T_NONE  (NotImplementedError)
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:42:in `input_to_storage'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:60:in `fetch'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:60:in `fetch'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:85:in `load_iseq'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2.rb:15:in `require_relative'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2.rb:15:in `<main>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from crash.rb:2:in `<main>'
        1.22 real         0.54 user         0.40 sys
byroot@whipstaff:bootstrap-ruby-crash:(shopify-build-add-test-ruby-crash)$ BOOTSNAP_CACHE_DIR=tmp/ time bundle exec ruby crash.rb 
/Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-core-3.170.0/lib/aws-sdk-core/structure.rb:9:in `[]=': no member 'shape' in struct (NameError)

        self[k] = v
            ^^^^^
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-core-3.170.0/lib/aws-sdk-core/structure.rb:9:in `block in initialize'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-core-3.170.0/lib/aws-sdk-core/structure.rb:8:in `each'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-core-3.170.0/lib/aws-sdk-core/structure.rb:8:in `initialize'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2/client_api.rb:8244:in `new'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2/client_api.rb:8244:in `<module:ClientApi>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2/client_api.rb:12:in `<module:EC2>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2/client_api.rb:10:in `<main>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2.rb:15:in `require_relative'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2.rb:15:in `<main>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from crash.rb:2:in `<main>'
        1.14 real         0.55 user         0.38 sys
byroot@whipstaff:bootstrap-ruby-crash:(shopify-build-add-test-ruby-crash)$ BOOTSNAP_CACHE_DIR=tmp/ time bundle exec ruby crash.rb 
/Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:42:in `to_binary': ibf_dump_object_unsupported: 0x0000000108fdffa8 [0      ] T_NONE  (NotImplementedError)
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:42:in `input_to_storage'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:60:in `fetch'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:60:in `fetch'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/compile_cache/iseq.rb:85:in `load_iseq'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2.rb:15:in `require_relative'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2.rb:15:in `<main>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from crash.rb:2:in `<main>'
        0.56 real         0.36 user         0.17 sys

So that makes debugging this easier.

@casperisfine
Copy link
Contributor

Ok, I confirm that @XrXr 's patch does make the issue disappear. So it's indeed a Write Barrier bug.

Now the question is how to track it down. I'll report that finding upstream.

@tisba
Copy link
Author

tisba commented Feb 13, 2023

Could you also confirm that it is related to nokogiri?

@tisba
Copy link
Author

tisba commented Feb 13, 2023

In case it might help: I can't get it to fail on MacOS with ruby 3.2.1 (2023-02-08 revision 31819e82c8) [x86_64-darwin22] or ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-darwin22] (that's Ventura 13.1)

@casperisfine
Copy link
Contributor

I don't think it's related to Nokogiri, if I replace it by rexml in the Gemfile I do get GC issues (a bit different):

$ while true; do \rm -rf tmp; BOOTSNAP_CACHE_DIR=tmp/ time bundle exec ruby crash.rb; done
/Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2/client_api.rb:7254:in `<module:ClientApi>': undefined method `new' for #<Seahorse::Model::Shapes::StringShape:0x0000000106ffd8c0 @metadata={}, @name="String"> (NoMethodError)

    DescribeVerifiedAccessTrustProvidersResult.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
                                                                                       ^^^^
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2/client_api.rb:12:in `<module:EC2>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2/client_api.rb:10:in `<main>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2.rb:15:in `require_relative'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2.rb:15:in `<main>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from crash.rb:2:in `<main>'
        0.97 real         0.55 user         0.31 sys
/Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2/client_api.rb:7247:in `<module:ClientApi>': undefined method `new' for #<Seahorse::Model::Shapes::StringShape:0x000000010bcfd7d8 @metadata={}, @name="String"> (NoMethodError)

    DescribeVerifiedAccessTrustProvidersRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: DescribeVerifiedAccessTrustProvidersMaxResults, location_name: "MaxResults"))
                                                                                         ^^^^
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2/client_api.rb:12:in `<module:EC2>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2/client_api.rb:10:in `<main>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2.rb:15:in `require_relative'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2.rb:15:in `<main>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from crash.rb:2:in `<main>'
        0.87 real         0.54 user         0.27 sys
/Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-core-3.170.0/lib/aws-sdk-core/structure.rb:9:in `[]=': no member 'shape' in struct (NameError)

        self[k] = v
            ^^^^^
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-core-3.170.0/lib/aws-sdk-core/structure.rb:9:in `block in initialize'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-core-3.170.0/lib/aws-sdk-core/structure.rb:8:in `each'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-core-3.170.0/lib/aws-sdk-core/structure.rb:8:in `initialize'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2/client_api.rb:7253:in `new'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2/client_api.rb:7253:in `<module:ClientApi>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2/client_api.rb:12:in `<module:EC2>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2/client_api.rb:10:in `<main>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2.rb:15:in `require_relative'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2.rb:15:in `<main>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from crash.rb:2:in `<main>'
        0.84 real         0.49 user         0.29 sys
/Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2/client_api.rb:7249:in `<module:ClientApi>': undefined method `new' for #<Seahorse::Model::Shapes::StringShape:0x000000011cb3d900 @metadata={}, @name="String"> (NoMethodError)

    DescribeVerifiedAccessTrustProvidersRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
                                                                                     ^^^^
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2/client_api.rb:12:in `<module:EC2>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2/client_api.rb:10:in `<main>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2.rb:15:in `require_relative'
	from /Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2.rb:15:in `<main>'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from /Users/byroot/.gem/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
	from crash.rb:2:in `<main>'
        0.94 real         0.55 user         0.31 sys
/Users/byroot/.gem/ruby/3.2.0/gems/aws-sdk-ec2-1.365.0/lib/aws-sdk-ec2/client_api.rb:7246:in `<module:ClientApi>': undefined method `new' for #<Seahorse::Model::Shapes::StructureShape:0x000000010aa943d0 @members={}, @members_by_location_name={}, @required=#<Set: {}>, @metadata={}, @name="SpotFleetRequestConfig"> (NoMethodError)

@casperisfine
Copy link
Contributor

I tried to review the change to compile.c to see if I could spot where the missing write barrier might be, but there's just too many. I'll see with Alan what the best course of action might be to debug this further.

That being said, ibf_dump objects should be rather short lived, so I'm not sure it's even worth trying to protect them.

XrXr added a commit to XrXr/ruby that referenced this issue Feb 13, 2023
It doesn't have the right write barriers in place. For example, there is

    rb_mark_set(dump->global_buffer.obj_table);

in the mark function, but there is no corresponding write barrier when
adding to the table in the
`ibf_dump_object() -> ibf_table_find_or_insert() -> st_insert()` code path.

To insert write barrier correctly, we need to store the T_STRUCT VALUE
inside `struct ibf_dump`. Instead of doing that, let's just demote it
to WB unproected for correctness. These dumper object are ephemeral so
there is not a huge benefit for having them WB protected.

Users of the bootsnap gem ran into crashes due to this issue:
Shopify/bootsnap#436

Fixes [Bug #19419]
@casperisfine
Copy link
Contributor

Ok, so Alan removed the write barrier and marked the patch as needing a backport, so this should be fixed in Ruby 3.2.2.

Unfortunately there's not much bootsnap can do to work around this bug. On your end you may want to do some dirty hack such as:

GC.disable
require "aws-sdk-ec2"
GC.enable

I'll close this as there isn't much to do now.

XrXr added a commit to ruby/ruby that referenced this issue Feb 13, 2023
It doesn't have the right write barriers in place. For example, there is

    rb_mark_set(dump->global_buffer.obj_table);

in the mark function, but there is no corresponding write barrier when
adding to the table in the
`ibf_dump_object() -> ibf_table_find_or_insert() -> st_insert()` code path.

To insert write barrier correctly, we need to store the T_STRUCT VALUE
inside `struct ibf_dump`. Instead of doing that, let's just demote it
to WB unproected for correctness. These dumper object are ephemeral so
there is not a huge benefit for having them WB protected.

Users of the bootsnap gem ran into crashes due to this issue:
Shopify/bootsnap#436

Fixes [Bug #19419]
@tisba
Copy link
Author

tisba commented Feb 13, 2023

Thanks a lot!

I think in our case, we'll either wait for 3.2.2 to land or disable bootsnap in production. Regarding the workaround: I'm a little worried that in other GC heavy codepaths we might run into an issue as well (unless I misunderstood the underlying issue entirely).

@casperisfine
Copy link
Contributor

I'm a little worried that in other GC heavy codepaths we might run into an issue as well

Well, the good news is that this only happens when loading code from bootsnap, generally speaking that doesn't happen at runtime, so if it crashes, it should only crash on boot. So if that workaround works on your machine, I wouldn't be worried about production.

But yeah, disabling bootsnap ISeq caches (don't have to disable all of bootsnap) is probably the simplest assuming your app is small enough that the boot time isn't too bad.

@tisba
Copy link
Author

tisba commented Feb 13, 2023

ah, okay, thanks for clarification. So testing the workaround to get the cache set up and using BOOTSNAP_READONLY (which we already do in prod) should be relatively safe then.

Disabling the ISeq caches would be an option. The app is not small but the added boot time should be tolerable temporarily.

nurse added a commit to nurse/ruby that referenced this issue Mar 7, 2023
	Remove ibf_dumper's WB_PROTECTED status

	It doesn't have the right write barriers in place. For example, there is

	    rb_mark_set(dump->global_buffer.obj_table);

	in the mark function, but there is no corresponding write barrier when
	adding to the table in the
	`ibf_dump_object() -> ibf_table_find_or_insert() -> st_insert()` code path.

	To insert write barrier correctly, we need to store the T_STRUCT VALUE
	inside `struct ibf_dump`. Instead of doing that, let's just demote it
	to WB unproected for correctness. These dumper object are ephemeral so
	there is not a huge benefit for having them WB protected.

	Users of the bootsnap gem ran into crashes due to this issue:
	Shopify/bootsnap#436

	Fixes [Bug #19419]
	---
	 compile.c | 2 +-
	 1 file changed, 1 insertion(+), 1 deletion(-)
matzbot pushed a commit to ruby/ruby that referenced this issue Mar 21, 2023
	Remove ibf_dumper's WB_PROTECTED status

	It doesn't have the right write barriers in place. For example, there is

	    rb_mark_set(dump->global_buffer.obj_table);

	in the mark function, but there is no corresponding write barrier when
	adding to the table in the
	`ibf_dump_object() -> ibf_table_find_or_insert() -> st_insert()` code path.

	To insert write barrier correctly, we need to store the T_STRUCT VALUE
	inside `struct ibf_dump`. Instead of doing that, let's just demote it
	to WB unproected for correctness. These dumper object are ephemeral so
	there is not a huge benefit for having them WB protected.

	Users of the bootsnap gem ran into crashes due to this issue:
	Shopify/bootsnap#436

	Fixes [Bug #19419]
	---
	 compile.c | 2 +-
	 1 file changed, 1 insertion(+), 1 deletion(-)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants