Project

General

Profile

Actions

Bug #22104

open

Segfault in PRISM while Bootsnap compiles aws-sdk client_api.rb

Bug #22104: Segfault in PRISM while Bootsnap compiles aws-sdk client_api.rb

Added by Morred (Laura Eck) 3 days ago. Updated 3 days ago.

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

Description

I'm seeing intermittent segmentation faults on aarch64-linux when Ruby compiles large auto-generated AWS SDK files, triggered through Bootsnap's ISeq compile cache.

Observed while compiling:

aws-sdk-dynamodb-/lib/aws-sdk-dynamodb/client_api.rb
aws-sdk-rds-
/lib/aws-sdk-rds/client_api.rb

Environment:

ruby 4.0.4 (2026-05-12 revision b89eb1bcbf) +YJIT +PRISM [aarch64-linux]

I'm attaching two full backtraces including C level backtrace information:

Backtrace 1:

/usr/local/bundle/ruby/4.0.0/gems/aws-sdk-dynamodb-1.165.0/lib/aws-sdk-dynamodb/client_api.rb: [BUG] Segmentation fault at 0x0000aaab1cc9e000
ruby 4.0.4 (2026-05-12 revision b89eb1bcbf) +YJIT +PRISM [aarch64-linux]

-- Control frame information -----------------------------------------------
c:0073 p:---- s:0441 e:000440 l:y b:---- DUMMY  [FINISH]
c:0072 p:---- s:0438 e:000437 l:y b:---- CFUNC  :compile_file
c:0071 p:0009 s:0432 e:000431 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/compile_cache/iseq.rb:77 [FINISH]
c:0070 p:---- s:0426 e:000425 l:y b:---- CFUNC  :fetch
c:0069 p:0106 s:0417 e:000416 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/compile_cache/iseq.rb:135
c:0068 p:0008 s:0409 e:000408 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/compile_cache/iseq.rb:166 [FINISH]
c:0067 p:---- s:0403 e:000402 l:y b:---- CFUNC  :require
c:0066 p:0033 s:0398 e:000397 l:n b:---- BLOCK  /usr/local/lib/ruby/4.0.0/bundled_gems.rb:60
c:0065 p:0145 s:0392 e:000391 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33
c:0064 p:0057 s:0383 e:000382 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/core_ext/kernel.rb:34 [FINISH]
c:0063 p:0014 s:0375 e:000373 l:y b:0001 CLASS  /usr/local/bundle/ruby/4.0.0/gems/aws-sdk-dynamodb-1.165.0/lib/aws-sdk-dynamodb/client.rb:61
c:0062 p:0008 s:0371 e:000370 l:y b:0001 CLASS  /usr/local/bundle/ruby/4.0.0/gems/aws-sdk-dynamodb-1.165.0/lib/aws-sdk-dynamodb/client.rb:55
c:0061 p:0193 s:0368 e:000367 l:y b:0001 TOP    /usr/local/bundle/ruby/4.0.0/gems/aws-sdk-dynamodb-1.165.0/lib/aws-sdk-dynamodb/client.rb:42 [FINISH]
c:0060 p:---- s:0365 e:000364 l:y b:---- CFUNC  :require
c:0059 p:0033 s:0360 e:000359 l:n b:---- BLOCK  /usr/local/lib/ruby/4.0.0/bundled_gems.rb:60
c:0058 p:0145 s:0354 e:000353 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33
c:0057 p:0057 s:0345 e:000344 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/core_ext/kernel.rb:34 [FINISH]
c:0056 p:0007 s:0337 e:000336 l:y b:0001 CLASS  /usr/local/bundle/ruby/4.0.0/gems/aws-sdk-dynamodb-1.165.0/lib/aws-sdk-dynamodb/customizations/client.rb:5
c:0055 p:0007 s:0334 e:000333 l:y b:0001 CLASS  /usr/local/bundle/ruby/4.0.0/gems/aws-sdk-dynamodb-1.165.0/lib/aws-sdk-dynamodb/customizations/client.rb:4
c:0054 p:0007 s:0331 e:000330 l:y b:0001 TOP    /usr/local/bundle/ruby/4.0.0/gems/aws-sdk-dynamodb-1.165.0/lib/aws-sdk-dynamodb/customizations/client.rb:3 [FINISH]
c:0053 p:---- s:0328 e:000327 l:y b:---- CFUNC  :require
c:0052 p:0033 s:0323 e:000322 l:n b:---- BLOCK  /usr/local/lib/ruby/4.0.0/bundled_gems.rb:60
c:0051 p:0145 s:0317 e:000316 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33
c:0050 p:0057 s:0308 e:000307 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/core_ext/kernel.rb:34
c:0049 p:0011 s:0300 e:000299 l:y b:0001 TOP    /usr/local/bundle/ruby/4.0.0/gems/aws-sdk-dynamodb-1.165.0/lib/aws-sdk-dynamodb/customizations.rb:4 [FINISH]
c:0048 p:---- s:0297 e:000296 l:y b:---- CFUNC  :require_relative
c:0047 p:0032 s:0292 e:000291 l:y b:0001 TOP    /usr/local/bundle/ruby/4.0.0/gems/aws-sdk-dynamodb-1.165.0/lib/aws-sdk-dynamodb.rb:63 [FINISH]
c:0046 p:---- s:0289 e:000288 l:y b:---- CFUNC  :require
c:0045 p:0033 s:0284 e:000283 l:n b:---- BLOCK  /usr/local/lib/ruby/4.0.0/bundled_gems.rb:60
c:0044 p:0145 s:0278 e:000277 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33
c:0043 p:0057 s:0269 e:000268 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/core_ext/kernel.rb:34
c:0042 p:0005 s:0261 e:000260 l:y b:0001 TOP    /jeancaisse/packs/utils/app/lib/aws/dynamo_d_b.rb:3 [FINISH]
c:0041 p:---- s:0258 e:000257 l:y b:---- CFUNC  :require
c:0040 p:0033 s:0253 e:000252 l:n b:---- BLOCK  /usr/local/lib/ruby/4.0.0/bundled_gems.rb:60
c:0039 p:0145 s:0247 e:000246 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33
c:0038 p:0026 s:0238 e:000237 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/core_ext/kernel.rb:26 [FINISH]
c:0037 p:---- s:0230 e:000229 l:y b:---- CFUNC  :const_get
c:0036 p:0010 s:0224 e:000223 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/cref.rb:62
c:0035 p:0039 s:0220 e:000219 l:n b:---- BLOCK  /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:175
c:0034 p:0063 s:0212 e:000211 l:n b:---- BLOCK  /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/file_system.rb:51 [FINISH]
c:0033 p:0027 s:0206 e:000205 l:y b:0001 METHOD <internal:array>:228
c:0032 p:0020 s:0200 e:000199 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/file_system.rb:40
c:0031 p:0048 s:0191 e:000190 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:170
c:0030 p:0010 s:0180 e:000179 l:n b:---- BLOCK  /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:18 [FINISH]
c:0029 p:---- s:0175 e:000174 l:y b:---- CFUNC  :each
c:0028 p:0032 s:0171 e:000170 l:n b:---- BLOCK  /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:17 [FINISH]
c:0027 p:0018 s:0168 e:000167 l:y b:0001 METHOD <internal:thread_sync>:130
c:0026 p:0006 s:0164 e:000163 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:11
c:0025 p:0005 s:0158 e:000157 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/autoloaders.rb:32
c:0024 p:0009 s:0154 e:000153 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/application.rb:556
c:0023 p:0085 s:0150 e:000149 l:y b:0001 METHOD /jeancaisse/spec/account_copy_e2e_tests.rb:91
c:0022 p:0019 s:0137 e:000136 l:n b:---- BLOCK  /jeancaisse/spec/account_copy_e2e_tests.rb:128
c:0021 p:0006 s:0134 e:000133 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/rspec-mocks-3.13.8/lib/rspec/mocks.rb:96
c:0020 p:0043 s:0129 E:002088 l:y b:0001 TOP    /jeancaisse/spec/account_copy_e2e_tests.rb:127 [FINISH]
c:0019 p:---- s:0125 e:000124 l:y b:---- CFUNC  :load
c:0018 p:0006 s:0120 e:000119 l:n b:---- BLOCK  /usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/commands/runner/runner_command.rb:44
c:0017 p:0015 s:0117 e:000116 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/activesupport-8.1.3/lib/active_support/execution_wrapper.rb:91
c:0016 p:0019 s:0109 e:000108 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/commands/runner/runner_command.rb:70
c:0015 p:0090 s:0102 e:000101 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/commands/runner/runner_command.rb:43
c:0014 p:0054 s:0093 e:000092 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/thor-1.5.0/lib/thor/command.rb:28
c:0013 p:0040 s:0085 e:000084 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/thor-1.5.0/lib/thor/invocation.rb:127
c:0012 p:0032 s:0078 e:000077 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/command/base.rb:176
c:0011 p:0246 s:0071 e:000070 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/thor-1.5.0/lib/thor.rb:538
c:0010 p:0049 s:0058 e:000057 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/command/base.rb:71
c:0009 p:0024 s:0051 e:000050 l:n b:---- BLOCK  /usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/command.rb:65
c:0008 p:0015 s:0048 e:000047 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/command.rb:143
c:0007 p:0048 s:0042 e:000041 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/command.rb:63
c:0006 p:0038 s:0031 e:000030 l:y b:0001 TOP    /usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/commands.rb:18 [FINISH]
c:0005 p:---- s:0026 e:000025 l:y b:---- CFUNC  :require
c:0004 p:0033 s:0021 e:000020 l:n b:---- BLOCK  /usr/local/lib/ruby/4.0.0/bundled_gems.rb:60
c:0003 p:0145 s:0015 e:000014 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33
c:0002 p:0024 s:0006 e:000005 l:n b:---- EVAL   bin/rails:6 [FINISH]
c:0001 p:0000 s:0003 E:0019e0 l:y b:---- DUMMY  [FINISH]

