Skip to content

Segfault on Ruby 3.3.0 on linux-aarch64 solved in https://bugs.ruby-lang.org/issues/20085 #1005

@viktorianer

Description

@viktorianer

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"}

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions