ruby-concurrency / concurrent-ruby

Modern concurrency tools including agents, futures, promises, thread pools, supervisors, and more. Inspired by Erlang, Clojure, Scala, Go, Java, JavaScript, and classic concurrency patterns.
https://ruby-concurrency.github.io/concurrent-ruby/
Other
5.68k stars 418 forks source link

Segmentation fault related to concurrent-ruby #1036

Closed dorianmarie closed 8 months ago

dorianmarie commented 8 months ago

I have a crash related to concurrent-ruby, trying to reduce to a minimal app

~/s/search> docker build -t search .
[+] Building 1.4s (15/19)                                                docker:desktop-linux
 => [internal] load build definition from Dockerfile                                     0.0s
 => => transferring dockerfile: 2.91kB                                                   0.0s
 => [internal] load .dockerignore                                                        0.0s
 => => transferring context: 2B                                                          0.0s
 => [internal] load metadata for docker.io/library/ruby:3.3.0-slim                       0.7s
 => [internal] load build context                                                        0.2s
 => => transferring context: 597.18kB                                                    0.2s
 => [builder  1/10] FROM docker.io/library/ruby:3.3.0-slim@sha256:7e2843d936fd2ea084b36  0.0s
 => CACHED [stage-1 2/6] RUN apt-get update -qq   && apt-get install -y libjemalloc2 tz  0.0s
 => CACHED [stage-1 3/6] RUN groupadd --gid 1000 app &&   useradd --uid 1000 --no-log-i  0.0s
 => CACHED [builder  2/10] RUN apt-get update -qq   && apt-get install -y   apt-transpo  0.0s
 => CACHED [builder  3/10] RUN mkdir /app                                                0.0s
 => CACHED [builder  4/10] WORKDIR /app/                                                 0.0s
 => CACHED [builder  5/10] COPY Gemfile* /app/                                           0.0s
 => CACHED [builder  6/10] RUN gem install bundler   && bundle config --global frozen 1  0.0s
 => CACHED [builder  7/10] COPY . /app/                                                  0.0s
 => CACHED [builder  8/10] RUN yarn install --check-files                                0.0s
 => ERROR [builder  9/10] RUN NODE_ENV=production   RAILS_ENV=production   PRECOMPILE=t  0.5s
------
 > [builder  9/10] RUN NODE_ENV=production   RAILS_ENV=production   PRECOMPILE=true   SECRET_KEY_BASE=no   RAILS_SERVE_STATIC_FILES=true   bundle exec rake assets:precompile:
0.490 /usr/local/bundle/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:14: [BUG] Segmentation fault at 0x0062ffff9f0506c0
0.490 ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [aarch64-linux]
0.490 
0.490 -- Control frame information -----------------------------------------------
0.490 c:0108 p:---- s:0587 e:000586 CFUNC  :resume
0.490 c:0107 p:0007 s:0583 E:0012b0 BLOCK  /usr/local/bundle/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:14 [FINISH]
0.490 c:0106 p:---- s:0580 e:000579 CFUNC  :synchronize
0.490 c:0105 p:0026 s:0576 E:001b48 METHOD /usr/local/bundle/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:12
0.490 c:0104 p:0007 s:0571 e:000570 CLASS  /usr/local/bundle/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:18
0.490 c:0103 p:0025 s:0568 e:000567 TOP    /usr/local/bundle/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:5 [FINISH]
0.490 c:0102 p:---- s:0565 e:000564 CFUNC  :require
0.490 c:0101 p:0030 s:0560 e:000559 BLOCK  /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
0.490 c:0100 p:0131 s:0554 e:000553 METHOD /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
0.490 c:0099 p:0041 s:0545 e:000544 TOP    /usr/local/bundle/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb:7 [FINISH]
0.490 c:0098 p:---- s:0542 e:000541 CFUNC  :require
0.490 c:0097 p:0030 s:0537 e:000536 BLOCK  /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
0.490 c:0096 p:0131 s:0531 e:000530 METHOD /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
0.490 c:0095 p:0047 s:0522 e:000521 TOP    /usr/local/bundle/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomics.rb:8 [FINISH]
0.490 c:0094 p:---- s:0519 e:000518 CFUNC  :require
0.490 c:0093 p:0030 s:0514 e:000513 BLOCK  /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
0.490 c:0092 p:0131 s:0508 e:000507 METHOD /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
0.490 c:0091 p:0029 s:0499 e:000498 TOP    /usr/local/bundle/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent.rb:6 [FINISH]
0.490 c:0090 p:---- s:0496 e:000495 CFUNC  :require
0.490 c:0089 p:0030 s:0491 e:000490 BLOCK  /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
0.490 c:0088 p:0131 s:0485 e:000484 METHOD /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
0.490 c:0087 p:0005 s:0476 e:000475 TOP    /usr/local/bundle/gems/tzinfo-2.0.6/lib/tzinfo/string_deduper.rb:4 [FINISH]
0.490 c:0086 p:---- s:0473 e:000472 CFUNC  :require_relative
0.490 c:0085 p:0025 s:0468 e:000467 TOP    /usr/local/bundle/gems/tzinfo-2.0.6/lib/tzinfo.rb:25 [FINISH]
0.490 c:0084 p:---- s:0465 e:000464 CFUNC  :require
0.490 c:0083 p:0030 s:0460 e:000459 BLOCK  /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
0.490 c:0082 p:0131 s:0454 e:000453 METHOD /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
0.490 c:0081 p:0005 s:0445 e:000444 TOP    /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/values/time_zone.rb:3 [FINISH]
0.490 c:0080 p:---- s:0442 e:000441 CFUNC  :require
0.490 c:0079 p:0030 s:0437 e:000436 BLOCK  /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
0.490 c:0078 p:0131 s:0431 e:000430 METHOD /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
0.490 c:0077 p:0017 s:0422 e:000421 TOP    /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/core_ext/time/conversions.rb:5 [FINISH]
0.490 c:0076 p:---- s:0419 e:000418 CFUNC  :require
0.490 c:0075 p:0030 s:0414 e:000413 BLOCK  /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
0.490 c:0074 p:0131 s:0408 e:000407 METHOD /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
0.490 c:0073 p:0065 s:0399 e:000398 TOP    /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/core_ext/object/json.rb:14 [FINISH]
0.490 c:0072 p:---- s:0396 e:000395 CFUNC  :require
0.490 c:0071 p:0030 s:0391 e:000390 BLOCK  /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
0.490 c:0070 p:0131 s:0385 e:000384 METHOD /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
0.490 c:0069 p:0005 s:0376 e:000375 TOP    /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/json/encoding.rb:3 [FINISH]
0.491 c:0068 p:---- s:0373 e:000372 CFUNC  :require
0.491 c:0067 p:0030 s:0368 e:000367 BLOCK  /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
0.491 c:0066 p:0131 s:0362 e:000361 METHOD /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
0.491 c:0065 p:0011 s:0353 e:000352 TOP    /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/json.rb:4 [FINISH]
0.491 c:0064 p:---- s:0350 e:000349 CFUNC  :require
0.491 c:0063 p:0030 s:0345 e:000344 BLOCK  /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
0.491 c:0062 p:0131 s:0339 e:000338 METHOD /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
0.491 c:0061 p:0011 s:0330 e:000329 TOP    /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/messages/metadata.rb:4 [FINISH]
0.491 c:0060 p:---- s:0327 e:000326 CFUNC  :require_relative
0.491 c:0059 p:0011 s:0322 e:000321 TOP    /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/messages/codec.rb:4 [FINISH]
0.491 c:0058 p:---- s:0319 e:000318 CFUNC  :require
0.491 c:0057 p:0030 s:0314 e:000313 BLOCK  /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
0.491 c:0056 p:0131 s:0308 e:000307 METHOD /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
0.491 c:0055 p:0023 s:0299 e:000298 TOP    /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/message_encryptor.rb:6 [FINISH]
0.491 c:0054 p:---- s:0296 e:000295 CFUNC  :require
0.491 c:0053 p:0030 s:0291 e:000290 BLOCK  /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
0.491 c:0052 p:0131 s:0285 e:000284 METHOD /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
0.491 c:0051 p:0017 s:0276 e:000275 TOP    /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/encrypted_file.rb:5 [FINISH]
0.491 c:0050 p:---- s:0273 e:000272 CFUNC  :require
0.491 c:0049 p:0030 s:0268 e:000267 BLOCK  /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
0.491 c:0048 p:0131 s:0262 e:000261 METHOD /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
0.491 c:0047 p:0011 s:0253 e:000252 TOP    /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/encrypted_configuration.rb:4 [FINISH]
0.491 c:0046 p:---- s:0250 e:000249 CFUNC  :require
0.491 c:0045 p:0030 s:0245 e:000244 BLOCK  /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
0.491 c:0044 p:0131 s:0239 e:000238 METHOD /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
0.491 c:0043 p:0041 s:0230 e:000229 TOP    /usr/local/bundle/gems/railties-7.1.3/lib/rails/application.rb:9 [FINISH]
0.491 c:0042 p:---- s:0227 e:000226 CFUNC  :require
0.491 c:0041 p:0030 s:0222 e:000221 BLOCK  /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
0.491 c:0040 p:0131 s:0216 e:000215 METHOD /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
0.491 c:0039 p:0059 s:0207 e:000206 TOP    /usr/local/bundle/gems/railties-7.1.3/lib/rails.rb:15 [FINISH]
0.491 c:0038 p:---- s:0204 e:000203 CFUNC  :require
0.491 c:0037 p:0030 s:0199 e:000198 BLOCK  /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
0.491 c:0036 p:0131 s:0193 e:000192 METHOD /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
0.491 c:0035 p:0005 s:0184 e:000183 TOP    /usr/local/bundle/gems/railties-7.1.3/lib/rails/all.rb:5 [FINISH]
0.491 c:0034 p:---- s:0181 e:000180 CFUNC  :require
0.491 c:0033 p:0030 s:0176 e:000175 BLOCK  /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74
0.491 c:0032 p:0131 s:0170 e:000169 METHOD /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30
0.491 c:0031 p:0011 s:0161 e:000160 TOP    /app/config/application.rb:3 [FINISH]
0.491 c:0030 p:---- s:0158 e:000157 CFUNC  :require_relative
0.491 c:0029 p:0005 s:0153 e:000152 TOP    /app/Rakefile:4 [FINISH]
0.491 c:0028 p:---- s:0150 e:000149 CFUNC  :load
0.491 c:0027 p:0005 s:0145 e:000144 METHOD /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/rake_module.rb:29
0.491 c:0026 p:0143 s:0140 e:000139 METHOD /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:734
0.491 c:0025 p:0003 s:0134 e:000133 BLOCK  /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:126
0.491 c:0024 p:0002 s:0131 e:000130 METHOD /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:208
0.491 c:0023 p:0004 s:0126 e:000125 METHOD /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:125
0.491 c:0022 p:0011 s:0122 e:000121 BLOCK  /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:82
0.491 c:0021 p:0002 s:0119 e:000118 METHOD /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:208
0.491 c:0020 p:0008 s:0114 e:000113 METHOD /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:80
0.491 c:0019 p:0012 s:0109 e:000108 TOP    /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/exe/rake:27 [FINISH]
0.491 c:0018 p:---- s:0106 e:000105 CFUNC  :load
0.491 c:0017 p:0078 s:0101 e:000100 TOP    /usr/local/bin/rake:25 [FINISH]
0.491 c:0016 p:---- s:0096 e:000095 CFUNC  :load
0.491 c:0015 p:0064 s:0091 e:000090 METHOD /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/cli/exec.rb:58
0.491 c:0014 p:0050 s:0085 e:000084 METHOD /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/cli/exec.rb:23
0.491 c:0013 p:0044 s:0080 e:000079 METHOD /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/cli.rb:451
0.491 c:0012 p:0054 s:0073 e:000072 METHOD /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/vendor/thor/lib/thor/command.rb:28
0.491 c:0011 p:0040 s:0065 e:000064 METHOD /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/vendor/thor/lib/thor/invocation.rb:127
0.491 c:0010 p:0213 s:0058 e:000057 METHOD /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/vendor/thor/lib/thor.rb:527
0.491 c:0009 p:0008 s:0045 e:000044 METHOD /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/cli.rb:34
0.491 c:0008 p:0044 s:0040 e:000039 METHOD /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/vendor/thor/lib/thor/base.rb:584
0.491 c:0007 p:0022 s:0033 e:000032 METHOD /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/cli.rb:28
0.491 c:0006 p:0042 s:0028 e:000027 BLOCK  /usr/local/bundle/gems/bundler-2.5.5/exe/bundle:28
0.491 c:0005 p:0007 s:0022 e:000021 METHOD /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/friendly_errors.rb:117
0.491 c:0004 p:0051 s:0017 E:000248 TOP    /usr/local/bundle/gems/bundler-2.5.5/exe/bundle:20 [FINISH]
0.491 c:0003 p:---- s:0013 e:000012 CFUNC  :load
0.491 c:0002 p:0081 s:0008 E:000200 EVAL   /usr/local/bundle/bin/bundle:25 [FINISH]
0.491 c:0001 p:0000 s:0003 E:000700 DUMMY  [FINISH]
0.491 
0.491 -- Ruby level backtrace information ----------------------------------------
0.491 /usr/local/bundle/bin/bundle:25:in `<main>'
0.491 /usr/local/bundle/bin/bundle:25:in `load'
0.491 /usr/local/bundle/gems/bundler-2.5.5/exe/bundle:20:in `<top (required)>'
0.491 /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
0.491 /usr/local/bundle/gems/bundler-2.5.5/exe/bundle:28:in `block in <top (required)>'
0.491 /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/cli.rb:28:in `start'
0.491 /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
0.491 /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/cli.rb:34:in `dispatch'
0.491 /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
0.491 /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
0.491 /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
0.491 /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/cli.rb:451:in `exec'
0.491 /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/cli/exec.rb:23:in `run'
0.491 /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/cli/exec.rb:58:in `kernel_load'
0.491 /usr/local/bundle/gems/bundler-2.5.5/lib/bundler/cli/exec.rb:58:in `load'
0.491 /usr/local/bin/rake:25:in `<top (required)>'
0.491 /usr/local/bin/rake:25:in `load'
0.491 /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/exe/rake:27:in `<top (required)>'
0.491 /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:80:in `run'
0.491 /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:208:in `standard_exception_handling'
0.491 /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:82:in `block in run'
0.491 /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:125:in `load_rakefile'
0.491 /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:208:in `standard_exception_handling'
0.491 /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:126:in `block in load_rakefile'
0.491 /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:734:in `raw_load_rakefile'
0.491 /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/rake_module.rb:29:in `load_rakefile'
0.491 /usr/local/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/rake_module.rb:29:in `load'
0.491 /app/Rakefile:4:in `<top (required)>'
0.491 /app/Rakefile:4:in `require_relative'
0.491 /app/config/application.rb:3:in `<top (required)>'
0.491 /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
0.491 /usr/local/bundle/gems/railties-7.1.3/lib/rails/all.rb:5:in `<main>'
0.491 /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
0.491 /usr/local/bundle/gems/railties-7.1.3/lib/rails.rb:15:in `<main>'
0.491 /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
0.491 /usr/local/bundle/gems/railties-7.1.3/lib/rails/application.rb:9:in `<main>'
0.491 /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
0.491 /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/encrypted_configuration.rb:4:in `<main>'
0.491 /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
0.491 /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/encrypted_file.rb:5:in `<main>'
0.491 /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
0.491 /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/message_encryptor.rb:6:in `<main>'
0.491 /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
0.491 /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/messages/codec.rb:4:in `<main>'
0.491 /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/messages/codec.rb:4:in `require_relative'
0.491 /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/messages/metadata.rb:4:in `<main>'
0.491 /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
0.491 /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/json.rb:4:in `<main>'
0.491 /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
0.491 /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/json/encoding.rb:3:in `<main>'
0.491 /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
0.491 /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/core_ext/object/json.rb:14:in `<main>'
0.491 /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
0.491 /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/core_ext/time/conversions.rb:5:in `<main>'
0.491 /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
0.491 /usr/local/bundle/gems/activesupport-7.1.3/lib/active_support/values/time_zone.rb:3:in `<main>'
0.491 /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
0.491 /usr/local/bundle/gems/tzinfo-2.0.6/lib/tzinfo.rb:25:in `<main>'
0.491 /usr/local/bundle/gems/tzinfo-2.0.6/lib/tzinfo.rb:25:in `require_relative'
0.491 /usr/local/bundle/gems/tzinfo-2.0.6/lib/tzinfo/string_deduper.rb:4:in `<main>'
0.491 /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
0.491 /usr/local/bundle/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent.rb:6:in `<main>'
0.491 /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
0.491 /usr/local/bundle/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomics.rb:8:in `<main>'
0.491 /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
0.491 /usr/local/bundle/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb:7:in `<main>'
0.491 /usr/local/bundle/gems/bootsnap-1.17.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
0.491 /usr/local/lib/ruby/3.3.0/bundled_gems.rb:74:in `require'
0.491 /usr/local/bundle/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:5:in `<main>'
0.491 /usr/local/bundle/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:18:in `<module:Concurrent>'
0.491 /usr/local/bundle/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:12:in `mutex_owned_per_thread?'
0.491 /usr/local/bundle/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:12:in `synchronize'
0.491 /usr/local/bundle/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:14:in `block in mutex_owned_per_thread?'
0.491 /usr/local/bundle/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/atomic/lock_local_var.rb:14:in `resume'
0.491 
0.491 -- Threading information ---------------------------------------------------
0.491 Total ractor count: 1
0.491 Ruby thread count for this ractor: 1
0.491 
0.491 -- Machine register context ------------------------------------------------
0.491   x0: 0x0000aaaae2ac8960  x1: 0x0000aaaae3346590  x2: 0x0000fffff66e1750
0.491   x3: 0x0000ffff84d9ff60  x4: 0x0000ffff84da0018  x5: 0x0000ffff84dc0000
0.491   x6: 0x0000ffff9f5a0b88  x7: 0x0000000000000000 x18: 0x0000000000000000
0.491  x19: 0x0000000000000000 x20: 0x0000000000000000 x21: 0x0000000000000000
0.491  x22: 0x0000000000000000 x23: 0x0000000000000000 x24: 0x0000000000000000
0.491  x25: 0x0000000000000000 x26: 0x0000000000000000 x27: 0x0000000000000000
0.491  x28: 0x0000000000000000 x29: 0x0000000000000000  sp: 0x0000ffff84da0000
0.491  fau: 0x0062ffff9f0506c0
0.491 
0.491 -- C level backtrace information -------------------------------------------
0.494 Segmentation fault
------
Dockerfile:54
--------------------
  53 |     # secret key, but Rails will fail to initialize if it isn't set.
  54 | >>> RUN NODE_ENV=production \
  55 | >>>   RAILS_ENV=production \
  56 | >>>   PRECOMPILE=true \
  57 | >>>   SECRET_KEY_BASE=no \
  58 | >>>   RAILS_SERVE_STATIC_FILES=true \
  59 | >>>   bundle exec rake assets:precompile
  60 |     
--------------------
ERROR: failed to solve: process "/bin/sh -c NODE_ENV=production   RAILS_ENV=production   PRECOMPILE=true   SECRET_KEY_BASE=no   RAILS_SERVE_STATIC_FILES=true   bundle exec rake assets:precompile" did not complete successfully: exit code: 139
eregon commented 8 months ago

A duplicate of https://github.com/ruby-concurrency/concurrent-ruby/issues/1023 Also if you are not using concurrent-ruby-ext, then the segfault cannot be an issue of concurrent-ruby.

dorianmarie commented 8 months ago

Ok FYI I created a minimal rails app with this crash: https://github.com/dorianmarie/rails-segmentation-fault-minimal I think it's related to concurrent ruby usage in rails

eregon commented 8 months ago

It is not, it's a CRuby bug: https://bugs.ruby-lang.org/issues/20085 concurrent-ruby just does Fiber#resume which is perfectly valid.

dorianmarie commented 8 months ago

Ah thanks