-- Ruby level backtrace information ----------------------------------------
bin/rails:6:in '<main>'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33:in 'require'
/usr/local/lib/ruby/4.0.0/bundled_gems.rb:60:in 'block (2 levels) in replace_require'
/usr/local/lib/ruby/4.0.0/bundled_gems.rb:60:in 'require'
/usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/commands.rb:18:in '<main>'
/usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/command.rb:63:in 'invoke'
/usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/command.rb:143:in 'with_argv'
/usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/command.rb:65:in 'block in invoke'
/usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/command/base.rb:71:in 'perform'
/usr/local/bundle/ruby/4.0.0/gems/thor-1.5.0/lib/thor.rb:538:in 'dispatch'
/usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/command/base.rb:176:in 'invoke_command'
/usr/local/bundle/ruby/4.0.0/gems/thor-1.5.0/lib/thor/invocation.rb:127:in 'invoke_command'
/usr/local/bundle/ruby/4.0.0/gems/thor-1.5.0/lib/thor/command.rb:28:in 'run'
/usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/commands/runner/runner_command.rb:43:in 'perform'
/usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/commands/runner/runner_command.rb:70:in 'conditional_executor'
/usr/local/bundle/ruby/4.0.0/gems/activesupport-8.1.3/lib/active_support/execution_wrapper.rb:91:in 'wrap'
/usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/commands/runner/runner_command.rb:44:in 'block in perform'
/usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/commands/runner/runner_command.rb:44:in 'load'
/jeancaisse/spec/account_copy_e2e_tests.rb:127:in '<main>'
/usr/local/bundle/ruby/4.0.0/gems/rspec-mocks-3.13.8/lib/rspec/mocks.rb:96:in 'with_temporary_scope'
/jeancaisse/spec/account_copy_e2e_tests.rb:128:in 'block in <main>'
/jeancaisse/spec/account_copy_e2e_tests.rb:91:in 'run'
/usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/application.rb:556:in 'eager_load!'
/usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/autoloaders.rb:32:in 'each'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:11:in 'eager_load'
<internal:thread_sync>:130:in 'synchronize'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:17:in 'block in eager_load'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:17:in 'each'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:18:in 'block (2 levels) in eager_load'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:170:in 'actual_eager_load_dir'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/file_system.rb:40:in 'ls'
<internal:array>:228:in 'each'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/file_system.rb:51:in 'block in ls'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:175:in 'block in actual_eager_load_dir'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/cref.rb:62:in 'get'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/cref.rb:62:in 'const_get'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/core_ext/kernel.rb:26:in 'require'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33:in 'require'
/usr/local/lib/ruby/4.0.0/bundled_gems.rb:60:in 'block (2 levels) in replace_require'
/usr/local/lib/ruby/4.0.0/bundled_gems.rb:60:in 'require'
/jeancaisse/packs/utils/app/lib/aws/dynamo_d_b.rb:3:in '<main>'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/core_ext/kernel.rb:34:in 'require'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33:in 'require'
/usr/local/lib/ruby/4.0.0/bundled_gems.rb:60:in 'block (2 levels) in replace_require'
/usr/local/lib/ruby/4.0.0/bundled_gems.rb:60:in 'require'
/usr/local/bundle/ruby/4.0.0/gems/aws-sdk-dynamodb-1.165.0/lib/aws-sdk-dynamodb.rb:63:in '<main>'
/usr/local/bundle/ruby/4.0.0/gems/aws-sdk-dynamodb-1.165.0/lib/aws-sdk-dynamodb.rb:63:in 'require_relative'
/usr/local/bundle/ruby/4.0.0/gems/aws-sdk-dynamodb-1.165.0/lib/aws-sdk-dynamodb/customizations.rb:4:in '<main>'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/core_ext/kernel.rb:34:in 'require'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33:in 'require'
/usr/local/lib/ruby/4.0.0/bundled_gems.rb:60:in 'block (2 levels) in replace_require'
/usr/local/lib/ruby/4.0.0/bundled_gems.rb:60:in 'require'
/usr/local/bundle/ruby/4.0.0/gems/aws-sdk-dynamodb-1.165.0/lib/aws-sdk-dynamodb/customizations/client.rb:3:in '<main>'
/usr/local/bundle/ruby/4.0.0/gems/aws-sdk-dynamodb-1.165.0/lib/aws-sdk-dynamodb/customizations/client.rb:4:in '<module:Aws>'
/usr/local/bundle/ruby/4.0.0/gems/aws-sdk-dynamodb-1.165.0/lib/aws-sdk-dynamodb/customizations/client.rb:5:in '<module:DynamoDB>'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/core_ext/kernel.rb:34:in 'require'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33:in 'require'
/usr/local/lib/ruby/4.0.0/bundled_gems.rb:60:in 'block (2 levels) in replace_require'
/usr/local/lib/ruby/4.0.0/bundled_gems.rb:60:in 'require'
/usr/local/bundle/ruby/4.0.0/gems/aws-sdk-dynamodb-1.165.0/lib/aws-sdk-dynamodb/client.rb:42:in '<main>'
/usr/local/bundle/ruby/4.0.0/gems/aws-sdk-dynamodb-1.165.0/lib/aws-sdk-dynamodb/client.rb:55:in '<module:DynamoDB>'
/usr/local/bundle/ruby/4.0.0/gems/aws-sdk-dynamodb-1.165.0/lib/aws-sdk-dynamodb/client.rb:61:in '<class:Client>'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/core_ext/kernel.rb:34:in 'require'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33:in 'require'
/usr/local/lib/ruby/4.0.0/bundled_gems.rb:60:in 'block (2 levels) in replace_require'
/usr/local/lib/ruby/4.0.0/bundled_gems.rb:60:in 'require'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/compile_cache/iseq.rb:166:in 'load_iseq'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/compile_cache/iseq.rb:135:in 'fetch'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/compile_cache/iseq.rb:135:in 'fetch'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/compile_cache/iseq.rb:77:in 'input_to_storage'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.4/lib/bootsnap/compile_cache/iseq.rb:77:in 'compile_file'

