images
images copied to clipboard
Segfault on Ruby 3.3.0 on linux-aarch64 solved in https://bugs.ruby-lang.org/issues/20085
Considering the resolution provided in Ruby Issue #20085, it may be beneficial for the devcontainers project to integrate any necessary patches or workarounds. This could involve updating the Ruby version used or applying patches as specified in the Ruby issue tracker.
This issue impacts development environments that rely on Ruby 3.3.0 running on linux-aarch64. The resolution in the Ruby issue tracker suggests that an update or patch is available to mitigate this problem.
Thank you for looking into this matter to enhance the stability and compatibility of Ruby on linux-aarch64 within devcontainers.
Expected Behavior
Ruby 3.3.0 should run without segmentation faults on linux-aarch64 platforms.
Current Behavior
A segmentation fault occurs under specific conditions detailed in the aforementioned Ruby issue.
Details: Segfault on Ruby 3.3.0 on linux-aarch64
/usr/local/rvm/gems/default/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:14: [BUG] Segmentation fault at 0x0077ffff907a06c0
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [aarch64-linux]
-- Control frame information -----------------------------------------------
c:0047 p:---- s:0257 e:000256 CFUNC :resume
c:0046 p:0007 s:0253 E:000610 BLOCK /usr/local/rvm/gems/default/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:14 [FINISH]
c:0045 p:---- s:0250 e:000249 CFUNC :synchronize
c:0044 p:0026 s:0246 E:002298 METHOD /usr/local/rvm/gems/default/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:12
c:0043 p:0007 s:0241 e:000240 CLASS /usr/local/rvm/gems/default/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:18
c:0042 p:0025 s:0238 e:000237 TOP /usr/local/rvm/gems/default/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:5 [FINISH]
c:0041 p:---- s:0235 e:000234 CFUNC :require
c:0040 p:0011 s:0230 e:000229 METHOD <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37
c:0039 p:0131 s:0224 e:000223 METHOD /usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
c:0038 p:0041 s:0215 e:000214 TOP /usr/local/rvm/gems/default/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb:7 [FINISH]
c:0037 p:---- s:0212 e:000211 CFUNC :require
c:0036 p:0011 s:0207 e:000206 METHOD <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37
c:0035 p:0131 s:0201 e:000200 METHOD /usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
c:0034 p:0047 s:0192 e:000191 TOP /usr/local/rvm/gems/default/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomics.rb:8 [FINISH]
c:0033 p:---- s:0189 e:000188 CFUNC :require
c:0032 p:0011 s:0184 e:000183 METHOD <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37
c:0031 p:0131 s:0178 e:000177 METHOD /usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
c:0030 p:0029 s:0169 e:000168 TOP /usr/local/rvm/gems/default/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent.rb:6 [FINISH]
c:0029 p:---- s:0166 e:000165 CFUNC :require
c:0028 p:0011 s:0161 e:000160 METHOD <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37
c:0027 p:0131 s:0155 e:000154 METHOD /usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
c:0026 p:0017 s:0146 e:000145 TOP /usr/local/rvm/gems/default/gems/activesupport-7.0.8.1/lib/active_support/logger_thread_safe_level.rb:5 [FINISH]
c:0025 p:---- s:0143 e:000142 CFUNC :require
c:0024 p:0011 s:0138 e:000137 METHOD <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37
c:0023 p:0131 s:0132 e:000131 METHOD /usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
c:0022 p:0017 s:0123 e:000122 TOP /usr/local/rvm/gems/default/gems/activesupport-7.0.8.1/lib/active_support/logger_silence.rb:5 [FINISH]
c:0021 p:---- s:0120 e:000119 CFUNC :require
c:0020 p:0011 s:0115 e:000114 METHOD <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37
c:0019 p:0131 s:0109 e:000108 METHOD /usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
c:0018 p:0005 s:0100 e:000099 TOP /usr/local/rvm/gems/default/gems/activesupport-7.0.8.1/lib/active_support/logger.rb:3 [FINISH]
c:0017 p:---- s:0097 e:000096 CFUNC :require
c:0016 p:0011 s:0092 e:000091 METHOD <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37
c:0015 p:0131 s:0086 e:000085 METHOD /usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
c:0014 p:0023 s:0077 e:000076 TOP /usr/local/rvm/gems/default/gems/activesupport-7.0.8.1/lib/active_support.rb:29 [FINISH]
c:0013 p:---- s:0074 e:000073 CFUNC :require
c:0012 p:0011 s:0069 e:000068 METHOD <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37
c:0011 p:0131 s:0063 e:000062 METHOD /usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
c:0010 p:0005 s:0054 e:000053 TOP /usr/local/rvm/gems/default/gems/railties-7.0.8.1/lib/rails/command.rb:3 [FINISH]
c:0009 p:---- s:0051 e:000050 CFUNC :require
c:0008 p:0011 s:0046 e:000045 METHOD <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37
c:0007 p:0131 s:0040 e:000039 METHOD /usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
c:0006 p:0005 s:0031 e:000030 TOP /usr/local/rvm/gems/default/gems/railties-7.0.8.1/lib/rails/commands.rb:3 [FINISH]
c:0005 p:---- s:0026 e:000025 CFUNC :require
c:0004 p:0011 s:0021 e:000020 METHOD <internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37
c:0003 p:0131 s:0015 e:000014 METHOD /usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
c:0002 p:0024 s:0006 e:000005 EVAL bin/rails:4 [FINISH]
c:0001 p:0000 s:0003 E:001620 DUMMY [FINISH]
-- Ruby level backtrace information ----------------------------------------
bin/rails:4:in `<main>'
/usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/usr/local/rvm/gems/default/gems/railties-7.0.8.1/lib/rails/commands.rb:3:in `<main>'
/usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/usr/local/rvm/gems/default/gems/railties-7.0.8.1/lib/rails/command.rb:3:in `<main>'
/usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/usr/local/rvm/gems/default/gems/activesupport-7.0.8.1/lib/active_support.rb:29:in `<main>'
/usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/usr/local/rvm/gems/default/gems/activesupport-7.0.8.1/lib/active_support/logger.rb:3:in `<main>'
/usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/usr/local/rvm/gems/default/gems/activesupport-7.0.8.1/lib/active_support/logger_silence.rb:5:in `<main>'
/usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/usr/local/rvm/gems/default/gems/activesupport-7.0.8.1/lib/active_support/logger_thread_safe_level.rb:5:in `<main>'
/usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/usr/local/rvm/gems/default/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent.rb:6:in `<main>'
/usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/usr/local/rvm/gems/default/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomics.rb:8:in `<main>'
/usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/usr/local/rvm/gems/default/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb:7:in `<main>'
/usr/local/rvm/gems/default/gems/bootsnap-1.18.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/local/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/usr/local/rvm/gems/default/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:5:in `<main>'
/usr/local/rvm/gems/default/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:18:in `<module:Concurrent>'
/usr/local/rvm/gems/default/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:12:in `mutex_owned_per_thread?'
/usr/local/rvm/gems/default/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:12:in `synchronize'
/usr/local/rvm/gems/default/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:14:in `block in mutex_owned_per_thread?'
/usr/local/rvm/gems/default/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:14:in `resume'
-- Threading information ---------------------------------------------------
Total ractor count: 1
Ruby thread count for this ractor: 1
-- Machine register context ------------------------------------------------
x0: 0x0000aaaad29db9f0 x1: 0x0000aaaad3796be0 x2: 0x0000ffffee223a50
x3: 0x0000ffff761aff60 x4: 0x0000ffff761b0018 x5: 0x0000ffff761d0000
x6: 0x0000ffff90cf5b88 x7: 0x0000000000000000 x18: 0x0000000000000000
x19: 0x0000000000000000 x20: 0x0000000000000000 x21: 0x0000000000000000
x22: 0x0000000000000000 x23: 0x0000000000000000 x24: 0x0000000000000000
x25: 0x0000000000000000 x26: 0x0000000000000000 x27: 0x0000000000000000
x28: 0x0000000000000000 x29: 0x0000000000000000 sp: 0x0000ffff761b0000
fau: 0x0077ffff907a06c0
-- C level backtrace information -------------------------------------------
== Command ["bin/rails db:prepare"] failed ==
[32750 ms] updateContentCommand failed with exit code 1. Skipping any further user-provided commands.
Error: Command failed: /bin/sh -c bin/setup
at R7 (/opt/homebrew/Cellar/devcontainer/0.58.0/libexec/lib/node_modules/@devcontainers/cli/dist/spec-node/devContainersSpecCLI.js:235:130)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Am (/opt/homebrew/Cellar/devcontainer/0.58.0/libexec/lib/node_modules/@devcontainers/cli/dist/spec-node/devContainersSpecCLI.js:227:4393)
at async Xw (/opt/homebrew/Cellar/devcontainer/0.58.0/libexec/lib/node_modules/@devcontainers/cli/dist/spec-node/devContainersSpecCLI.js:227:3738)
at async $w (/opt/homebrew/Cellar/devcontainer/0.58.0/libexec/lib/node_modules/@devcontainers/cli/dist/spec-node/devContainersSpecCLI.js:227:2814)
at async fa (/opt/homebrew/Cellar/devcontainer/0.58.0/libexec/lib/node_modules/@devcontainers/cli/dist/spec-node/devContainersSpecCLI.js:227:2386)
at async CtA (/opt/homebrew/Cellar/devcontainer/0.58.0/libexec/lib/node_modules/@devcontainers/cli/dist/spec-node/devContainersSpecCLI.js:409:3471)
at async UtA (/opt/homebrew/Cellar/devcontainer/0.58.0/libexec/lib/node_modules/@devcontainers/cli/dist/spec-node/devContainersSpecCLI.js:481:3865)
at async $C (/opt/homebrew/Cellar/devcontainer/0.58.0/libexec/lib/node_modules/@devcontainers/cli/dist/spec-node/devContainersSpecCLI.js:481:4807)
at async QrA (/opt/homebrew/Cellar/devcontainer/0.58.0/libexec/lib/node_modules/@devcontainers/cli/dist/spec-node/devContainersSpecCLI.js:661:13255)
{"outcome":"error","message":"Command failed: /bin/sh -c bin/setup","description":"The updateContentCommand in the devcontainer.json failed.","containerId":"17d1f69694e906eddf2922befb57842c13d3cba51b5a3415f1a84e03cdc6b261"}
Thanks for the details. @gauravsaini04 Can you help investigate this issue? Thanks!
Ruby 3.3.1 was released today which includes a fix for this bug. It also includes some important CVE fixes (details) which were back ported and released as 3.2.4, 3.1.5 and 3.0.7.
Thanks @andrewn617 for the update, we'll shortly have a new release for the image. Thanks!
Started a release https://github.com/devcontainers/images/pull/1035
Closing as the issue should be fixed with latest release.