-- Threading information ---------------------------------------------------
Total ractor count: 1
Ruby thread count for this ractor: 3

-- Machine register context ------------------------------------------------
  x0: 0x0415f704e8c1b50c  x1: 0x30e2222405b75990  x2: 0x4cf5ad432745937f
  x3: 0x87c37b91114253d5  x4: 0x0000ffffa33963b0  x5: 0x0000000000000000
  x6: 0x0000aaaaef82a400  x7: 0x0000aaab1c626b50 x18: 0x0000aaaaef82a778
 x19: 0x0000aaab1cc9dff8 x20: 0x0000aaabffa64400 x21: 0x0000ffffde70e050
 x22: 0x0000aaaaef830c20 x23: 0x0000ffffa33d5000 x24: 0x0000ffffa2ed3020
 x25: 0x0000ffffde70e050 x26: 0x0000aaab1c67d480 x27: 0x0000000000000049
 x28: 0x0000000000000001 x29: 0x0000ffffde70dfa0  sp: 0x0000ffffde70dfa0
 fau: 0x0000aaab1cc9e000

-- C level backtrace information -------------------------------------------
/usr/local/lib/libruby.so.4.0(fprintf+0x0) [0xffffa2f123f4] /usr/src/ruby/vm_dump.c:1105
/usr/local/lib/libruby.so.4.0(rb_vm_bugreport) /usr/src/ruby/vm_dump.c:1453
/usr/local/lib/libruby.so.4.0(rb_bug_for_fatal_signal+0xd4) [0xffffa2cddc04] /usr/src/ruby/error.c:1131
/usr/local/lib/libruby.so.4.0(sigsegv+0x58) [0xffffa2e48328] /usr/src/ruby/signal.c:948
linux-vdso.so.1(__kernel_rt_sigreturn+0x0) [0xffffa3424838]
/usr/local/lib/libruby.so.4.0(vm_ci_hash+0x50) [0xffffa2ed3800] /usr/src/ruby/vm_method.c:632
/usr/local/lib/libruby.so.4.0(normalize_hash_value+0x0) [0xffffa2e546a0] /usr/src/ruby/st.c:331
/usr/local/lib/libruby.so.4.0(do_hash) /usr/src/ruby/st.c:332
/usr/local/lib/libruby.so.4.0(rb_st_update) /usr/src/ruby/st.c:1472
/usr/local/lib/libruby.so.4.0(rb_vm_ci_lookup+0xac) [0xffffa2edd038] /usr/src/ruby/vm_method.c:712
/usr/local/lib/libruby.so.4.0(vm_ci_new_+0x4) [0xffffa2c4c208] /usr/src/ruby/vm_callinfo.h:219
/usr/local/lib/libruby.so.4.0(new_callinfo) /usr/src/ruby/compile.c:1486
/usr/local/lib/libruby.so.4.0(new_insn_send+0xfc) [0xffffa2c4e848] /usr/src/ruby/compile.c:1495
/usr/local/lib/libruby.so.4.0(ADD_ELEM+0x0) [0xffffa2c959d0] /usr/src/ruby/prism_compile.c:3789
/usr/local/lib/libruby.so.4.0(pm_compile_call) /usr/src/ruby/prism_compile.c:3789
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x1218) [0xffffa2c83598] /usr/src/ruby/prism_compile.c:8790
/usr/local/lib/libruby.so.4.0(pm_compile_constant_write_node+0x12c) [0xffffa2c91bcc] /usr/src/ruby/prism_compile.c:5809
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x54c) [0xffffa2c828cc] /usr/src/ruby/prism_compile.c:9055
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x3698) [0xffffa2c85a18] /usr/src/ruby/prism_compile.c:10324
/usr/local/lib/libruby.so.4.0(pm_compile_scope_node+0x1b0c) [0xffffa2c9c974] /usr/src/ruby/prism_compile.c:7044
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x1a00) [0xffffa2c83d80] /usr/src/ruby/prism_compile.c:10197
/usr/local/lib/libruby.so.4.0(pm_iseq_compile_node+0x60) [0xffffa2c9e240] /usr/src/ruby/prism_compile.c:10508
/usr/local/lib/libruby.so.4.0(pm_iseq_new_with_opt_try+0x1c) [0xffffa2d576fc] /usr/src/ruby/iseq.c:1105
/usr/local/lib/libruby.so.4.0(rb_protect+0xb8) [0xffffa2ce9d58] /usr/src/ruby/eval.c:1127
/usr/local/lib/libruby.so.4.0(pm_iseq_new_with_opt+0x150) [0xffffa2d50138] /usr/src/ruby/iseq.c:1158
/usr/local/lib/libruby.so.4.0(pm_new_child_iseq+0xb8) [0xffffa2c4a440] /usr/src/ruby/prism_compile.c:1276
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x328c) [0xffffa2c8560c] /usr/src/ruby/prism_compile.c:9869
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x36c8) [0xffffa2c85a48] /usr/src/ruby/prism_compile.c:10326
/usr/local/lib/libruby.so.4.0(pm_compile_scope_node+0x1b0c) [0xffffa2c9c974] /usr/src/ruby/prism_compile.c:7044
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x1a00) [0xffffa2c83d80] /usr/src/ruby/prism_compile.c:10197
/usr/local/lib/libruby.so.4.0(pm_iseq_compile_node+0x60) [0xffffa2c9e240] /usr/src/ruby/prism_compile.c:10508
/usr/local/lib/libruby.so.4.0(pm_iseq_new_with_opt_try+0x1c) [0xffffa2d576fc] /usr/src/ruby/iseq.c:1105
/usr/local/lib/libruby.so.4.0(rb_protect+0xb8) [0xffffa2ce9d58] /usr/src/ruby/eval.c:1127
/usr/local/lib/libruby.so.4.0(pm_iseq_new_with_opt+0x150) [0xffffa2d50138] /usr/src/ruby/iseq.c:1158
/usr/local/lib/libruby.so.4.0(pm_new_child_iseq+0xb8) [0xffffa2c4a440] /usr/src/ruby/prism_compile.c:1276
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x328c) [0xffffa2c8560c] /usr/src/ruby/prism_compile.c:9869
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x36c8) [0xffffa2c85a48] /usr/src/ruby/prism_compile.c:10326
/usr/local/lib/libruby.so.4.0(pm_compile_scope_node+0x1b0c) [0xffffa2c9c974] /usr/src/ruby/prism_compile.c:7044
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x1a00) [0xffffa2c83d80] /usr/src/ruby/prism_compile.c:10197
/usr/local/lib/libruby.so.4.0(APPEND_LIST+0x0) [0xffffa2c9e2b4] /usr/src/ruby/prism_compile.c:10498
/usr/local/lib/libruby.so.4.0(pm_iseq_compile_node) /usr/src/ruby/prism_compile.c:10502
/usr/local/lib/libruby.so.4.0(pm_iseq_new_with_opt_try+0x1c) [0xffffa2d576fc] /usr/src/ruby/iseq.c:1105
/usr/local/lib/libruby.so.4.0(rb_protect+0xb8) [0xffffa2ce9d58] /usr/src/ruby/eval.c:1127
/usr/local/lib/libruby.so.4.0(pm_iseq_new_with_opt+0x150) [0xffffa2d50138] /usr/src/ruby/iseq.c:1158
/usr/local/lib/libruby.so.4.0(iseqw_s_compile_file_prism+0x1c4) [0xffffa2d5076c] /usr/src/ruby/iseq.c:1925
[0xffff602d3254]

Backtrace 2:

/usr/local/bundle/ruby/4.0.0/gems/aws-sdk-rds-1.314.0/lib/aws-sdk-rds/client_api.rb: [BUG] Segmentation fault at 0x0000aaab3c709000
ruby 4.0.4 (2026-05-12 revision b89eb1bcbf) +YJIT +PRISM [aarch64-linux]

-- Control frame information -----------------------------------------------
c:0061 p:---- s:0367 e:000366 l:y b:---- DUMMY  [FINISH]
c:0060 p:---- s:0364 e:000363 l:y b:---- CFUNC  :compile_file
c:0059 p:0009 s:0358 e:000357 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.6/lib/bootsnap/compile_cache/iseq.rb:91 [FINISH]
c:0058 p:---- s:0352 e:000351 l:y b:---- CFUNC  :fetch
c:0057 p:0099 s:0343 e:000342 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.6/lib/bootsnap/compile_cache/iseq.rb:154
c:0056 p:0008 s:0335 e:000334 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.6/lib/bootsnap/compile_cache/iseq.rb:185 [FINISH]
c:0055 p:---- s:0329 e:000328 l:y b:---- CFUNC  :require
c:0054 p:0033 s:0324 e:000323 l:n b:---- BLOCK  /usr/local/lib/ruby/4.0.0/bundled_gems.rb:60
c:0053 p:0145 s:0318 e:000317 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33
c:0052 p:0057 s:0309 e:000308 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/core_ext/kernel.rb:34 [FINISH]
c:0051 p:0014 s:0301 e:000299 l:y b:0001 CLASS  /usr/local/bundle/ruby/4.0.0/gems/aws-sdk-rds-1.314.0/lib/aws-sdk-rds/client.rb:59
c:0050 p:0008 s:0297 e:000296 l:y b:0001 CLASS  /usr/local/bundle/ruby/4.0.0/gems/aws-sdk-rds-1.314.0/lib/aws-sdk-rds/client.rb:53
c:0049 p:0181 s:0294 e:000293 l:y b:0001 TOP    /usr/local/bundle/ruby/4.0.0/gems/aws-sdk-rds-1.314.0/lib/aws-sdk-rds/client.rb:40 [FINISH]
c:0048 p:---- s:0291 e:000290 l:y b:---- CFUNC  :require
c:0047 p:0033 s:0286 e:000285 l:n b:---- BLOCK  /usr/local/lib/ruby/4.0.0/bundled_gems.rb:60
c:0046 p:0145 s:0280 e:000279 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33
c:0045 p:0057 s:0271 e:000270 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/core_ext/kernel.rb:34 [FINISH]
c:0044 p:0017 s:0263 e:000262 l:y b:0001 TOP    /jeancaisse/packs/utils/app/lib/aws/rds.rb:12 [FINISH]
c:0043 p:---- s:0260 e:000259 l:y b:---- CFUNC  :require
c:0042 p:0033 s:0255 e:000254 l:n b:---- BLOCK  /usr/local/lib/ruby/4.0.0/bundled_gems.rb:60
c:0041 p:0145 s:0249 e:000248 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33
c:0040 p:0026 s:0240 e:000239 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/core_ext/kernel.rb:26 [FINISH]
c:0039 p:---- s:0232 e:000231 l:y b:---- CFUNC  :const_get
c:0038 p:0010 s:0226 e:000225 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/cref.rb:62
c:0037 p:0039 s:0222 e:000221 l:n b:---- BLOCK  /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:175
c:0036 p:0063 s:0214 e:000213 l:n b:---- BLOCK  /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/file_system.rb:51 [FINISH]
c:0035 p:0027 s:0208 e:000207 l:y b:0001 METHOD <internal:array>:228
c:0034 p:0020 s:0202 e:000201 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/file_system.rb:40
c:0033 p:0048 s:0193 e:000192 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:170
c:0032 p:0010 s:0182 e:000181 l:n b:---- BLOCK  /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:18 [FINISH]
c:0031 p:---- s:0177 e:000176 l:y b:---- CFUNC  :each
c:0030 p:0032 s:0173 e:000172 l:n b:---- BLOCK  /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:17 [FINISH]
c:0029 p:0018 s:0170 e:000169 l:y b:0001 METHOD <internal:thread_sync>:130
c:0028 p:0006 s:0166 e:000165 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:11
c:0027 p:0005 s:0160 e:000159 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/autoloaders.rb:32
c:0026 p:0009 s:0156 e:000155 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/application.rb:556
c:0025 p:0014 s:0152 e:000151 l:y b:0001 METHOD /jeancaisse/spec/support/eager_load.rb:29
c:0024 p:0132 s:0143 e:000142 l:n b:---- BLOCK  /usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/example_group.rb:273
c:0023 p:0013 s:0132 E:000fa0 l:n b:---- BLOCK  /jeancaisse/spec/config/initializers/0_custom_load_hooks_spec.rb:8 [FINISH]
c:0022 p:---- s:0129 e:000128 l:y b:---- CFUNC  :module_exec
c:0021 p:0047 s:0125 e:000124 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/example_group.rb:405
c:0020 p:0012 s:0115 e:000114 l:n b:---- BLOCK  /jeancaisse/spec/support/eager_load.rb:30
c:0019 p:0023 s:0112 e:000111 l:y b:0001 METHOD /jeancaisse/spec/support/eager_load.rb:10
c:0018 p:0020 s:0107 e:000106 l:y b:0001 METHOD /jeancaisse/spec/support/eager_load.rb:30
c:0017 p:0132 s:0098 e:000097 l:n b:---- BLOCK  /usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/example_group.rb:273
c:0016 p:0013 s:0087 e:000086 l:n b:---- BLOCK  /usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/dsl.rb:43
c:0015 p:0014 s:0080 e:000079 l:n b:---- BLOCK  /usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/dsl.rb:84
c:0014 p:0006 s:0074 E:000aa0 l:y b:0001 TOP    /jeancaisse/spec/config/initializers/0_custom_load_hooks_spec.rb:3 [FINISH]
c:0013 p:---- s:0071 e:000070 l:y b:---- CFUNC  :load
c:0012 p:0007 s:0066 e:000065 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/configuration.rb:2144
c:0011 p:0015 s:0057 e:000056 l:n b:---- BLOCK  /usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/configuration.rb:1643 [FINISH]
c:0010 p:0027 s:0052 e:000051 l:y b:0001 METHOD <internal:array>:228
c:0009 p:0017 s:0046 e:000045 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/configuration.rb:1641
c:0008 p:0029 s:0042 e:000041 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/runner.rb:102
c:0007 p:0007 s:0036 e:000035 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/runner.rb:86
c:0006 p:0080 s:0030 e:000029 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/runner.rb:71
c:0005 p:0013 s:0022 e:000021 l:y b:0001 METHOD /usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/runner.rb:45
c:0004 p:0010 s:0017 e:000016 l:y b:0001 TOP    /usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/exe/rspec:4 [FINISH]
c:0003 p:---- s:0014 e:000013 l:y b:---- CFUNC  :load
c:0002 p:0301 s:0009 E:002438 l:n b:---- EVAL   bin/rspec:59 [FINISH]
c:0001 p:0000 s:0003 E:001170 l:y b:---- DUMMY  [FINISH]

-- Ruby level backtrace information ----------------------------------------
bin/rspec:59:in '<main>'
bin/rspec:59:in 'load'
/usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/exe/rspec:4:in '<top (required)>'
/usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/runner.rb:45:in 'invoke'
/usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/runner.rb:71:in 'run'
/usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/runner.rb:86:in 'run'
/usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/runner.rb:102:in 'setup'
/usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/configuration.rb:1641:in 'load_spec_files'
<internal:array>:228:in 'each'
/usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/configuration.rb:1643:in 'block in load_spec_files'
/usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/configuration.rb:2144:in 'load_file_handling_errors'
/usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/configuration.rb:2144:in 'load'
/jeancaisse/spec/config/initializers/0_custom_load_hooks_spec.rb:3:in '<main>'
/usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/dsl.rb:84:in 'block (2 levels) in expose_example_group_alias_globally'
/usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/dsl.rb:43:in 'block in expose_example_group_alias'
/usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/example_group.rb:273:in 'block in define_example_group_method'
/jeancaisse/spec/support/eager_load.rb:30:in 'subclass'
/jeancaisse/spec/support/eager_load.rb:10:in 'within_eager_load_example_group'
/jeancaisse/spec/support/eager_load.rb:30:in 'block in subclass'
/usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/example_group.rb:405:in 'subclass'
/usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/example_group.rb:405:in 'module_exec'
/jeancaisse/spec/config/initializers/0_custom_load_hooks_spec.rb:8:in 'block in <main>'
/usr/local/bundle/ruby/4.0.0/gems/rspec-core-3.13.6/lib/rspec/core/example_group.rb:273:in 'block in define_example_group_method'
/jeancaisse/spec/support/eager_load.rb:29:in 'subclass'
/usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/application.rb:556:in 'eager_load!'
/usr/local/bundle/ruby/4.0.0/gems/railties-8.1.3/lib/rails/autoloaders.rb:32:in 'each'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:11:in 'eager_load'
<internal:thread_sync>:130:in 'synchronize'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:17:in 'block in eager_load'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:17:in 'each'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:18:in 'block (2 levels) in eager_load'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:170:in 'actual_eager_load_dir'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/file_system.rb:40:in 'ls'
<internal:array>:228:in 'each'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/file_system.rb:51:in 'block in ls'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/loader/eager_load.rb:175:in 'block in actual_eager_load_dir'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/cref.rb:62:in 'get'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/cref.rb:62:in 'const_get'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/core_ext/kernel.rb:26:in 'require'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33:in 'require'
/usr/local/lib/ruby/4.0.0/bundled_gems.rb:60:in 'block (2 levels) in replace_require'
/usr/local/lib/ruby/4.0.0/bundled_gems.rb:60:in 'require'
/jeancaisse/packs/utils/app/lib/aws/rds.rb:12:in '<main>'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/core_ext/kernel.rb:34:in 'require'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33:in 'require'
/usr/local/lib/ruby/4.0.0/bundled_gems.rb:60:in 'block (2 levels) in replace_require'
/usr/local/lib/ruby/4.0.0/bundled_gems.rb:60:in 'require'
/usr/local/bundle/ruby/4.0.0/gems/aws-sdk-rds-1.314.0/lib/aws-sdk-rds/client.rb:40:in '<main>'
/usr/local/bundle/ruby/4.0.0/gems/aws-sdk-rds-1.314.0/lib/aws-sdk-rds/client.rb:53:in '<module:RDS>'
/usr/local/bundle/ruby/4.0.0/gems/aws-sdk-rds-1.314.0/lib/aws-sdk-rds/client.rb:59:in '<class:Client>'
/usr/local/bundle/ruby/4.0.0/gems/zeitwerk-2.8.0/lib/zeitwerk/core_ext/kernel.rb:34:in 'require'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:33:in 'require'
/usr/local/lib/ruby/4.0.0/bundled_gems.rb:60:in 'block (2 levels) in replace_require'
/usr/local/lib/ruby/4.0.0/bundled_gems.rb:60:in 'require'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.6/lib/bootsnap/compile_cache/iseq.rb:185:in 'load_iseq'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.6/lib/bootsnap/compile_cache/iseq.rb:154:in 'fetch'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.6/lib/bootsnap/compile_cache/iseq.rb:154:in 'fetch'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.6/lib/bootsnap/compile_cache/iseq.rb:91:in 'input_to_storage'
/usr/local/bundle/ruby/4.0.0/gems/bootsnap-1.24.6/lib/bootsnap/compile_cache/iseq.rb:91:in 'compile_file'

-- Threading information ---------------------------------------------------
Total ractor count: 1
Ruby thread count for this ractor: 3

-- Machine register context ------------------------------------------------
  x0: 0xbd7a2588f4a9410c  x1: 0xf19e26916fea2c46  x2: 0x4cf5ad432745937f
  x3: 0x87c37b91114253d5  x4: 0x0000ffffb68963b0  x5: 0x0000000000000000
  x6: 0x0000aaab0d7d0400  x7: 0x0000aaab3c026af0 x18: 0x0000aaab0d7d0778
 x19: 0x0000aaab3c708ff8 x20: 0x0000aaad0c2c1180 x21: 0x0000ffffc6ff6dd0
 x22: 0x0000aaab0d7d6c20 x23: 0x0000ffffb68d5000 x24: 0x0000ffffb63d3020
 x25: 0x0000ffffc6ff6dd0 x26: 0x0000aaab3a3dcf00 x27: 0x0000000000000041
 x28: 0x0000000000000001 x29: 0x0000ffffc6ff6d20  sp: 0x0000ffffc6ff6d20
 fau: 0x0000aaab3c709000

-- C level backtrace information -------------------------------------------
/usr/local/lib/libruby.so.4.0(fprintf+0x0) [0xffffb64123f4] /usr/src/ruby/vm_dump.c:1105
/usr/local/lib/libruby.so.4.0(rb_vm_bugreport) /usr/src/ruby/vm_dump.c:1453
/usr/local/lib/libruby.so.4.0(rb_bug_for_fatal_signal+0xd4) [0xffffb61ddc04] /usr/src/ruby/error.c:1131
/usr/local/lib/libruby.so.4.0(sigsegv+0x58) [0xffffb6348328] /usr/src/ruby/signal.c:948
linux-vdso.so.1(__kernel_rt_sigreturn+0x0) [0xffffb691b838]
/usr/local/lib/libruby.so.4.0(vm_ci_hash+0x50) [0xffffb63d3800] /usr/src/ruby/vm_method.c:632
/usr/local/lib/libruby.so.4.0(normalize_hash_value+0x0) [0xffffb63546a0] /usr/src/ruby/st.c:331
/usr/local/lib/libruby.so.4.0(do_hash) /usr/src/ruby/st.c:332
/usr/local/lib/libruby.so.4.0(rb_st_update) /usr/src/ruby/st.c:1472
/usr/local/lib/libruby.so.4.0(rb_vm_ci_lookup+0xac) [0xffffb63dd038] /usr/src/ruby/vm_method.c:712
/usr/local/lib/libruby.so.4.0(vm_ci_new_+0x4) [0xffffb614c208] /usr/src/ruby/vm_callinfo.h:219
/usr/local/lib/libruby.so.4.0(new_callinfo) /usr/src/ruby/compile.c:1486
/usr/local/lib/libruby.so.4.0(new_insn_send+0xfc) [0xffffb614e848] /usr/src/ruby/compile.c:1495
/usr/local/lib/libruby.so.4.0(pm_compile_call+0x930) [0xffffb6195a58] /usr/src/ruby/prism_compile.c:3794
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x1218) [0xffffb6183598] /usr/src/ruby/prism_compile.c:8790
/usr/local/lib/libruby.so.4.0(pm_setup_args_core+0xe4) [0xffffb6191cf0] /usr/src/ruby/prism_compile.c:1816
/usr/local/lib/libruby.so.4.0(pm_setup_args+0xdc) [0xffffb61927e4] /usr/src/ruby/prism_compile.c:2020
/usr/local/lib/libruby.so.4.0(ISEQ_COMPILE_DATA+0x0) [0xffffb6195210] /usr/src/ruby/prism_compile.c:3706
/usr/local/lib/libruby.so.4.0(pm_compile_call) /usr/src/ruby/prism_compile.c:3707
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x1218) [0xffffb6183598] /usr/src/ruby/prism_compile.c:8790
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x3698) [0xffffb6185a18] /usr/src/ruby/prism_compile.c:10324
/usr/local/lib/libruby.so.4.0(pm_compile_scope_node+0x1b0c) [0xffffb619c974] /usr/src/ruby/prism_compile.c:7044
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x1a00) [0xffffb6183d80] /usr/src/ruby/prism_compile.c:10197
/usr/local/lib/libruby.so.4.0(pm_iseq_compile_node+0x60) [0xffffb619e240] /usr/src/ruby/prism_compile.c:10508
/usr/local/lib/libruby.so.4.0(pm_iseq_new_with_opt_try+0x1c) [0xffffb62576fc] /usr/src/ruby/iseq.c:1105
/usr/local/lib/libruby.so.4.0(rb_protect+0xb8) [0xffffb61e9d58] /usr/src/ruby/eval.c:1127
/usr/local/lib/libruby.so.4.0(pm_iseq_new_with_opt+0x150) [0xffffb6250138] /usr/src/ruby/iseq.c:1158
/usr/local/lib/libruby.so.4.0(pm_new_child_iseq+0xb8) [0xffffb614a440] /usr/src/ruby/prism_compile.c:1276
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x328c) [0xffffb618560c] /usr/src/ruby/prism_compile.c:9869
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x36c8) [0xffffb6185a48] /usr/src/ruby/prism_compile.c:10326
/usr/local/lib/libruby.so.4.0(pm_compile_scope_node+0x1b0c) [0xffffb619c974] /usr/src/ruby/prism_compile.c:7044
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x1a00) [0xffffb6183d80] /usr/src/ruby/prism_compile.c:10197
/usr/local/lib/libruby.so.4.0(pm_iseq_compile_node+0x60) [0xffffb619e240] /usr/src/ruby/prism_compile.c:10508
/usr/local/lib/libruby.so.4.0(pm_iseq_new_with_opt_try+0x1c) [0xffffb62576fc] /usr/src/ruby/iseq.c:1105
/usr/local/lib/libruby.so.4.0(rb_protect+0xb8) [0xffffb61e9d58] /usr/src/ruby/eval.c:1127
/usr/local/lib/libruby.so.4.0(pm_iseq_new_with_opt+0x150) [0xffffb6250138] /usr/src/ruby/iseq.c:1158
/usr/local/lib/libruby.so.4.0(pm_new_child_iseq+0xb8) [0xffffb614a440] /usr/src/ruby/prism_compile.c:1276
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x328c) [0xffffb618560c] /usr/src/ruby/prism_compile.c:9869
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x36c8) [0xffffb6185a48] /usr/src/ruby/prism_compile.c:10326
/usr/local/lib/libruby.so.4.0(pm_compile_scope_node+0x1b0c) [0xffffb619c974] /usr/src/ruby/prism_compile.c:7044
/usr/local/lib/libruby.so.4.0(pm_compile_node+0x1a00) [0xffffb6183d80] /usr/src/ruby/prism_compile.c:10197
/usr/local/lib/libruby.so.4.0(APPEND_LIST+0x0) [0xffffb619e2b4] /usr/src/ruby/prism_compile.c:10498
/usr/local/lib/libruby.so.4.0(pm_iseq_compile_node) /usr/src/ruby/prism_compile.c:10502
/usr/local/lib/libruby.so.4.0(pm_iseq_new_with_opt_try+0x1c) [0xffffb62576fc] /usr/src/ruby/iseq.c:1105
/usr/local/lib/libruby.so.4.0(rb_protect+0xb8) [0xffffb61e9d58] /usr/src/ruby/eval.c:1127
/usr/local/lib/libruby.so.4.0(pm_iseq_new_with_opt+0x150) [0xffffb6250138] /usr/src/ruby/iseq.c:1158
/usr/local/lib/libruby.so.4.0(iseqw_s_compile_file_prism+0x1c4) [0xffffb625076c] /usr/src/ruby/iseq.c:1925
[0xffff77cb7e20]

Updated by luke-gru (Luke Gruber) 3 days ago Actions #1 [ruby-core:125707]

I've tried to reproduce your crash by creating a Rails app (8.1.3) with Ruby 4.0.4 and eager loading with these gems in a ENV["RAILS_ENV"]="TEST" environment:

gem "zeitwerk", "2.8.0"
gem "bootsnap", "1.24.4", require: false
gem "aws-sdk-dynamodb", "1.165.0", require: false
gem "aws-sdk-rds", "1.314.0", require: false

I couldn't reproduce it on my Aarch64 Mac. I have a few questions about your environment:

  • There are 3 Ruby threads when it crashed. Are these related to ActiveRecord or something else? You can check by listing out the threads or attaching with a debugger after a successful eager load in your test environment.
  • Are you running your tests in parallel with ActiveSupport::TestCase.parallelize?
  • I see 2 different versions of bootsnap in the stack traces. I'm guessing both version cause segfaults for you?
  • Are you running GC.compact manually or is GC.auto_compact true?
  • Can you reproduce a crash with GC disabled?

Thanks

Updated by jeremyevans0 (Jeremy Evans) 3 days ago Actions #2 [ruby-core:125708]

I'm not sure this is related to Bootsnap. I've seen segfaults in a require call inside aws-sdk-ec2/client_api.rb occasionally in CI in Ubicloud (an open source application). Most recently: https://github.com/ubicloud/ubicloud/actions/runs/27366531230/job/80867418196#step:19:15

No Rails or ActiveSupport, no Bootsnap, no use of GC.compact or GC.auto_compact. The test run is parallelized using turbo_tests. This is on Linux amd64 with Ruby 4.0.5.

Updated by Morred (Laura Eck) 3 days ago Actions #3 [ruby-core:125720]

Thanks for trying to reproduce this. I couldn’t reproduce it on my Mac either (ruby 4.0.4 (2026-05-12 revision b89eb1bcbf) +PRISM [arm64-darwin25]). It's only segfaulting on our CI (ruby 4.0.4 (2026-05-12 revision b89eb1bcbf) +YJIT +PRISM [aarch64-linux]), and not every single time, but fairly often.

Bootsnap:

Yes, both versions have segfaulted for us. They were from different CI images (1.24.4 and 1.24.6).

Seeing as Jeremy said he encountered similar crashes on Ubicloud (Ruby 4.0.5, linux amd64, no Rails or Bootsnap), it might be that Bootsnap is just what’s triggering the compilation, but not the actual source of the bug (although I can't be 100% sure of course).

Parallelism:

We use RSpec, not ActiveSupport::TestCase.parallelize. The aws-sdk-rds backtrace came from a flaky-detector CI job that runs parallel_tests with -n 1, so that was a single worker. The aws-sdk-dynamodb one was from bin/rails runner, also a single process. In both cases the crash happened during eager load/first compile, not in the middle of the test in a heavily parallelized run.

GC:

We don't call GC.compact or set GC.auto_compact anywhere in our app. As far as I know we're on Ruby defaults.

I haven't tried to reproduce with GC disabled, I’ll give it a try.

Threads:

The crash output shows Ruby thread count for this ractor: 3, but no backtraces for the non-crashing threads. From the stack, the faulting thread is the main one going through eager_load! -> our AWS shim -> client_api.rb. I'll try to run Thread.list after a successful eager load on our linux CI image, and post the output.

Updated by Morred (Laura Eck) 3 days ago Actions #4

  • Subject changed from Segfault in PRISM compiler while Bootsnap compiles aws-sdk client_api.rb to Segfault in PRISM while Bootsnap compiles aws-sdk client_api.rb
Actions

Also available in: PDF Atom