Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

mini_racer 0.12.0 Segmentation fault on x86_64-linux with libv8-node 21.7.2.0 #300

Closed
D-system opened this issue Apr 23, 2024 · 105 comments
Closed
Labels
bug/crash Bugs specific to crashes, segfaults, etc. Gem can be installed though.

Comments

@D-system
Copy link

Hello the team

Thank you for the update to libv8-node 21.7.2.0 yesterday.
I wanted to report an error.
Setup:

  • mini_racer 0.12.0
  • libv8-node 21.7.2.0
  • ruby 3.2.3
  • OS: Ubuntu 22.04.3 LTS (from CircleCI cimg/ruby:3.2.3-node)
  • Rails: 6.1.7.7
  • Sprockets: 4.2.1
  • The command: RAILS_ENV=production SECRET_KEY_BASE=1 bin/rails assets:clobber assets:precompile
/home/circleci/ec/vendor/ruby/3.2.0/gems/mini_racer-0.12.0/lib/mini_racer.rb:228: [BUG] Segmentation fault at 0x00007f3f10a31008
ruby 3.2.3 (2024-01-18 revision 52bb2ac0a6) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0048 p:---- s:0301 e:000300 CFUNC  :eval_unsafe
c:0047 p:0009 s:0295 e:000294 BLOCK  /home/circleci/repo/vendor/ruby/3.2.0/gems/mini_racer-0.12.0/lib/mini_racer.rb:228
c:0046 p:0010 s:0292 e:000291 METHOD /home/circleci/repo/vendor/ruby/3.2.0/gems/mini_racer-0.12.0/lib/mini_racer.rb:348
c:0045 p:0008 s:0281 e:000280 BLOCK  /home/circleci/repo/vendor/ruby/3.2.0/gems/mini_racer-0.12.0/lib/mini_racer.rb:227 [FINISH]
c:0044 p:---- s:0278 e:000277 CFUNC  :synchronize
c:0043 p:0045 s:0274 e:000273 METHOD /home/circleci/repo/vendor/ruby/3.2.0/gems/mini_racer-0.12.0/lib/mini_racer.rb:225
c:0042 p:0007 s:0267 e:000266 BLOCK  /home/circleci/repo/vendor/ruby/3.2.0/gems/execjs-2.9.1/lib/execjs/mini_racer_runtime.rb:11
c:0041 p:0003 s:0264 e:000262 METHOD /home/circleci/repo/vendor/ruby/3.2.0/gems/execjs-2.9.1/lib/execjs/mini_racer_runtime.rb:67
c:0040 p:0035 s:0256 e:000255 METHOD /home/circleci/repo/vendor/ruby/3.2.0/gems/execjs-2.9.1/lib/execjs/mini_racer_runtime.rb:10 [FINISH]
c:0039 p:---- s:0249 e:000248 CFUNC  :new
c:0038 p:0038 s:0242 e:000241 METHOD /home/circleci/repo/vendor/ruby/3.2.0/gems/execjs-2.9.1/lib/execjs/runtime.rb:68
c:0037 p:0013 s:0236 e:000235 METHOD /home/circleci/repo/vendor/ruby/3.2.0/gems/execjs-2.9.1/lib/execjs/module.rb:27
c:0036 p:0020 s:0230 e:000229 METHOD /home/circleci/repo/vendor/ruby/3.2.0/gems/terser-1.2.2/lib/terser.rb:189
c:0035 p:0065 s:0223 e:000221 METHOD /home/circleci/repo/vendor/ruby/3.2.0/gems/terser-1.2.2/lib/terser.rb:229
SEGV received in SEGV handler
c:0034 p:0014 s:0212 e:000211 METHOD /home/circleci/repo/vendor/ruby/3.2.0/gems/terser-1.2.2/lib/terser.rb:181
c:0033 p:0029 s:0206 e:000205 METHOD /home/circleci/repo/vendor/ruby/3.2.0/gems/terser-1.2.2/lib/terser/compressor.rb:36
c:0032 p:0007 s:0198 e:000197 METHOD /home/circleci/repo/vendor/ruby/3.2.0/gems/terser-1.2.2/lib/terser/compressor.rb:23
c:0031 p:0047 s:0193 e:000192 METHOD /home/circleci/repo/vendor/ruby/3.2.0/gems/sprockets-4.2.1/lib/sprockets/processor_utils.rb:84
c:0030 p:0013 s:0185 e:000184 BLOCK  /home/circleci/repo/vendor/ruby/3.2.0/gems/sprockets-4.2.1/lib/sprockets/processor_utils.rb:66 [FINISH]
c:0029 p:---- s:0180 e:000179 CFUNC  :reverse_each
c:0028 p:0035 
Received "aborted" signal

It does work on Darwin Kernel Version 23.2.0 arm64 (Mac on arm) that compile from source.

The error is from eval -> eval_unsafe, so I suspect it is an issue with the libv8-node

eval_unsafe(str, filename)

@tisba
Copy link
Collaborator

tisba commented Apr 23, 2024

Hey @D-system. A couple of question hopefully helping to narrow the issue down

  • Can you reproduce it with a freshly created rails application? On aarch64-linux my basic checks works, as well as rails new foo && cd foo && bundle install && RAILS_ENV=production SECRET_KEY_BASE=1 bin/rails assets:clobber assets:precompile using cimg/ruby:3.2.3-node.

  • Can you reproduce the issue with Ruby 3.3.0?

  • Can you confirm if you're using jemalloc or not? Looks like the image is at least installing libjemalloc, I haven't checked if they build Ruby against it, or using LD_PRELOAD, or using this up to the user. There have been various issues with jemalloc and mini_racer/v8. In case jemalloc is used, can you try without?

@D-system
Copy link
Author

D-system commented Apr 23, 2024

I don't think jemalloc is enabled:

$ ruby -r rbconfig -e "puts RbConfig::CONFIG['MAINLIBS']"
-lz -lrt -lrt -ldl -lcrypt -lm -lpthread

Even by using the LD_PRELOAD, it does not seems to work:

$ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2  ruby -r rbconfig -e "puts RbConfig::CONFIG['MAINLIBS']"
-lz -lrt -lrt -ldl -lcrypt -lm -lpthread


# Checking the directory
$ ls -l /usr/lib/x86_64-linux-gnu/libjemalloc*
-rw-r--r-- 1 root root 1119814 Jan 24  2022 /usr/lib/x86_64-linux-gnu/libjemalloc.a
-rw-r--r-- 1 root root 1119970 Jan 24  2022 /usr/lib/x86_64-linux-gnu/libjemalloc_pic.a
lrwxrwxrwx 1 root root      16 Jan 24  2022 /usr/lib/x86_64-linux-gnu/libjemalloc.so -> libjemalloc.so.2
-rw-r--r-- 1 root root  744440 Jan 24  2022 /usr/lib/x86_64-linux-gnu/libjemalloc.so.2

Let me see if I can make a new app and get the same error.


I didn't realized there was a more debug output:

```

-- Ruby level backtrace information ----------------------------------------
/home/circleci/repo/vendor/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:340:in block in create_worker' /home/circleci/repo/vendor/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:340:in catch'
/home/circleci/repo/vendor/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:341:in block (2 levels) in create_worker' /home/circleci/repo/vendor/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:341:in loop'
/home/circleci/repo/vendor/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:350:in block (3 levels) in create_worker' /home/circleci/repo/vendor/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:359:in run_task'
/home/circleci/repo/vendor/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/promise.rb:564:in block in realize' /home/circleci/repo/vendor/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:22:in execute'
/home/circleci/repo/vendor/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:48:in synchronize' /home/circleci/repo/vendor/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:48:in synchronize'
/home/circleci/repo/vendor/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:48:in block in synchronize' /home/circleci/repo/vendor/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:24:in block in execute'
/home/circleci/repo/vendor/ruby/3.2.0/gems/sprockets-4.2.1/lib/sprockets/manifest.rb:125:in block (2 levels) in find' /home/circleci/repo/vendor/ruby/3.2.0/gems/sprockets-4.2.1/lib/sprockets/manifest.rb:125:in to_a'
/home/circleci/repo/vendor/ruby/3.2.0/gems/sprockets-4.2.1/lib/sprockets/manifest.rb:125:in each' /home/circleci/repo/vendor/ruby/3.2.0/gems/sprockets-4.2.1/lib/sprockets/base.rb:88:in find_all_linked_assets'
/home/circleci/repo/vendor/ruby/3.2.0/gems/sprockets-4.2.1/lib/sprockets/base.rb:81:in find_asset' /home/circleci/repo/vendor/ruby/3.2.0/gems/sprockets-4.2.1/lib/sprockets/cached_environment.rb:44:in load'
/home/circleci/repo/vendor/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/map.rb:206:in fetch_or_store' /home/circleci/repo/vendor/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/map.rb:187:in fetch'
/home/circleci/repo/vendor/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/map.rb:207:in block in fetch_or_store' /home/circleci/repo/vendor/ruby/3.2.0/gems/sprockets-4.2.1/lib/sprockets/cached_environment.rb:44:in block in load'
/home/circleci/repo/vendor/ruby/3.2.0/gems/sprockets-4.2.1/lib/sprockets/loader.rb:43:in load' /home/circleci/repo/vendor/ruby/3.2.0/gems/sprockets-4.2.1/lib/sprockets/loader.rb:339:in fetch_asset_from_dependency_cache'
/home/circleci/repo/vendor/ruby/3.2.0/gems/sprockets-4.2.1/lib/sprockets/loader.rb:59:in block in load' /home/circleci/repo/vendor/ruby/3.2.0/gems/sprockets-4.2.1/lib/sprockets/loader.rb:184:in load_from_unloaded'
/home/circleci/repo/vendor/ruby/3.2.0/gems/sprockets-4.2.1/lib/sprockets/processor_utils.rb:65:in call_processors' /home/circleci/repo/vendor/ruby/3.2.0/gems/sprockets-4.2.1/lib/sprockets/processor_utils.rb:65:in reverse_each'
/home/circleci/repo/vendor/ruby/3.2.0/gems/sprockets-4.2.1/lib/sprockets/processor_utils.rb:66:in block in call_processors' /home/circleci/repo/vendor/ruby/3.2.0/gems/sprockets-4.2.1/lib/sprockets/processor_utils.rb:84:in call_processor'
/home/circleci/repo/vendor/ruby/3.2.0/gems/terser-1.2.2/lib/terser/compressor.rb:23:in call' /home/circleci/repo/vendor/ruby/3.2.0/gems/terser-1.2.2/lib/terser/compressor.rb:36:in call'
/home/circleci/repo/vendor/ruby/3.2.0/gems/terser-1.2.2/lib/terser.rb:181:in compile_with_map' /home/circleci/repo/vendor/ruby/3.2.0/gems/terser-1.2.2/lib/terser.rb:229:in run_terserjs'
/home/circleci/repo/vendor/ruby/3.2.0/gems/terser-1.2.2/lib/terser.rb:189:in context' /home/circleci/repo/vendor/ruby/3.2.0/gems/execjs-2.9.1/lib/execjs/module.rb:27:in compile'
/home/circleci/repo/vendor/ruby/3.2.0/gems/execjs-2.9.1/lib/execjs/runtime.rb:68:in compile' /home/circleci/repo/vendor/ruby/3.2.0/gems/execjs-2.9.1/lib/execjs/runtime.rb:68:in new'
/home/circleci/repo/vendor/ruby/3.2.0/gems/execjs-2.9.1/lib/execjs/mini_racer_runtime.rb:10:in initialize' /home/circleci/repo/vendor/ruby/3.2.0/gems/execjs-2.9.1/lib/execjs/mini_racer_runtime.rb:67:in translate'
/home/circleci/repo/vendor/ruby/3.2.0/gems/execjs-2.9.1/lib/execjs/mini_racer_runtime.rb:11:in block in initialize' /home/circleci/repo/vendor/ruby/3.2.0/gems/mini_racer-0.12.0/lib/mini_racer.rb:225:in eval'
/home/circleci/repo/vendor/ruby/3.2.0/gems/mini_racer-0.12.0/lib/mini_racer.rb:225:in synchronize' /home/circleci/repo/vendor/ruby/3.2.0/gems/mini_racer-0.12.0/lib/mini_racer.rb:227:in block in eval'
/home/circleci/repo/vendor/ruby/3.2.0/gems/mini_racer-0.12.0/lib/mini_racer.rb:348:in timeout' /home/circleci/repo/vendor/ruby/3.2.0/gems/mini_racer-0.12.0/lib/mini_racer.rb:228:in block (2 levels) in eval'
/home/circleci/repo/vendor/ruby/3.2.0/gems/mini_racer-0.12.0/lib/mini_racer.rb:228:in `eval_unsafe'

-- Machine register context ------------------------------------------------
RIP: 0x00007f97ea8d24e7 RBP: 0x00007f977fefa220 RSP: 0x00007f977fefa1e0
RAX: 0x00007f97edbd1000 RBX: 0x00007f96ec003000 RCX: 0x0000000000001000
RDX: 0x0000000000002127 RDI: 0x00007f96ec003000 RSI: 0x000000000003c000
R8: 0x0000000000040000 R9: 0x00007f977831dd10 R10: 0x00007f977831fc20
R11: 0x8bdbe29ebe0b09bc R12: 0x0000000000002000 R13: 0x00007f97edbb8000
R14: 0x000000000003c000 R15: 0x00005597131dd5a0 EFL: 0x0000000000010202

-- C level backtrace information -------------------------------------------
SEGV received in SEGV handler

</details>

@D-system
Copy link
Author

D-system commented Apr 23, 2024

I made a brand new Rails 6.1.7.7 app I got the same error with those changes:

  • remove webpacker
  • add gem "bootstrap", "~> 4.3"
  • add gem "sprockets-rails" (it does error out with sprockets and without webpacker)
  • add gem "mini_racer", "~> 0.12.0"

Note: it does precompile the files then seg fault.

``` $ bundle ; ./bin/rails assets:clobber assets:precompile Bundle complete! 18 Gemfile dependencies, 84 gems now installed. Use `bundle info [gemname]` to see where a bundled gem is installed. I, [2024-04-23T18:59:24.147478 #10018] INFO -- : Removed /home/circleci/new_rails_app/public/assets yarn install v1.22.19 [1/4] Resolving packages... success Already up-to-date. Done in 0.42s. I, [2024-04-23T18:59:25.739888 #10018] INFO -- : Writing /home/circleci/new_rails_app/public/assets/manifest-b4bf6e57a53c2bdb55b8998cc94cd00883793c1c37c5e5aea3ef6749b4f6d92b.js I, [2024-04-23T18:59:25.740896 #10018] INFO -- : Writing /home/circleci/new_rails_app/public/assets/manifest-b4bf6e57a53c2bdb55b8998cc94cd00883793c1c37c5e5aea3ef6749b4f6d92b.js.gz I, [2024-04-23T18:59:25.741133 #10018] INFO -- : Writing /home/circleci/new_rails_app/public/assets/application-04024382391bb910584145d8113cf35ef376b55d125bb4516cebeb14ce788597.css I, [2024-04-23T18:59:25.742186 #10018] INFO -- : Writing /home/circleci/new_rails_app/public/assets/application-04024382391bb910584145d8113cf35ef376b55d125bb4516cebeb14ce788597.css.gz ./bin/rails: [BUG] Segmentation fault at 0x00007fb3f7901008 ruby 3.2.3 (2024-01-18 revision 52bb2ac0a6) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0001 p:0000 s:0003 E:0011f0 DUMMY [FINISH]

-- Machine register context ------------------------------------------------
RIP: 0x00007fb3f4602745 RBP: 0x00007ffea2fe8d10 RSP: 0x00007ffea2fe8c80
RAX: 0x00007fb3f7901000 RBX: 0x00007fb374bc0000 RCX: 0x000000000003cfff
RDX: 0x000000000003bfff RDI: 0x00007fb374bc3000 RSI: 0x000000000003c000
R8: 0x00007fb3ec07e680 R9: 0x0000000000000000 R10: 0x00007fb3fe254f70
R11: 0x69454a582143dfed R12: 0x00007fb3ec03dd08 R13: 0x00007fb374bc3000
R14: 0x0000555dc5c6e350 R15: 0x000000000003c000 EFL: 0x0000000000010202

-- C level backtrace information -------------------------------------------
/usr/local/lib/libruby.so.3.2(rb_print_backtrace+0xd) [0x7fb3fe90494f] /home/circleci/ruby/vm_dump.c:785
/usr/local/lib/libruby.so.3.2(rb_vm_bugreport) /home/circleci/ruby/vm_dump.c:1080
/usr/local/lib/libruby.so.3.2(rb_bug_for_fatal_signal+0xf4) [0x7fb3fe6fb664] /home/circleci/ruby/error.c:813
/usr/local/lib/libruby.so.3.2(sigsegv+0x4d) [0x7fb3fe853f5d] /home/circleci/ruby/signal.c:964
/lib/x86_64-linux-gnu/libc.so.6(0x7fb3fe285520) [0x7fb3fe285520]
/home/circleci/.rubygems/extensions/x86_64-linux/3.2.0/mini_racer-0.12.0/mini_racer_extension.so(0x7fb3f4602745) [0x7fb3f4602745]
/home/circleci/.rubygems/extensions/x86_64-linux/3.2.0/mini_racer-0.12.0/mini_racer_extension.so(0x7fb3f4e18bbd) [0x7fb3f4e18bbd]
/home/circleci/.rubygems/extensions/x86_64-linux/3.2.0/mini_racer-0.12.0/mini_racer_extension.so(0x7fb3f4e18c16) [0x7fb3f4e18c16]
/home/circleci/.rubygems/extensions/x86_64-linux/3.2.0/mini_racer-0.12.0/mini_racer_extension.so(0x7fb3f4e60288) [0x7fb3f4e60288]
/home/circleci/.rubygems/extensions/x86_64-linux/3.2.0/mini_racer-0.12.0/mini_racer_extension.so(0x7fb3f4e08210) [0x7fb3f4e08210]
/home/circleci/.rubygems/extensions/x86_64-linux/3.2.0/mini_racer-0.12.0/mini_racer_extension.so(0x7fb3f4e07ffe) [0x7fb3f4e07ffe]
/home/circleci/.rubygems/extensions/x86_64-linux/3.2.0/mini_racer-0.12.0/mini_racer_extension.so(0x7fb3f4dffe15) [0x7fb3f4dffe15]
/home/circleci/.rubygems/extensions/x86_64-linux/3.2.0/mini_racer-0.12.0/mini_racer_extension.so(0x7fb3f491cba1) [0x7fb3f491cba1]
/home/circleci/.rubygems/extensions/x86_64-linux/3.2.0/mini_racer-0.12.0/mini_racer_extension.so(0x7fb3f491c619) [0x7fb3f491c619]
/home/circleci/.rubygems/extensions/x86_64-linux/3.2.0/mini_racer-0.12.0/mini_racer_extension.so(0x7fb3f44abaa0) [0x7fb3f44abaa0]
/home/circleci/.rubygems/extensions/x86_64-linux/3.2.0/mini_racer-0.12.0/mini_racer_extension.so(0x7fb3f44ae2c2) [0x7fb3f44ae2c2]
/home/circleci/.rubygems/extensions/x86_64-linux/3.2.0/mini_racer-0.12.0/mini_racer_extension.so(free_context_raw+0x137) [0x7fb3f44abc4f] /home/circleci/.rubygems/gems/mini_racer-0.12.0/ext/mini_racer_extension/mini_racer_extension.cc:1461
/home/circleci/.rubygems/extensions/x86_64-linux/3.2.0/mini_racer-0.12.0/mini_racer_extension.so(free_context+0xec) [0x7fb3f44abde5] /home/circleci/.rubygems/gems/mini_racer-0.12.0/ext/mini_racer_extension/mini_racer_extension.cc:1489
/home/circleci/.rubygems/extensions/x86_64-linux/3.2.0/mini_racer-0.12.0/mini_racer_extension.so(deallocate+0x24) [0x7fb3f44abea0] /home/circleci/.rubygems/gems/mini_racer-0.12.0/ext/mini_racer_extension/mini_racer_extension.cc:1516
/usr/local/lib/libruby.so.3.2(run_final+0xf) [0x7fb3fe71dea2] /home/circleci/ruby/gc.c:4399
/usr/local/lib/libruby.so.3.2(finalize_list) /home/circleci/ruby/gc.c:4418
/usr/local/lib/libruby.so.3.2(finalize_deferred_heap_pages) /home/circleci/ruby/gc.c:4447
/usr/local/lib/libruby.so.3.2(rb_objspace_call_finalizer+0x350) [0x7fb3fe72a4c0] /home/circleci/ruby/gc.c:4584
/usr/local/lib/libruby.so.3.2(rb_ec_finalize+0x2a) [0x7fb3fe706c31] /home/circleci/ruby/eval.c:168
/usr/local/lib/libruby.so.3.2(rb_ec_cleanup) /home/circleci/ruby/eval.c:262
/usr/local/lib/libruby.so.3.2(ruby_run_node+0x9d) [0x7fb3fe706e7d] /home/circleci/ruby/eval.c:330
/usr/local/bin/ruby(rb_main+0x21) [0x555dc3f48187] ./main.c:38
/usr/local/bin/ruby(main) ./main.c:57
/lib/x86_64-linux-gnu/libc.so.6(0x7fb3fe26cd90) [0x7fb3fe26cd90]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80) [0x7fb3fe26ce40]
[0x555dc3f481d5]

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

  • Loaded script: ./bin/rails

  • Loaded features:

    0 enumerator.so
    1 thread.rb
    2 fiber.so
    3 rational.so
    4 complex.so
    5 ruby2_keywords.rb
    6 /usr/local/lib/ruby/3.2.0/x86_64-linux/enc/encdb.so
    7 /usr/local/lib/ruby/3.2.0/x86_64-linux/enc/trans/transdb.so
    8 /usr/local/lib/ruby/3.2.0/x86_64-linux/rbconfig.rb
    9 /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/compatibility.rb
    10 /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/defaults.rb
    11 /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/deprecate.rb
    12 /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/errors.rb
    13 /usr/local/lib/ruby/site_ruby/3.2.0/rubygems/unknown_command_spell_checker.rb

[...]


</details>

@D-system
Copy link
Author

I also tried the same project with mini_racer 0.9. It works.

$ bundle ; ./bin/rails assets:clobber assets:precompile
Fetching gem metadata from https://rubygems.org/..........
Resolving dependencies...
Fetching libv8-node 18.19.0.0 (x86_64-linux) (was 21.7.2.0)
Installing libv8-node 18.19.0.0 (x86_64-linux) (was 21.7.2.0)
Fetching mini_racer 0.9.0 (was 0.12.0)
Installing mini_racer 0.9.0 (was 0.12.0) with native extensions
Bundle complete! 18 Gemfile dependencies, 84 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
I, [2024-04-23T19:04:10.030111 #10198]  INFO -- : Removed /home/circleci/new_rails_app/public/assets
yarn install v1.22.19
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.37s.
I, [2024-04-23T19:04:11.476483 #10198]  INFO -- : Writing /home/circleci/new_rails_app/public/assets/manifest-b4bf6e57a53c2bdb55b8998cc94cd00883793c1c37c5e5aea3ef6749b4f6d92b.js
I, [2024-04-23T19:04:11.477493 #10198]  INFO -- : Writing /home/circleci/new_rails_app/public/assets/manifest-b4bf6e57a53c2bdb55b8998cc94cd00883793c1c37c5e5aea3ef6749b4f6d92b.js.gz
I, [2024-04-23T19:04:11.477738 #10198]  INFO -- : Writing /home/circleci/new_rails_app/public/assets/application-04024382391bb910584145d8113cf35ef376b55d125bb4516cebeb14ce788597.css
I, [2024-04-23T19:04:11.478602 #10198]  INFO -- : Writing /home/circleci/new_rails_app/public/assets/application-04024382391bb910584145d8113cf35ef376b55d125bb4516cebeb14ce788597.css.gz
$

@D-system
Copy link
Author

It seems sprocket is used by default if no other assets pipeline exists.

The Gemfile without the comments

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '3.2.3'

gem 'rails', '~> 6.1.7', '>= 6.1.7.7'
gem 'sqlite3', '~> 1.4'
gem 'puma', '~> 5.0'
gem 'sass-rails', '>= 6'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.7'

gem "bootstrap", "~> 4.3"    # <- the problem
gem "mini_racer", "~> 0.9.0" # <- added

gem 'bootsnap', '>= 1.4.4', require: false

group :development, :test do
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end

group :development do
  gem 'web-console', '>= 4.1.0'
  gem 'rack-mini-profiler', '~> 2.0'
  gem 'listen', '~> 3.3'
  gem 'spring'
end

group :test do
  gem 'capybara', '>= 3.26'
  gem 'selenium-webdriver', '>= 4.0.0.rc1'
  gem 'webdrivers'
end

gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

@SamSaffron
Copy link
Collaborator

@lloeki this looks urgent , should we roll out a release that puts us back at an earlier version while we work this out ?

@SamSaffron
Copy link
Collaborator

@D-system does this repro in Linux as well

@D-system
Copy link
Author

@SamSaffron it's all tested inside the CircleCI image linked above. So, it's an Ubuntu based linux on x86_64.

@lloeki
Copy link
Collaborator

lloeki commented Apr 23, 2024

should we roll out a release that puts us back at an earlier version while we work this out ?

So the idea would be to have 0.12.1 be 0.9.0? That would be odd.

@lloeki
Copy link
Collaborator

lloeki commented Apr 23, 2024

I'll try a repro.

@D-system
Copy link
Author

The official ruby:3.2.3 Docker image does not have that problem.
Trying with cimg/ruby:3.2.3-node on my local machine (instead of their data centers)

@tisba
Copy link
Collaborator

tisba commented Apr 23, 2024

I'm not able to reproduce yet, can't spend much time on it right now though.

The product I'm working on in my day job is using docker images based on the ruby:3.3.0 and we have an extensive test suite with lots of JavaScript that is evaluated by mini_racer. It works with 0.12.0 on x86 and aarch64 (both linux) just fine, I also have no issues on macOS 14.4.1 (arm). Running directly on x86 without Docker in Github Actions is also fine.

🤔

@D-system
Copy link
Author

I tried with cimg/ruby:3.2.3-node as base image with --platform=x86_64, I was not able to reproduce the problem.
eg: FROM --platform=x86_64 cimg/ruby:3.2.3-node

I'm not able to reproduce the issue in a local docker either.

@lloeki
Copy link
Collaborator

lloeki commented Apr 23, 2024

LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 ruby -r rbconfig -e "puts RbConfig::CONFIG['MAINLIBS']"

LD_PRELOAD wouldn't change RbConfig::CONFIG['MAINLIBS'] output, it'd just forcefully inject jemalloc symbols into it.

In any case it appears that RbConfig::CONFIG['MAINLIBS'] doesn't contain anything about jemalloc anyway, even when statically built against jemalloc.

I'm not able to reproduce the issue in a local docker either.

I couldn't reproduce it either inside that x86_64 image: test suite passes, even when artificially stressing libv8 by throwing copious amounts of quickly hacked JS code processing to it (granted it was a real quick test).

tomhughes added a commit to tomhughes/openstreetmap-website that referenced this issue Apr 23, 2024
@SamSaffron
Copy link
Collaborator

@D-system any chance you can create a container that repros this consistently. Then we can docker run <SOMETHING> and have it crash?

@fjl82
Copy link

fjl82 commented Apr 24, 2024

I just wanted to add another case of this issue. I tried to update yesterday from 0.8 to 0.12 and started getting segfaults. I don't use docker or any version managers, just the system's 3.0.2p107 (the default ruby) on Ubuntu 22.04. This is on rails 7.0.8.1 with libv8 21.7.2.0. I've reverted to 0.8 and libv8 18.16.0.0 for now. I'm not using jemalloc (I have no idea what it is, and the mentioned libraries are not on my system). If you need any info or need anything tested let me know, but I don't want to figure out how to build or use docker images (have no interest in that).

@tomhughes
Copy link

I also saw it yesterday when upgrading from 0.9 to 0.12 both on Fedora 40 with ruby 3.3.0 and also on Ubuntu 22.04 with ruby 3.0.2p107.

@lloeki
Copy link
Collaborator

lloeki commented Apr 24, 2024

Thanks for the additional reports. Is it Sprockets-related as well?

@tomhughes
Copy link

It was using rails with sprockets yes, specifically using https://rubygems.org/gems/rtlcss in the sprockets chain which uses mini_racer to run https://www.npmjs.com/package/rtlcss on CSS files.

@fjl82
Copy link

fjl82 commented Apr 24, 2024

I am using sprockets, but I had not checked whether it's involved or not. I first got these errors when rendering a js response to an ajax request, and also saw them when shutting down the server (running puma).

@D-system
Copy link
Author

@SamSaffron I was not able to reproduce on my local host or local docker yesterday. I will give a new try tomorrow.

@bf4
Copy link

bf4 commented Apr 24, 2024

We were getting this on 0.9.0 -> 0.12.0 (production only) on Heroku on the '20' image with Ruby 3.3.0 and jemalloc and node v20.9.0

I did see this in a prod console, though may not be related

WARNING: V8 isolate was interrupted by Ruby, it can not be disposed and memory will not be reclaimed till the Ruby process exits.

and looking at prod crash logs

/app/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.12.0/lib/mini_racer.rb:183: [BUG] Segmentation fault at 0x0000000000000000

we're just using this to run embedded javascript

and have this slightly edited log

9 /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/rubygems/compatibility.rb

8 /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/rbconfig.rb

7 /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/enc/trans/transdb.so

6 /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/enc/encdb.so

5 ruby2_keywords.rb

4 complex.so

3 rational.so

2 fiber.so

1 thread.rb

0 enumerator.so



* Loaded features:



* Loaded script: sidekiq 7.2.2 app [0 of 8 busy]



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



/lib/x86_64-linux-gnu/libc.so.6(clone+0x43) [0x7f8949b2e353]

/lib/x86_64-linux-gnu/libpthread.so.0(start_thread+0xd9) [0x7f8949c09609]

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(nt_start+0x1c7) [0x7f894a124357] thread_pthread.c:2186

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(thread_start_func_2) thread.c:667

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(thread_do_start+0x12) [0x7f894a123992] thread.c:611

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(thread_do_start_proc+0x1a2) [0x7f894a123462] thread.c:592

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_vm_invoke_proc+0x33) [0x7f894a1785b3] vm.c:1728

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_invoke_proc+0x201) [0x7f894a178291] vm.c:1509

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_vm_exec+0x1aa) [0x7f894a17315a] vm.c:2486

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_exec_core) insns.def:958

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_sendish) vm_insnhelper.c:5588

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_invokeblock_i) vm_insnhelper.c:5547

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_invoke_block+0x21) [0x7f894a16f11b] vm_insnhelper.c:5026

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_invoke_ifunc_block) vm_insnhelper.c:4971

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_yield_with_cfunc) vm_insnhelper.c:4784

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_vm_pop_frame+0x0) [0x7f894a16870f] vm_insnhelper.c:4783

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_method_call_with_block_kw+0x87) [0x7f894a073367] proc.c:2472

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_vm_call_kw+0x149) [0x7f894a17c4c9] vm_eval.c:110

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_call0_body+0x48e) [0x7f894a178a8e] vm_eval.c:229

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_vm_exec+0x1aa) [0x7f894a17315a] vm.c:2486

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_exec_core) insns.def:814

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_sendish+0xe) [0x7f894a16ea38] vm_insnhelper.c:5581

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_call_cfunc_with_frame) vm_insnhelper.c:3518

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_call_cfunc_with_frame_+0x78) [0x7f894a15b735] vm_insnhelper.c:3490

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_thread_s_handle_interrupt+0x1b9) [0x7f894a121089] thread.c:2246

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_yield+0x78) [0x7f894a177a08] vm.c:1634

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(invoke_block_from_c_bh+0x2ca) [0x7f894a1771fa] vm.c:1509

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_vm_exec+0x1aa) [0x7f894a17315a] vm.c:2486

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_exec_core) insns.def:814

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_sendish+0xe) [0x7f894a16ea38] vm_insnhelper.c:5581

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_call_cfunc_with_frame) vm_insnhelper.c:3518

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_call_cfunc_with_frame_+0x78) [0x7f894a15b735] vm_insnhelper.c:3490

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_thread_s_handle_interrupt+0x1b9) [0x7f894a121089] thread.c:2246

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_yield+0x78) [0x7f894a177a08] vm.c:1634

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(invoke_block_from_c_bh+0x2ca) [0x7f894a1771fa] vm.c:1509

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_vm_exec) vm.c:2492

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_exec_loop+0xa) [0x7f894a1733f7] vm.c:2513

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_exec_core) insns.def:834

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_sendish+0xe) [0x7f894a16c9d4] vm_insnhelper.c:5581

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_call_method+0xc4) [0x7f894a174e84] vm_insnhelper.c:4569

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_call_method_each_type+0x81) [0x7f894a1741a1] vm_insnhelper.c:4417

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_call_cfunc_other) vm_insnhelper.c:3544

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_call_cfunc_with_frame) vm_insnhelper.c:3518

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_call_cfunc_with_frame_+0x7b) [0x7f894a15baa6] vm_insnhelper.c:3490

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_class_new_instance_pass_kw+0x52) [0x7f894a02c662] object.c:2131

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_funcallv_kw) vm_eval.c:1092

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_call+0x32) [0x7f894a17afb6] vm_eval.c:899

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_call0+0x288) [0x7f894a17a5c8] vm_eval.c:573

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_call0_cc+0x111) [0x7f894a179611] vm_eval.c:110

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_call0_body+0x48e) [0x7f894a178a8e] vm_eval.c:229

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_vm_exec+0x1aa) [0x7f894a17315a] vm.c:2486

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_exec_core) insns.def:834

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_sendish+0xe) [0x7f894a16c9d4] vm_insnhelper.c:5581

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_call_method+0xc4) [0x7f894a174e84] vm_insnhelper.c:4569

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_call_method_each_type+0x81) [0x7f894a1741a1] vm_insnhelper.c:4417

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_call_cfunc_other) vm_insnhelper.c:3544

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_call_cfunc_with_frame) vm_insnhelper.c:3518

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(vm_call_cfunc_with_frame_+0x7b) [0x7f894a15baa6] vm_insnhelper.c:3490

/app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so(rb_context_init_unsafe+0x58) [0x7f8922f88a01] mini_racer_extension.cc:993

/app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so(init_v8) mini_racer_extension.cc:374

/app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so(0x7f8922f8239f) [0x7f8922f8239f]

/app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so(0x7f8922facfdb) [0x7f8922facfdb]

/app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so(0x7f8923137aa0) [0x7f8923137aa0]

/app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so(0x7f89230c7ad3) [0x7f89230c7ad3]

/app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so(0x7f89230bafbe) [0x7f89230bafbe]

/app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so(0x7f8923491f48) [0x7f8923491f48]

app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so(0x7f892349261e) [0x7f892349261e]

app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so(0x7f892349701d) [0x7f892349701d]

app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so(0x7f89234529ad) [0x7f89234529ad]

app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so(0x7f8923452671) [0x7f8923452671]

/app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so(0x7f8923339a1d) [0x7f8923339a1d]

/lib/x86_64-linux-gnu/libc.so.6(malloc_usable_size+0x48) [0x7f8949aab1f8]

/lib/x86_64-linux-gnu/libpthread.so.0(__restore_rt+0x0) [0x7f8949c15420]

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(sigsegv+0x4d) [0x7f894a0d8b6d] signal.c:926

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_bug_for_fatal_signal+0x104) [0x7f8949f85344] error.c:1065

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_vm_bugreport) vm_dump.c:1151

/app/vendor/ruby-3.3.0/bin/../lib/libruby.so.3.3(rb_print_backtrace+0x11) [0x7f894a189ed7] vm_dump.c:820


-- C level backtrace information -------------------------------------------



R14: 0x00007f88f79d5c00 R15: 0x0000000000002000 EFL: 0x0000000000010246

R11: 0x00007f8949aab1b0 R12: 0x0000000000000002 R13: 0x0000000000000001

R8: 0x00007f894a4ad288  R9: 0x00007f88fbc041b8 R10: 0xfffffffffffff10b

RDX: 0x7270222c65757270 RDI: 0x00007f88fbec2000 RSI: 0x0000000000000000

RAX: 0x7270222c65757270 RBX: 0x00007f88fbec2000 RCX: 0x00007f88fbec1ff0

RIP: 0x00007f8949aab1f8 RBP: 0x00007f89097fce20 RSP: 0x00007f89097fcdf8

-- Machine register context ------------------------------------------------



Ruby thread count for this ractor: 19

Total ractor count: 1

-- Threading information ---------------------------------------------------



/app/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.12.0/lib/mini_racer.rb:183:in `init_unsafe'

/app/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.12.0/lib/mini_racer.rb:183:in `initialize'


-- Ruby level backtrace information ----------------------------------------



c:0001 p:---- s:0003 e:000002 DUMMY  [FINISH]

c:0073 p:---- s:0456 e:000455 CFUNC  :new

c:0074 p:0125 s:0468 e:000467 METHOD /app/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.12.0/lib/mini_racer.rb:183 [FINISH]

c:0075 p:---- s:0474 e:000473 CFUNC  :init_unsafe

-- Control frame information -----------------------------------------------



ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-linux]

/app/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.12.0/lib/mini_racer.rb:183: [BUG] Segmentation fault at 0x0000000000000000


7f892bf1c000-7f892bf1d000 r--p 00005000 fd:00 137112                     /app/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.3/lib/bootsnap/bootsnap.so

7f892bf1b000-7f892bf1c000 r--p 00005000 fd:00 137112                     /app/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.3/lib/bootsnap/bootsnap.so

7f892bf18000-7f892bf1b000 r-xp 00002000 fd:00 137112                     /app/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.3/lib/bootsnap/bootsnap.so

7f892bf16000-7f892bf18000 r--p 00000000 fd:00 137112                     /app/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.3/lib/bootsnap/bootsnap.so

7f892bf15000-7f892bf16000 rw-p 00004000 fd:00 35073                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/digest/sha2.so

7f892bf14000-7f892bf15000 r--p 00003000 fd:00 35073                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/digest/sha2.so

7f892bf13000-7f892bf14000 r--p 00003000 fd:00 35073                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/digest/sha2.so

7f892bf11000-7f892bf13000 r-xp 00001000 fd:00 35073                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/digest/sha2.so

7f892bf10000-7f892bf11000 r--p 00000000 fd:00 35073                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/digest/sha2.so

7f892bee0000-7f892bf00000 rw-p 00000000 00:00 0 

7f892beb0000-7f892bed0000 rw-p 00000000 00:00 0 

7f892be90000-7f892bea0000 rw-p 00000000 00:00 0 

7f892be60000-7f892be80000 rw-p 00000000 00:00 0 

7f892be30000-7f892be50000 rw-p 00000000 00:00 0 

7f892be2f000-7f892be30000 rw-p 00015000 fd:00 135943                     /app/vendor/bundle/ruby/3.3.0/gems/msgpack-1.7.2/lib/msgpack/msgpack.so

7f892be2e000-7f892be2f000 r--p 00014000 fd:00 135943                     /app/vendor/bundle/ruby/3.3.0/gems/msgpack-1.7.2/lib/msgpack/msgpack.so

7f892be2a000-7f892be2e000 r--p 00011000 fd:00 135943                     /app/vendor/bundle/ruby/3.3.0/gems/msgpack-1.7.2/lib/msgpack/msgpack.so

7f892be1c000-7f892be2a000 r-xp 00003000 fd:00 135943                     /app/vendor/bundle/ruby/3.3.0/gems/msgpack-1.7.2/lib/msgpack/msgpack.so

7f892be19000-7f892be1c000 r--p 00000000 fd:00 135943                     /app/vendor/bundle/ruby/3.3.0/gems/msgpack-1.7.2/lib/msgpack/msgpack.so

7f892be18000-7f892be19000 rw-p 00006000 fd:00 131487                     /app/vendor/bundle/ruby/3.3.0/gems/racc-1.7.3/lib/racc/cparse.so

7f892be17000-7f892be18000 r--p 00005000 fd:00 131487                     /app/vendor/bundle/ruby/3.3.0/gems/racc-1.7.3/lib/racc/cparse.so

7f892be16000-7f892be17000 r--p 00005000 fd:00 131487                     /app/vendor/bundle/ruby/3.3.0/gems/racc-1.7.3/lib/racc/cparse.so

7f892be13000-7f892be16000 r-xp 00002000 fd:00 131487                     /app/vendor/bundle/ruby/3.3.0/gems/racc-1.7.3/lib/racc/cparse.so

7f892be11000-7f892be13000 r--p 00000000 fd:00 131487                     /app/vendor/bundle/ruby/3.3.0/gems/racc-1.7.3/lib/racc/cparse.so

7f892bd80000-7f892be00000 rw-p 00000000 00:00 0 

7f892bc90000-7f892bd70000 rw-p 00000000 00:00 0 

7f892bc40000-7f892bc80000 rw-p 00000000 00:00 0 

7f892bc30000-7f892bc40000 rw-p 00000000 00:00 0 

7f892bc10000-7f892bc20000 rw-p 00000000 00:00 0 

7f892bc09000-7f892bc10000 r--s 00000000 07:14 17818                      /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache

7f892bc08000-7f892bc09000 rw-p 00003000 fd:00 35002                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/io/wait.so

7f892bc07000-7f892bc08000 r--p 00002000 fd:00 35002                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/io/wait.so

7f892bc06000-7f892bc07000 r--p 00002000 fd:00 35002                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/io/wait.so

7f892bc05000-7f892bc06000 r-xp 00001000 fd:00 35002                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/io/wait.so

7f892bc04000-7f892bc05000 r--p 00000000 fd:00 35002                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/io/wait.so

7f892b3ff000-7f892bc00000 rw-p 00000000 00:00 0 

7f892b3fb000-7f892b3ff000 rw-p 00223000 fd:00 131682                     /app/vendor/bundle/ruby/3.3.0/gems/nokogiri-1.16.4-x86_64-linux/lib/nokogiri/3.3/nokogiri.so

7f892b3ef000-7f892b3fb000 r--p 00217000 fd:00 131682                     /app/vendor/bundle/ruby/3.3.0/gems/nokogiri-1.16.4-x86_64-linux/lib/nokogiri/3.3/nokogiri.so

7f892b3ee000-7f892b3ef000 ---p 00217000 fd:00 131682                     /app/vendor/bundle/ruby/3.3.0/gems/nokogiri-1.16.4-x86_64-linux/lib/nokogiri/3.3/nokogiri.so

7f892b353000-7f892b3ee000 r--p 0017c000 fd:00 131682                     /app/vendor/bundle/ruby/3.3.0/gems/nokogiri-1.16.4-x86_64-linux/lib/nokogiri/3.3/nokogiri.so

7f892b215000-7f892b353000 r-xp 0003e000 fd:00 131682                     /app/vendor/bundle/ruby/3.3.0/gems/nokogiri-1.16.4-x86_64-linux/lib/nokogiri/3.3/nokogiri.so

7f892b1d7000-7f892b215000 r--p 00000000 fd:00 131682                     /app/vendor/bundle/ruby/3.3.0/gems/nokogiri-1.16.4-x86_64-linux/lib/nokogiri/3.3/nokogiri.so

7f892b1d6000-7f892b1d7000 rw-p 00003000 fd:00 131229                     /app/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.12.0/lib/mini_racer_loader.so

7f892b1d5000-7f892b1d6000 r--p 00002000 fd:00 131229                     /app/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.12.0/lib/mini_racer_loader.so

7f892b1d4000-7f892b1d5000 r--p 00002000 fd:00 131229                     /app/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.12.0/lib/mini_racer_loader.so

7f892b1d3000-7f892b1d4000 r-xp 00001000 fd:00 131229                     /app/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.12.0/lib/mini_racer_loader.so

7f892b1d2000-7f892b1d3000 r--p 00000000 fd:00 131229                     /app/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.12.0/lib/mini_racer_loader.so

7f892b1b0000-7f892b1d0000 rw-p 00000000 00:00 0 

7f892b160000-7f892b1a0000 rw-p 00000000 00:00 0 

7f892b14f000-7f892b150000 rw-p 00018000 07:14 17594                      /usr/lib/x86_64-linux-gnu/gconv/CP932.so

7f892b14e000-7f892b14f000 r--p 00017000 07:14 17594                      /usr/lib/x86_64-linux-gnu/gconv/CP932.so

7f892b139000-7f892b14e000 r--p 00003000 07:14 17594                      /usr/lib/x86_64-linux-gnu/gconv/CP932.so

7f892b137000-7f892b139000 r-xp 00001000 07:14 17594                      /usr/lib/x86_64-linux-gnu/gconv/CP932.so

7f892b136000-7f892b137000 r--p 00000000 07:14 17594                      /usr/lib/x86_64-linux-gnu/gconv/CP932.so

7f892b135000-7f892b136000 rw-p 00003000 fd:00 35070                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/digest/md5.so

7f892b134000-7f892b135000 r--p 00002000 fd:00 35070                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/digest/md5.so

7f892b133000-7f892b134000 r--p 00002000 fd:00 35070                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/digest/md5.so

7f892b132000-7f892b133000 r-xp 00001000 fd:00 35070                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/digest/md5.so

7f892b131000-7f892b132000 r--p 00000000 fd:00 35070                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/digest/md5.so

7f892b0f0000-7f892b130000 rw-p 00000000 00:00 0 

7f892b0d0000-7f892b0e0000 rw-p 00000000 00:00 0 

7f892b0a0000-7f892b0c0000 rw-p 00000000 00:00 0 

7f892b020000-7f892b090000 rw-p 00000000 00:00 0 

7f892b010000-7f892b020000 rw-p 00000000 00:00 0 

7f892b00f000-7f892b010000 rw-p 0000c000 fd:00 35081                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/objspace.so

7f892b00e000-7f892b00f000 r--p 0000b000 fd:00 35081                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/objspace.so

7f892b00c000-7f892b00e000 r--p 0000a000 fd:00 35081                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/objspace.so

7f892b005000-7f892b00c000 r-xp 00003000 fd:00 35081                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/objspace.so

7f892b002000-7f892b005000 r--p 00000000 fd:00 35081                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/objspace.so

7f892a6a0000-7f892b000000 rw-p 00000000 00:00 0 

7f892a680000-7f892a690000 rw-p 00000000 00:00 0 

7f892a650000-7f892a670000 rw-p 00000000 00:00 0 

7f892a5b0000-7f892a640000 rw-p 00000000 00:00 0 

7f892a5a8000-7f892a5b0000 rw-p 0000f000 fd:00 137671                     /app/vendor/bundle/ruby/3.3.0/gems/ed25519-1.3.0/lib/ed25519_ref10.so

7f892a5a7000-7f892a5a8000 r--p 0000e000 fd:00 137671                     /app/vendor/bundle/ruby/3.3.0/gems/ed25519-1.3.0/lib/ed25519_ref10.so

7f892a5a6000-7f892a5a7000 ---p 0000e000 fd:00 137671                     /app/vendor/bundle/ruby/3.3.0/gems/ed25519-1.3.0/lib/ed25519_ref10.so

7f892a5a5000-7f892a5a6000 r--p 0000d000 fd:00 137671                     /app/vendor/bundle/ruby/3.3.0/gems/ed25519-1.3.0/lib/ed25519_ref10.so

7f892a59a000-7f892a5a5000 r-xp 00002000 fd:00 137671                     /app/vendor/bundle/ruby/3.3.0/gems/ed25519-1.3.0/lib/ed25519_ref10.so

7f892a598000-7f892a59a000 r--p 00000000 fd:00 137671                     /app/vendor/bundle/ruby/3.3.0/gems/ed25519-1.3.0/lib/ed25519_ref10.so

7f892a597000-7f892a598000 rw-p 00008000 fd:00 132272                     /app/vendor/bundle/ruby/3.3.0/gems/bcrypt_pbkdf-1.1.0/lib/bcrypt_pbkdf_ext.so

7f892a596000-7f892a597000 r--p 00007000 fd:00 132272                     /app/vendor/bundle/ruby/3.3.0/gems/bcrypt_pbkdf-1.1.0/lib/bcrypt_pbkdf_ext.so

7f892a594000-7f892a596000 r--p 00006000 fd:00 132272                     /app/vendor/bundle/ruby/3.3.0/gems/bcrypt_pbkdf-1.1.0/lib/bcrypt_pbkdf_ext.so

7f892a58f000-7f892a594000 r-xp 00001000 fd:00 132272                     /app/vendor/bundle/ruby/3.3.0/gems/bcrypt_pbkdf-1.1.0/lib/bcrypt_pbkdf_ext.so

f892a58e000-7f892a58f000 r--p 00000000 fd:00 132272                     /app/vendor/bundle/ruby/3.3.0/gems/bcrypt_pbkdf-1.1.0/lib/bcrypt_pbkdf_ext.so

f892a58d000-7f892a58e000 rw-p 00008000 fd:00 135443                     /app/vendor/bundle/ruby/3.3.0/gems/io-console-0.5.9/lib/io/console.so

f892a58c000-7f892a58d000 r--p 00007000 fd:00 135443                     /app/vendor/bundle/ruby/3.3.0/gems/io-console-0.5.9/lib/io/console.so

7f892a58b000-7f892a58c000 ---p 00007000 fd:00 135443                     /app/vendor/bundle/ruby/3.3.0/gems/io-console-0.5.9/lib/io/console.so

7f892a58a000-7f892a58b000 r--p 00006000 fd:00 135443                     /app/vendor/bundle/ruby/3.3.0/gems/io-console-0.5.9/lib/io/console.so

7f892a586000-7f892a58a000 r-xp 00002000 fd:00 135443                     /app/vendor/bundle/ruby/3.3.0/gems/io-console-0.5.9/lib/io/console.so

7f892a584000-7f892a586000 r--p 00000000 fd:00 135443                     /app/vendor/bundle/ruby/3.3.0/gems/io-console-0.5.9/lib/io/console.so

7f892a4c0000-7f892a580000 rw-p 00000000 00:00 0 

7f892a470000-7f892a4b0000 rw-p 00000000 00:00 0 

7f892a450000-7f892a460000 rw-p 00000000 00:00 0 

7f892a420000-7f892a440000 rw-p 00000000 00:00 0 

7f892a410000-7f892a420000 rw-p 00000000 00:00 0 

7f892a40f000-7f892a410000 rw-p 00005000 07:14 10559                      /usr/lib/x86_64-linux-gnu/libcom_err.so.2.1

7f892a40e000-7f892a40f000 r--p 00004000 07:14 10559                      /usr/lib/x86_64-linux-gnu/libcom_err.so.2.1

7f892a40d000-7f892a40e000 r--p 00004000 07:14 10559                      /usr/lib/x86_64-linux-gnu/libcom_err.so.2.1

7f892a40b000-7f892a40d000 r-xp 00002000 07:14 10559                      /usr/lib/x86_64-linux-gnu/libcom_err.so.2.1

7f892a409000-7f892a40b000 r--p 00000000 07:14 10559                      /usr/lib/x86_64-linux-gnu/libcom_err.so.2.1

7f892a408000-7f892a409000 rw-p 00005000 07:14 10760                      /usr/lib/x86_64-linux-gnu/libkeyutils.so.1.8

7f892a407000-7f892a408000 r--p 00004000 07:14 10760                      /usr/lib/x86_64-linux-gnu/libkeyutils.so.1.8

7f892a406000-7f892a407000 r--p 00004000 07:14 10760                      /usr/lib/x86_64-linux-gnu/libkeyutils.so.1.8

7f892a404000-7f892a406000 r-xp 00002000 07:14 10760                      /usr/lib/x86_64-linux-gnu/libkeyutils.so.1.8

7f892a402000-7f892a404000 r--p 00000000 07:14 10760                      /usr/lib/x86_64-linux-gnu/libkeyutils.so.1.8

7f89293f0000-7f892a400000 rw-p 00000000 00:00 0 

7f8929380000-7f89293e0000 rw-p 00000000 00:00 0 

7f8929360000-7f8929370000 rw-p 00000000 00:00 0 

7f8929320000-7f8929350000 rw-p 00000000 00:00 0 

7f89292f0000-7f8929310000 rw-p 00000000 00:00 0 

7f8929290000-7f89292e0000 rw-p 00000000 00:00 0 

7f8929250000-7f8929280000 rw-p 00000000 00:00 0 

7f8929210000-7f8929240000 rw-p 00000000 00:00 0 

7f89291f0000-7f8929200000 rw-p 00000000 00:00 0 

7f8929180000-7f89291e0000 rw-p 00000000 00:00 0 

7f8929150000-7f8929170000 rw-p 00000000 00:00 0 

7f8929040000-7f8929140000 rw-p 00000000 00:00 0 

7f892903f000-7f8929040000 ---p 00000000 00:00 0 

7f892903e000-7f892903f000 rw-p 0000d000 07:14 10766                      /usr/lib/x86_64-linux-gnu/libkrb5support.so.0.1

7f892903d000-7f892903e000 r--p 0000c000 07:14 10766                      /usr/lib/x86_64-linux-gnu/libkrb5support.so.0.1

7f892903a000-7f892903d000 r--p 0000a000 07:14 10766                      /usr/lib/x86_64-linux-gnu/libkrb5support.so.0.1

7f8929033000-7f892903a000 r-xp 00003000 07:14 10766                      /usr/lib/x86_64-linux-gnu/libkrb5support.so.0.1

7f8929030000-7f8929033000 r--p 00000000 07:14 10766                      /usr/lib/x86_64-linux-gnu/libkrb5support.so.0.1

7f8929020000-7f8929030000 rw-p 00000000 00:00 0 

7f8929010000-7f8929020000 rw-p 00000000 00:00 0 

7f892900f000-7f8929010000 rw-p 0000a000 07:14 10717                      /usr/lib/x86_64-linux-gnu/libheimntlm.so.0.1.0

7f892900e000-7f892900f000 r--p 00009000 07:14 10717                      /usr/lib/x86_64-linux-gnu/libheimntlm.so.0.1.0

7f892900d000-7f892900e000 ---p 00009000 07:14 10717                      /usr/lib/x86_64-linux-gnu/libheimntlm.so.0.1.0

7f892900b000-7f892900d000 r--p 00007000 07:14 10717                      /usr/lib/x86_64-linux-gnu/libheimntlm.so.0.1.0

7f8929007000-7f892900b000 r-xp 00003000 07:14 10717                      /usr/lib/x86_64-linux-gnu/libheimntlm.so.0.1.0

7f8929004000-7f8929007000 r--p 00000000 07:14 10717                      /usr/lib/x86_64-linux-gnu/libheimntlm.so.0.1.0

7f8928000000-7f8929000000 rw-p 00000000 00:00 0 

7f8927fd0000-7f8927ff0000 rw-p 00000000 00:00 0 

7f8927fa0000-7f8927fc0000 rw-p 00000000 00:00 0 

7f8927f60000-7f8927f90000 rw-p 00000000 00:00 0 

7f8927e90000-7f8927f50000 rw-p 00000000 00:00 0 

7f8927e70000-7f8927e80000 rw-p 00000000 00:00 0 

7f8927cd0000-7f8927e60000 rw-p 00000000 00:00 0 

7f8927c30000-7f8927cc0000 rw-p 00000000 00:00 0 

7f8927b8f000-7f8927c20000 rw-p 00000000 00:00 0 

7f8927b8e000-7f8927b8f000 rw-p 00039000 fd:00 145359                     /app/vendor/bundle/ruby/3.3.0/gems/pg-1.5.6/lib/pg_ext.so

7f8927b8d000-7f8927b8e000 r--p 00038000 fd:00 145359                     /app/vendor/bundle/ruby/3.3.0/gems/pg-1.5.6/lib/pg_ext.so

7f8927b8c000-7f8927b8d000 ---p 00038000 fd:00 145359                     /app/vendor/bundle/ruby/3.3.0/gems/pg-1.5.6/lib/pg_ext.so

7f8927b80000-7f8927b8c000 r--p 0002c000 fd:00 145359                     /app/vendor/bundle/ruby/3.3.0/gems/pg-1.5.6/lib/pg_ext.so

7f8927b5d000-7f8927b80000 r-xp 00009000 fd:00 145359                     /app/vendor/bundle/ruby/3.3.0/gems/pg-1.5.6/lib/pg_ext.so

7f8927b54000-7f8927b5d000 r--p 00000000 fd:00 145359                     /app/vendor/bundle/ruby/3.3.0/gems/pg-1.5.6/lib/pg_ext.so

7f8927b53000-7f8927b54000 rw-p 00055000 07:14 10926                      /usr/lib/x86_64-linux-gnu/libpq.so.5.16

7f8927b4f000-7f8927b53000 r--p 00051000 07:14 10926                      /usr/lib/x86_64-linux-gnu/libpq.so.5.16

7f8927b2e000-7f8927b4f000 r--p 00031000 07:14 10926                      /usr/lib/x86_64-linux-gnu/libpq.so.5.16

7f8927b08000-7f8927b2e000 r-xp 0000b000 07:14 10926                      /usr/lib/x86_64-linux-gnu/libpq.so.5.16

7f8927afd000-7f8927b08000 r--p 00000000 07:14 10926                      /usr/lib/x86_64-linux-gnu/libpq.so.5.16

7f8927afb000-7f8927afd000 rw-p 0004a000 07:14 10695                      /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2

7f8927af9000-7f8927afb000 r--p 00048000 07:14 10695                      /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2

7f8927aed000-7f8927af9000 r--p 0003d000 07:14 10695                      /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2

7f8927abb000-7f8927aed000 r-xp 0000b000 07:14 10695                      /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2

7f8927ab0000-7f8927abb000 r--p 00000000 07:14 10695                      /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2.2

7f8927aae000-7f8927ab0000 rw-p 00000000 00:00 0 

7f8927aad000-7f8927aae000 rw-p 00052000 07:14 10775                      /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2.10.12

7f8927aab000-7f8927aad000 r--p 00050000 07:14 10775                      /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2.10.12

7f8927aaa000-7f8927aab000 ---p 00050000 07:14 10775                      /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2.10.12

7f8927a9b000-7f8927aaa000 r--p 00041000 07:14 10775                      /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2.10.12

7f8927a67000-7f8927a9b000 r-xp 0000d000 07:14 10775                      /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2.10.12

7f8927a5a000-7f8927a67000 r--p 00000000 07:14 10775                      /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2.10.12

7f8927a58000-7f8927a5a000 rw-p 000da000 07:14 10764                      /usr/lib/x86_64-linux-gnu/libkrb5.so.3.3

7f8927a4a000-7f8927a58000 r--p 000cc000 07:14 10764                      /usr/lib/x86_64-linux-gnu/libkrb5.so.3.3

7f8927a49000-7f8927a4a000 ---p 000cc000 07:14 10764                      /usr/lib/x86_64-linux-gnu/libkrb5.so.3.3

7f8927a00000-7f8927a49000 r--p 00083000 07:14 10764                      /usr/lib/x86_64-linux-gnu/libkrb5.so.3.3

7f892799f000-7f8927a00000 r-xp 00022000 07:14 10764                      /usr/lib/x86_64-linux-gnu/libkrb5.so.3.3

7f892797d000-7f892799f000 r--p 00000000 07:14 10764                      /usr/lib/x86_64-linux-gnu/libkrb5.so.3.3

7f892797c000-7f892797d000 rw-p 00000000 00:00 0 

7f892797b000-7f892797c000 rw-p 0002e000 07:14 10758                      /usr/lib/x86_64-linux-gnu/libk5crypto.so.3.1

7f892797a000-7f892797b000 r--p 0002d000 07:14 10758                      /usr/lib/x86_64-linux-gnu/libk5crypto.so.3.1

7f8927979000-7f892797a000 ---p 0002d000 07:14 10758                      /usr/lib/x86_64-linux-gnu/libk5crypto.so.3.1

7f892796c000-7f8927979000 r--p 00020000 07:14 10758                      /usr/lib/x86_64-linux-gnu/libk5crypto.so.3.1

7f8927950000-7f892796c000 r-xp 00004000 07:14 10758                      /usr/lib/x86_64-linux-gnu/libk5crypto.so.3.1

7f892794c000-7f8927950000 r--p 00000000 07:14 10758                      /usr/lib/x86_64-linux-gnu/libk5crypto.so.3.1

7f892794b000-7f892794c000 rw-p 0000f000 07:14 10770                      /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2.10.12

7f892794a000-7f892794b000 r--p 0000e000 07:14 10770                      /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2.10.12

7f8927949000-7f892794a000 ---p 0000e000 07:14 10770                      /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2.10.12

7f8927946000-7f8927949000 r--p 0000b000 07:14 10770                      /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2.10.12

7f892793e000-7f8927946000 r-xp 00003000 07:14 10770                      /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2.10.12

7f892793b000-7f892793e000 r--p 00000000 07:14 10770                      /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2.10.12

7f8927939000-7f892793b000 rw-p 00000000 00:00 0 

7f8927938000-7f8927939000 rw-p 00018000 07:14 10941                      /usr/lib/x86_64-linux-gnu/libresolv-2.31.so

7f8927937000-7f8927938000 r--p 00017000 07:14 10941                      /usr/lib/x86_64-linux-gnu/libresolv-2.31.so

7f8927933000-7f8927937000 r--p 00014000 07:14 10941                      /usr/lib/x86_64-linux-gnu/libresolv-2.31.so

7f8927923000-7f8927933000 r-xp 00004000 07:14 10941                      /usr/lib/x86_64-linux-gnu/libresolv-2.31.so

7f892791f000-7f8927923000 r--p 00000000 07:14 10941                      /usr/lib/x86_64-linux-gnu/libresolv-2.31.so

7f892791e000-7f892791f000 rw-p 0001b000 07:14 10958                      /usr/lib/x86_64-linux-gnu/libsasl2.so.2.0.25

7f892791d000-7f892791e000 r--p 0001a000 07:14 10958                      /usr/lib/x86_64-linux-gnu/libsasl2.so.2.0.25

7f8927917000-7f892791d000 r--p 00015000 07:14 10958                      /usr/lib/x86_64-linux-gnu/libsasl2.so.2.0.25

7f8927905000-7f8927917000 r-xp 00003000 07:14 10958                      /usr/lib/x86_64-linux-gnu/libsasl2.so.2.0.25

7f8927902000-7f8927905000 r--p 00000000 07:14 10958                      /usr/lib/x86_64-linux-gnu/libsasl2.so.2.0.25

7f8927900000-7f8927902000 rw-p 00042000 07:14 10693                      /usr/lib/x86_64-linux-gnu/libgssapi.so.3.0.0

7f89278fe000-7f8927900000 r--p 00040000 07:14 10693                      /usr/lib/x86_64-linux-gnu/libgssapi.so.3.0.0

7f89278f3000-7f89278fe000 r--p 00036000 07:14 10693                      /usr/lib/x86_64-linux-gnu/libgssapi.so.3.0.0

7f89278ca000-7f89278f3000 r-xp 0000d000 07:14 10693                      /usr/lib/x86_64-linux-gnu/libgssapi.so.3.0.0

7f89278bd000-7f89278ca000 r--p 00000000 07:14 10693                      /usr/lib/x86_64-linux-gnu/libgssapi.so.3.0.0

7f89278bc000-7f89278bd000 rw-p 00000000 00:00 0 

7f89278ba000-7f89278bc000 rw-p 0008f000 07:14 10762                      /usr/lib/x86_64-linux-gnu/libkrb5.so.26.0.0

7f89278b6000-7f89278ba000 r--p 0008b000 07:14 10762                      /usr/lib/x86_64-linux-gnu/libkrb5.so.26.0.0

7f8927896000-7f89278b6000 r--p 0006c000 07:14 10762                      /usr/lib/x86_64-linux-gnu/libkrb5.so.26.0.0

7f8927845000-7f8927896000 r-xp 0001b000 07:14 10762                      /usr/lib/x86_64-linux-gnu/libkrb5.so.26.0.0

7f892782a000-7f8927845000 r--p 00000000 07:14 10762                      /usr/lib/x86_64-linux-gnu/libkrb5.so.26.0.0

7f8927829000-7f892782a000 rw-p 00017000 07:14 10946                      /usr/lib/x86_64-linux-gnu/libroken.so.18.1.0

7f8927828000-7f8927829000 r--p 00016000 07:14 10946                      /usr/lib/x86_64-linux-gnu/libroken.so.18.1.0

7f8927827000-7f8927828000 ---p 00016000 07:14 10946                      /usr/lib/x86_64-linux-gnu/libroken.so.18.1.0

7f8927823000-7f8927827000 r--p 00012000 07:14 10946                      /usr/lib/x86_64-linux-gnu/libroken.so.18.1.0

7f8927816000-7f8927823000 r-xp 00005000 07:14 10946                      /usr/lib/x86_64-linux-gnu/libroken.so.18.1.0

7f8927811000-7f8927816000 r--p 00000000 07:14 10946                      /usr/lib/x86_64-linux-gnu/libroken.so.18.1.0

7f8927810000-7f8927811000 rw-p 0000a000 07:14 10622                      /usr/lib/x86_64-linux-gnu/libffi.so.7.1.0

7f892780f000-7f8927810000 r--p 00009000 07:14 10622                      /usr/lib/x86_64-linux-gnu/libffi.so.7.1.0

7f892780e000-7f892780f000 ---p 00009000 07:14 10622                      /usr/lib/x86_64-linux-gnu/libffi.so.7.1.0

7f892780d000-7f892780e000 r--p 00008000 07:14 10622                      /usr/lib/x86_64-linux-gnu/libffi.so.7.1.0

7f8927807000-7f892780d000 r-xp 00002000 07:14 10622                      /usr/lib/x86_64-linux-gnu/libffi.so.7.1.0

7f8927805000-7f8927807000 r--p 00000000 07:14 10622                      /usr/lib/x86_64-linux-gnu/libffi.so.7.1.0

7f8927804000-7f8927805000 rw-p 00003000 fd:00 131958                     /app/vendor/bundle/ruby/3.3.0/gems/scout_apm-5.3.8/lib/rusage.so

7f8927803000-7f8927804000 r--p 00002000 fd:00 131958                     /app/vendor/bundle/ruby/3.3.0/gems/scout_apm-5.3.8/lib/rusage.so

7f8927802000-7f8927803000 r--p 00002000 fd:00 131958                     /app/vendor/bundle/ruby/3.3.0/gems/scout_apm-5.3.8/lib/rusage.so

7f8927801000-7f8927802000 r-xp 00001000 fd:00 131958                     /app/vendor/bundle/ruby/3.3.0/gems/scout_apm-5.3.8/lib/rusage.so

7f8927800000-7f8927801000 r--p 00000000 fd:00 131958                     /app/vendor/bundle/ruby/3.3.0/gems/scout_apm-5.3.8/lib/rusage.so

7f89273fe000-7f8927800000 rw-p 00000000 00:00 0 

7f89273fc000-7f89273fe000 rw-p 001d0000 07:14 10676                      /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0

7f89273ed000-7f89273fc000 r--p 001c1000 07:14 10676                      /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0

7f89273ec000-7f89273ed000 ---p 001c1000 07:14 10676                      /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0

7f892737b000-7f89273ec000 r--p 00150000 07:14 10676                      /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0

7f892725a000-7f892737b000 r-xp 0002f000 07:14 10676                      /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0

7f892722b000-7f892725a000 r--p 00000000 07:14 10676                      /usr/lib/x86_64-linux-gnu/libgnutls.so.30.27.0

7f8927228000-7f892722b000 rw-p 000a2000 07:14 10509                      /usr/lib/x86_64-linux-gnu/libasn1.so.8.0.0

7f8927227000-7f8927228000 r--p 000a1000 07:14 10509                      /usr/lib/x86_64-linux-gnu/libasn1.so.8.0.0

7f8927226000-7f8927227000 ---p 000a1000 07:14 10509                      /usr/lib/x86_64-linux-gnu/libasn1.so.8.0.0

7f8927209000-7f8927226000 r--p 00084000 07:14 10509                      /usr/lib/x86_64-linux-gnu/libasn1.so.8.0.0

7f892719f000-7f8927209000 r-xp 0001a000 07:14 10509                      /usr/lib/x86_64-linux-gnu/libasn1.so.8.0.0

7f8927185000-7f892719f000 r--p 00000000 07:14 10509                      /usr/lib/x86_64-linux-gnu/libasn1.so.8.0.0

7f8927184000-7f8927185000 rw-p 00000000 00:00 0 

7f8927183000-7f8927184000 rw-p 00035000 07:14 10705                      /usr/lib/x86_64-linux-gnu/libhcrypto.so.4.1.0

7f8927181000-7f8927183000 r--p 00033000 07:14 10705                      /usr/lib/x86_64-linux-gnu/libhcrypto.so.4.1.0

7f8927173000-7f8927181000 r--p 00026000 07:14 10705                      /usr/lib/x86_64-linux-gnu/libhcrypto.so.4.1.0

7f8927154000-7f8927173000 r-xp 00007000 07:14 10705                      /usr/lib/x86_64-linux-gnu/libhcrypto.so.4.1.0

7f892714d000-7f8927154000 r--p 00000000 07:14 10705                      /usr/lib/x86_64-linux-gnu/libhcrypto.so.4.1.0

7f8927143000-7f892714d000 rw-p 0012b000 07:14 10885                      /usr/lib/x86_64-linux-gnu/libp11-kit.so.0.3.0

7f8927138000-7f8927143000 r--p 00120000 07:14 10885                      /usr/lib/x86_64-linux-gnu/libp11-kit.so.0.3.0

7f89270dc000-7f8927138000 r--p 000c5000 07:14 10885                      /usr/lib/x86_64-linux-gnu/libp11-kit.so.0.3.0

7f8927042000-7f89270dc000 r-xp 0002b000 07:14 10885                      /usr/lib/x86_64-linux-gnu/libp11-kit.so.0.3.0

7f8927017000-7f8927042000 r--p 00000000 07:14 10885                      /usr/lib/x86_64-linux-gnu/libp11-kit.so.0.3.0

7f8927016000-7f8927017000 rw-p 0001f000 07:14 10739                      /usr/lib/x86_64-linux-gnu/libidn2.so.0.3.6

7f8927015000-7f8927016000 r--p 0001e000 07:14 10739                      /usr/lib/x86_64-linux-gnu/libidn2.so.0.3.6

7f8927014000-7f8927015000 ---p 0001e000 07:14 10739                      /usr/lib/x86_64-linux-gnu/libidn2.so.0.3.6

7f8926ffd000-7f8927014000 r--p 00007000 07:14 10739                      /usr/lib/x86_64-linux-gnu/libidn2.so.0.3.6

7f8926ff8000-7f8926ffd000 r-xp 00002000 07:14 10739                      /usr/lib/x86_64-linux-gnu/libidn2.so.0.3.6

7f8926ff6000-7f8926ff8000 r--p 00000000 07:14 10739                      /usr/lib/x86_64-linux-gnu/libidn2.so.0.3.6

7f8926ff5000-7f8926ff6000 rw-p 00180000 07:14 11011                      /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0

7f8926ff2000-7f8926ff5000 r--p 0017d000 07:14 11011                      /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0

7f8926ff1000-7f8926ff2000 ---p 0017d000 07:14 11011                      /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0

7f8926eba000-7f8926ff1000 r--p 00046000 07:14 11011                      /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0

7f8926e84000-7f8926eba000 r-xp 00010000 07:14 11011                      /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0

7f8926e74000-7f8926e84000 r--p 00000000 07:14 11011                      /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0

7f8926e73000-7f8926e74000 rw-p 00014000 07:14 10986                      /usr/lib/x86_64-linux-gnu/libtasn1.so.6.6.0

7f8926e72000-7f8926e73000 r--p 00013000 07:14 10986                      /usr/lib/x86_64-linux-gnu/libtasn1.so.6.6.0

7f8926e71000-7f8926e72000 ---p 00013000 07:14 10986                      /usr/lib/x86_64-linux-gnu/libtasn1.so.6.6.0

7f8926e6d000-7f8926e71000 r--p 0000f000 07:14 10986                      /usr/lib/x86_64-linux-gnu/libtasn1.so.6.6.0

7f8926e61000-7f8926e6d000 r-xp 00003000 07:14 10986                      /usr/lib/x86_64-linux-gnu/libtasn1.so.6.6.0

7f8926e5e000-7f8926e61000 r--p 00000000 07:14 10986                      /usr/lib/x86_64-linux-gnu/libtasn1.so.6.6.0

7f8926e5d000-7f8926e5e000 rw-p 00038000 07:14 10832                      /usr/lib/x86_64-linux-gnu/libnettle.so.7.0

7f8926e5b000-7f8926e5d000 r--p 00036000 07:14 10832                      /usr/lib/x86_64-linux-gnu/libnettle.so.7.0

7f8926e4b000-7f8926e5b000 r--p 00027000 07:14 10832                      /usr/lib/x86_64-linux-gnu/libnettle.so.7.0

7f8926e2d000-7f8926e4b000 r-xp 00009000 07:14 10832                      /usr/lib/x86_64-linux-gnu/libnettle.so.7.0

7f8926e24000-7f8926e2d000 r--p 00000000 07:14 10832                      /usr/lib/x86_64-linux-gnu/libnettle.so.7.0

7f8926e23000-7f8926e24000 rw-p 00035000 07:14 10721                      /usr/lib/x86_64-linux-gnu/libhogweed.so.5.0

7f8926e22000-7f8926e23000 r--p 00034000 07:14 10721                      /usr/lib/x86_64-linux-gnu/libhogweed.so.5.0

7f8926e04000-7f8926e22000 r--p 00017000 07:14 10721                      /usr/lib/x86_64-linux-gnu/libhogweed.so.5.0

7f8926df4000-7f8926e04000 r-xp 00007000 07:14 10721                      /usr/lib/x86_64-linux-gnu/libhogweed.so.5.0

7f8926ded000-7f8926df4000 r--p 00000000 07:14 10721                      /usr/lib/x86_64-linux-gnu/libhogweed.so.5.0

7f8926dec000-7f8926ded000 rw-p 00028000 07:14 11040                      /usr/lib/x86_64-linux-gnu/libwind.so.0.0.0

7f8926deb000-7f8926dec000 r--p 00027000 07:14 11040                      /usr/lib/x86_64-linux-gnu/libwind.so.0.0.0

7f8926dc6000-7f8926deb000 r--p 00003000 07:14 11040                      /usr/lib/x86_64-linux-gnu/libwind.so.0.0.0

7f8926dc4000-7f8926dc6000 r-xp 00001000 07:14 11040                      /usr/lib/x86_64-linux-gnu/libwind.so.0.0.0

7f8926dc3000-7f8926dc4000 r--p 00000000 07:14 11040                      /usr/lib/x86_64-linux-gnu/libwind.so.0.0.0

7f8926dc2000-7f8926dc3000 rw-p 00010000 07:14 10715                      /usr/lib/x86_64-linux-gnu/libheimbase.so.1.0.0

7f8926dc1000-7f8926dc2000 r--p 0000f000 07:14 10715                      /usr/lib/x86_64-linux-gnu/libheimbase.so.1.0.0

7f8926dbd000-7f8926dc1000 r--p 0000c000 07:14 10715                      /usr/lib/x86_64-linux-gnu/libheimbase.so.1.0.0

7f8926db4000-7f8926dbd000 r-xp 00003000 07:14 10715                      /usr/lib/x86_64-linux-gnu/libheimbase.so.1.0.0

7f8926db1000-7f8926db4000 r--p 00000000 07:14 10715                      /usr/lib/x86_64-linux-gnu/libheimbase.so.1.0.0

7f8926db0000-7f8926db1000 rw-p 00000000 00:00 0 

7f8926daf000-7f8926db0000 rw-p 0004b000 07:14 10723                      /usr/lib/x86_64-linux-gnu/libhx509.so.5.0.0

7f8926dac000-7f8926daf000 r--p 00048000 07:14 10723                      /usr/lib/x86_64-linux-gnu/libhx509.so.5.0.0

7f8926d9c000-7f8926dac000 r--p 00039000 07:14 10723                      /usr/lib/x86_64-linux-gnu/libhx509.so.5.0.0

7f8926d73000-7f8926d9c000 r-xp 00010000 07:14 10723                      /usr/lib/x86_64-linux-gnu/libhx509.so.5.0.0

7f8926d63000-7f8926d73000 r--p 00000000 07:14 10723                      /usr/lib/x86_64-linux-gnu/libhx509.so.5.0.0

7f8926d60000-7f8926d63000 rw-p 00125000 07:14 10972                      /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6

7f8926d5d000-7f8926d60000 r--p 00122000 07:14 10972                      /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6

7f8926d5c000-7f8926d5d000 ---p 00122000 07:14 10972                      /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6

7f8926d28000-7f8926d5c000 r--p 000ee000 07:14 10972                      /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6

7f8926c48000-7f8926d28000 r-xp 0000e000 07:14 10972                      /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6

7f8926c3a000-7f8926c48000 r--p 00000000 07:14 10972                      /usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6

7f8926c39000-7f8926c3a000 rw-p 00003000 fd:00 131961                     /app/vendor/bundle/ruby/3.3.0/gems/scout_apm-5.3.8/lib/allocations.so

7f8926c38000-7f8926c39000 r--p 00002000 fd:00 131961                     /app/vendor/bundle/ruby/3.3.0/gems/scout_apm-5.3.8/lib/allocations.so

7f8926c37000-7f8926c38000 r--p 00002000 fd:00 131961                     /app/vendor/bundle/ruby/3.3.0/gems/scout_apm-5.3.8/lib/allocations.so

7f8926c36000-7f8926c37000 r-xp 00001000 fd:00 131961                     /app/vendor/bundle/ruby/3.3.0/gems/scout_apm-5.3.8/lib/allocations.so

7f8926c35000-7f8926c36000 r--p 00000000 fd:00 131961                     /app/vendor/bundle/ruby/3.3.0/gems/scout_apm-5.3.8/lib/allocations.so

7f8926c34000-7f8926c35000 rw-p 00003000 fd:00 35008                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/enc/iso_8859_1.so

7f8926c33000-7f8926c34000 r--p 00002000 fd:00 35008                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/enc/iso_8859_1.so

7f8926c32000-7f8926c33000 r--p 00002000 fd:00 35008                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/enc/iso_8859_1.so

7f8926c31000-7f8926c32000 r-xp 00001000 fd:00 35008                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/enc/iso_8859_1.so

7f8926c30000-7f8926c31000 r--p 00000000 fd:00 35008                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/enc/iso_8859_1.so

7f8926c10000-7f8926c30000 rw-p 00000000 00:00 0 

7f8926c0f000-7f8926c10000 rw-p 00043000 fd:00 135128                     /app/vendor/bundle/ruby/3.3.0/gems/google-protobuf-4.26.1-x86_64-linux/lib/google/3.3/protobuf_c.so

7f8926c0e000-7f8926c0f000 r--p 00042000 fd:00 135128                     /app/vendor/bundle/ruby/3.3.0/gems/google-protobuf-4.26.1-x86_64-linux/lib/google/3.3/protobuf_c.so

7f8926c0d000-7f8926c0e000 ---p 00042000 fd:00 135128                     /app/vendor/bundle/ruby/3.3.0/gems/google-protobuf-4.26.1-x86_64-linux/lib/google/3.3/protobuf_c.so

7f8926c00000-7f8926c0d000 r--p 00035000 fd:00 135128                     /app/vendor/bundle/ruby/3.3.0/gems/google-protobuf-4.26.1-x86_64-linux/lib/google/3.3/protobuf_c.so

7f8926bcf000-7f8926c00000 r-xp 00004000 fd:00 135128                     /app/vendor/bundle/ruby/3.3.0/gems/google-protobuf-4.26.1-x86_64-linux/lib/google/3.3/protobuf_c.so

7f8926bcb000-7f8926bcf000 r--p 00000000 fd:00 135128                     /app/vendor/bundle/ruby/3.3.0/gems/google-protobuf-4.26.1-x86_64-linux/lib/google/3.3/protobuf_c.so

7f8926bca000-7f8926bcb000 rw-p 00007000 fd:00 33121                      /app/.apt/usr/lib/x86_64-linux-gnu/libcolamd.so.2.9.6

7f8926bc9000-7f8926bca000 r--p 00006000 fd:00 33121                      /app/.apt/usr/lib/x86_64-linux-gnu/libcolamd.so.2.9.6

7f8926bc8000-7f8926bc9000 r--p 00006000 fd:00 33121                      /app/.apt/usr/lib/x86_64-linux-gnu/libcolamd.so.2.9.6

7f8926bc3000-7f8926bc8000 r-xp 00001000 fd:00 33121                      /app/.apt/usr/lib/x86_64-linux-gnu/libcolamd.so.2.9.6

7f8926bc2000-7f8926bc3000 r--p 00000000 fd:00 33121                      /app/.apt/usr/lib/x86_64-linux-gnu/libcolamd.so.2.9.6

7f8926bb0000-7f8926bc0000 rw-p 00000000 00:00 0 

7f8926b90000-7f8926ba0000 rw-p 00000000 00:00 0 

7f8926b8f000-7f8926b90000 rw-p 00298000 fd:00 141593                     /app/vendor/bundle/ruby/3.3.0/gems/pg_query-5.1.0/lib/pg_query/pg_query.so

7f8926b5c000-7f8926b8f000 r--p 00265000 fd:00 141593                     /app/vendor/bundle/ruby/3.3.0/gems/pg_query-5.1.0/lib/pg_query/pg_query.so

7f8926b5b000-7f8926b5c000 ---p 00265000 fd:00 141593                     /app/vendor/bundle/ruby/3.3.0/gems/pg_query-5.1.0/lib/pg_query/pg_query.so

7f8926a5b000-7f8926b5b000 r--p 00165000 fd:00 141593                     /app/vendor/bundle/ruby/3.3.0/gems/pg_query-5.1.0/lib/pg_query/pg_query.so

7f892692c000-7f8926a5b000 r-xp 00036000 fd:00 141593                     /app/vendor/bundle/ruby/3.3.0/gems/pg_query-5.1.0/lib/pg_query/pg_query.so

7f89268f6000-7f892692c000 r--p 00000000 fd:00 141593                     /app/vendor/bundle/ruby/3.3.0/gems/pg_query-5.1.0/lib/pg_query/pg_query.so

7f89268f5000-7f89268f6000 rw-p 00003000 fd:00 33120                      /app/.apt/usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so.5.7.1

7f89268f4000-7f89268f5000 r--p 00002000 fd:00 33120                      /app/.apt/usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so.5.7.1

7f89268f3000-7f89268f4000 r--p 00002000 fd:00 33120                      /app/.apt/usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so.5.7.1

7f89268f2000-7f89268f3000 r-xp 00001000 fd:00 33120                      /app/.apt/usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so.5.7.1

7f89268f1000-7f89268f2000 r--p 00000000 fd:00 33120                      /app/.apt/usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so.5.7.1

7f89268d0000-7f89268f0000 rw-p 00000000 00:00 0 

7f89268cf000-7f89268d0000 rw-p 0000b000 fd:00 137521                     /app/vendor/bundle/ruby/3.3.0/gems/puma-6.4.2/lib/puma/puma_http11.so

7f89268ce000-7f89268cf000 r--p 0000a000 fd:00 137521                     /app/vendor/bundle/ruby/3.3.0/gems/puma-6.4.2/lib/puma/puma_http11.so

7f89268cc000-7f89268ce000 r--p 00009000 fd:00 137521                     /app/vendor/bundle/ruby/3.3.0/gems/puma-6.4.2/lib/puma/puma_http11.so

7f89268c7000-7f89268cc000 r-xp 00004000 fd:00 137521                     /app/vendor/bundle/ruby/3.3.0/gems/puma-6.4.2/lib/puma/puma_http11.so

7f89268c3000-7f89268c7000 r--p 00000000 fd:00 137521                     /app/vendor/bundle/ruby/3.3.0/gems/puma-6.4.2/lib/puma/puma_http11.so

7f89268c2000-7f89268c3000 rw-p 00040000 07:14 10682                      /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0

7f89268c1000-7f89268c2000 r--p 0003f000 07:14 10682                      /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0

7f89268b5000-7f89268c1000 r--p 00034000 07:14 10682                      /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0

7f892688a000-7f89268b5000 r-xp 00009000 07:14 10682                      /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0

7f8926881000-7f892688a000 r--p 00000000 07:14 10682                      /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0

7f8926860000-7f8926880000 rw-p 00000000 00:00 0 

7f8926830000-7f8926850000 rw-p 00000000 00:00 0 

7f8926810000-7f8926820000 rw-p 00000000 00:00 0 

7f892680f000-7f8926810000 rw-p 00006000 07:14 10847                      /usr/lib/x86_64-linux-gnu/libnss_dns-2.31.so

7f892680e000-7f892680f000 r--p 00005000 07:14 10847                      /usr/lib/x86_64-linux-gnu/libnss_dns-2.31.so

7f892680d000-7f892680e000 r--p 00005000 07:14 10847                      /usr/lib/x86_64-linux-gnu/libnss_dns-2.31.so

7f8926809000-7f892680d000 r-xp 00001000 07:14 10847                      /usr/lib/x86_64-linux-gnu/libnss_dns-2.31.so

7f8926808000-7f8926809000 r--p 00000000 07:14 10847                      /usr/lib/x86_64-linux-gnu/libnss_dns-2.31.so

7f89263e2000-7f8926800000 rw-p 00000000 00:00 0 

7f89263e1000-7f89263e2000 r--p 00000000 00:00 0 

7f89263de000-7f89263e1000 rw-p 00000000 00:00 0 

7f89263c9000-7f89263de000 rw-p 0356e000 fd:00 36823                      /app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so

7f89263c8000-7f89263c9000 r--p 0356d000 fd:00 36823                      /app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so

7f89263c6000-7f89263c8000 rw-p 0356b000 fd:00 36823                      /app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so

7f8926356000-7f89263c6000 r--p 034fb000 fd:00 36823                      /app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so

7f8926355000-7f8926356000 ---p 034fb000 fd:00 36823                      /app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so

7f89241d5000-7f8926355000 r--p 0137b000 fd:00 36823                      /app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so

7f8922f76000-7f89241d5000 r-xp 0011c000 fd:00 36823                      /app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so

7f8922e5a000-7f8922f76000 r--p 00000000 fd:00 36823                      /app/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mini_racer-0.12.0/mini_racer_extension.so

7f8922e57000-7f8922e5a000 rw-p 00000000 00:00 0 

7f8922e54000-7f8922e57000 rw-p 001db000 07:14 10980                      /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28

7f8922e49000-7f8922e54000 r--p 001d0000 07:14 10980                      /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28

7f8922e48000-7f8922e49000 ---p 001d0000 07:14 10980                      /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28

7f8922dff000-7f8922e48000 r--p 00187000 07:14 10980                      /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28

7f8922d0e000-7f8922dff000 r-xp 00096000 07:14 10980                      /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28

7f8922c78000-7f8922d0e000 r--p 00000000 07:14 10980                      /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28

7f8922c20000-7f8922c60000 rw-p 00000000 00:00 0 

7f8922c10000-7f8922c20000 rw-p 00000000 00:00 0 

7f8922c0f000-7f8922c10000 rw-p 0000a000 fd:00 136235                     /app/vendor/bundle/ruby/3.3.0/gems/tiny_tds-2.1.7/lib/tiny_tds/tiny_tds.so

7f8922c0e000-7f8922c0f000 r--p 00009000 fd:00 136235                     /app/vendor/bundle/ruby/3.3.0/gems/tiny_tds-2.1.7/lib/tiny_tds/tiny_tds.so

7f8922c0c000-7f8922c0e000 r--p 00008000 fd:00 136235                     /app/vendor/bundle/ruby/3.3.0/gems/tiny_tds-2.1.7/lib/tiny_tds/tiny_tds.so

7f8922c07000-7f8922c0c000 r-xp 00003000 fd:00 136235                     /app/vendor/bundle/ruby/3.3.0/gems/tiny_tds-2.1.7/lib/tiny_tds/tiny_tds.so

7f8922c04000-7f8922c07000 r--p 00000000 fd:00 136235                     /app/vendor/bundle/ruby/3.3.0/gems/tiny_tds-2.1.7/lib/tiny_tds/tiny_tds.so

7f8922800000-7f8922c00000 rw-p 00000000 00:00 0 

7f89227fe000-7f8922800000 rw-p 00132000 fd:00 132341                     /app/vendor/bundle/ruby/3.3.0/gems/outliertree-0.3.1/lib/outliertree/ext.so

7f89227fa000-7f89227fe000 r--p 0012e000 fd:00 132341                     /app/vendor/bundle/ruby/3.3.0/gems/outliertree-0.3.1/lib/outliertree/ext.so

7f89227d1000-7f89227fa000 r--p 00106000 fd:00 132341                     /app/vendor/bundle/ruby/3.3.0/gems/outliertree-0.3.1/lib/outliertree/ext.so

7f892270a000-7f89227d1000 r-xp 0003f000 fd:00 132341                     /app/vendor/bundle/ruby/3.3.0/gems/outliertree-0.3.1/lib/outliertree/ext.so

7f89226cb000-7f892270a000 r--p 00000000 fd:00 132341                     /app/vendor/bundle/ruby/3.3.0/gems/outliertree-0.3.1/lib/outliertree/ext.so

7f89226ca000-7f89226cb000 rw-p 00009000 fd:00 33123                      /app/.apt/usr/lib/x86_64-linux-gnu/libamd.so.2.4.6

7f89226c9000-7f89226ca000 r--p 00008000 fd:00 33123                      /app/.apt/usr/lib/x86_64-linux-gnu/libamd.so.2.4.6

7f89226c8000-7f89226c9000 ---p 00008000 fd:00 33123                      /app/.apt/usr/lib/x86_64-linux-gnu/libamd.so.2.4.6

7f89226c7000-7f89226c8000 r--p 00007000 fd:00 33123                      /app/.apt/usr/lib/x86_64-linux-gnu/libamd.so.2.4.6

7f89226c1000-7f89226c7000 r-xp 00001000 fd:00 33123                      /app/.apt/usr/lib/x86_64-linux-gnu/libamd.so.2.4.6

7f89226c0000-7f89226c1000 r--p 00000000 fd:00 33123                      /app/.apt/usr/lib/x86_64-linux-gnu/libamd.so.2.4.6

7f89225d0000-7f89226c0000 rw-p 00000000 00:00 0 

7f89225cf000-7f89225d0000 rw-p 0000f000 fd:00 35082                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/fiddle.so

7f89225ce000-7f89225cf000 r--p 0000e000 fd:00 35082                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/fiddle.so

7f89225cb000-7f89225ce000 r--p 0000c000 fd:00 35082                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/fiddle.so

7f89225c3000-7f89225cb000 r-xp 00004000 fd:00 35082                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/fiddle.so

7f89225bf000-7f89225c3000 r--p 00000000 fd:00 35082                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/fiddle.so

7f89225be000-7f89225bf000 rw-p 00009000 07:14 10783                      /usr/lib/x86_64-linux-gnu/libltdl.so.7.3.1

7f89225bd000-7f89225be000 r--p 00008000 07:14 10783                      /usr/lib/x86_64-linux-gnu/libltdl.so.7.3.1

7f89225bb000-7f89225bd000 r--p 00007000 07:14 10783                      /usr/lib/x86_64-linux-gnu/libltdl.so.7.3.1

7f89225b6000-7f89225bb000 r-xp 00002000 07:14 10783                      /usr/lib/x86_64-linux-gnu/libltdl.so.7.3.1

7f89225b4000-7f89225b6000 r--p 00000000 07:14 10783                      /usr/lib/x86_64-linux-gnu/libltdl.so.7.3.1

7f89225a0000-7f89225b0000 rw-p 00000000 00:00 0 

7f892259f000-7f89225a0000 rw-p 00028000 fd:00 36210                      /app/vendor/bundle/ruby/3.3.0/gems/ffi-1.16.3/lib/ffi_c.so

7f892259e000-7f892259f000 r--p 00027000 fd:00 36210                      /app/vendor/bundle/ruby/3.3.0/gems/ffi-1.16.3/lib/ffi_c.so

7f892259d000-7f892259e000 ---p 00027000 fd:00 36210                      /app/vendor/bundle/ruby/3.3.0/gems/ffi-1.16.3/lib/ffi_c.so

7f8922595000-7f892259d000 r--p 0001f000 fd:00 36210                      /app/vendor/bundle/ruby/3.3.0/gems/ffi-1.16.3/lib/ffi_c.so

7f892257c000-7f8922595000 r-xp 00006000 fd:00 36210                      /app/vendor/bundle/ruby/3.3.0/gems/ffi-1.16.3/lib/ffi_c.so

7f8922576000-7f892257c000 r--p 00000000 fd:00 36210                      /app/vendor/bundle/ruby/3.3.0/gems/ffi-1.16.3/lib/ffi_c.so

7f8922550000-7f8922570000 rw-p 00000000 00:00 0 

7f892254f000-7f8922550000 rw-p 00011000 fd:00 145057                     /app/vendor/bundle/ruby/3.3.0/gems/llhttp-ffi-0.5.0/ext/x86_64-linux/libllhttp-ext.so

7f892254e000-7f892254f000 r--p 00010000 fd:00 145057                     /app/vendor/bundle/ruby/3.3.0/gems/llhttp-ffi-0.5.0/ext/x86_64-linux/libllhttp-ext.so

7f8922549000-7f892254e000 r--p 0000c000 fd:00 145057                     /app/vendor/bundle/ruby/3.3.0/gems/llhttp-ffi-0.5.0/ext/x86_64-linux/libllhttp-ext.so

7f8922541000-7f8922549000 r-xp 00004000 fd:00 145057                     /app/vendor/bundle/ruby/3.3.0/gems/llhttp-ffi-0.5.0/ext/x86_64-linux/libllhttp-ext.so

7f892253d000-7f8922541000 r--p 00000000 fd:00 145057                     /app/vendor/bundle/ruby/3.3.0/gems/llhttp-ffi-0.5.0/ext/x86_64-linux/libllhttp-ext.so

7f89224f0000-7f8922530000 rw-p 00000000 00:00 0 

7f89224d0000-7f89224e0000 rw-p 00000000 00:00 0 

7f89224b0000-7f89224c0000 rw-p 00000000 00:00 0 

7f8922480000-7f89224a0000 rw-p 00000000 00:00 0 

7f8922420000-7f8922470000 rw-p 00000000 00:00 0 

7f8922410000-7f8922420000 rw-p 00000000 00:00 0 

7f89217b0000-7f8922400000 rw-p 00000000 00:00 0 

7f89216f0000-7f89217a0000 rw-p 00000000 00:00 0 

7f89216db000-7f89216e0000 rw-p 00000000 00:00 0 

7f89216d9000-7f89216db000 rw-p 00065000 fd:00 133148                     /app/vendor/bundle/ruby/3.3.0/gems/oj-3.16.3/lib/oj/oj.so

7f89216d8000-7f89216d9000 r--p 00064000 fd:00 133148                     /app/vendor/bundle/ruby/3.3.0/gems/oj-3.16.3/lib/oj/oj.so

7f89216d7000-7f89216d8000 ---p 00064000 fd:00 133148                     /app/vendor/bundle/ruby/3.3.0/gems/oj-3.16.3/lib/oj/oj.so

7f89216c5000-7f89216d7000 r--p 00052000 fd:00 133148                     /app/vendor/bundle/ruby/3.3.0/gems/oj-3.16.3/lib/oj/oj.so

7f892167d000-7f89216c5000 r-xp 0000a000 fd:00 133148                     /app/vendor/bundle/ruby/3.3.0/gems/oj-3.16.3/lib/oj/oj.so

7f8921673000-7f892167d000 r--p 00000000 fd:00 133148                     /app/vendor/bundle/ruby/3.3.0/gems/oj-3.16.3/lib/oj/oj.so

7f8921600000-7f8921670000 rw-p 00000000 00:00 0 

f89214c0000-7f89215f0000 rw-p 00000000 00:00 0 

f89214a0000-7f89214b0000 rw-p 00000000 00:00 0 

f8921470000-7f8921490000 rw-p 00000000 00:00 0 

f8921450000-7f8921460000 rw-p 00000000 00:00 0 

f8921430000-7f8921440000 rw-p 00000000 00:00 0 

f8921410000-7f8921420000 rw-p 00000000 00:00 0 

f8920400000-7f8921400000 rw-p 00000000 00:00 0 

f8920300000-7f89203f0000 rw-p 00000000 00:00 0 

f8920180000-7f89202f0000 rw-p 00000000 00:00 0 

f8920010000-7f8920170000 rw-p 00000000 00:00 0 

7f891fbb0000-7f8920000000 rw-p 00000000 00:00 0 

7f891fbaf000-7f891fbb0000 rw-p 00018000 fd:00 143319                     /app/vendor/bundle/ruby/3.3.0/gems/redcarpet-3.6.0/lib/redcarpet.so

7f891fbae000-7f891fbaf000 r--p 00017000 fd:00 143319                     /app/vendor/bundle/ruby/3.3.0/gems/redcarpet-3.6.0/lib/redcarpet.so

7f891fbad000-7f891fbae000 ---p 00017000 fd:00 143319                     /app/vendor/bundle/ruby/3.3.0/gems/redcarpet-3.6.0/lib/redcarpet.so

7f891fba9000-7f891fbad000 r--p 00013000 fd:00 143319                     /app/vendor/bundle/ruby/3.3.0/gems/redcarpet-3.6.0/lib/redcarpet.so

7f891fb99000-7f891fba9000 r-xp 00003000 fd:00 143319                     /app/vendor/bundle/ruby/3.3.0/gems/redcarpet-3.6.0/lib/redcarpet.so

7f891fb96000-7f891fb99000 r--p 00000000 fd:00 143319                     /app/vendor/bundle/ruby/3.3.0/gems/redcarpet-3.6.0/lib/redcarpet.so

7f891fb00000-7f891fb90000 rw-p 00000000 00:00 0 

7f891fad0000-7f891faf0000 rw-p 00000000 00:00 0 

7f891facf000-7f891fad0000 rw-p 00047000 fd:00 35080                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/ripper.so

7f891facd000-7f891facf000 r--p 00045000 fd:00 35080                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/ripper.so

7f891fab3000-7f891facd000 r--p 0002c000 fd:00 35080                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/ripper.so

7f891fa8e000-7f891fab3000 r-xp 00007000 fd:00 35080                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/ripper.so

7f891fa87000-7f891fa8e000 r--p 00000000 fd:00 35080                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/ripper.so

7f891fa00000-7f891fa80000 rw-p 00000000 00:00 0 

7f891f880000-7f891f9f0000 rw-p 00000000 00:00 0 

7f891f810000-7f891f870000 rw-p 00000000 00:00 0 

7f891ebb0000-7f891f800000 rw-p 00000000 00:00 0 

7f891eb90000-7f891eba0000 rw-p 00000000 00:00 0 

7f891eb8f000-7f891eb90000 rw-p 004e6000 fd:00 131824                     /app/vendor/bundle/ruby/3.3.0/gems/tiktoken_ruby-0.0.8-x86_64-linux/lib/tiktoken_ruby/3.3/tiktoken_ruby.so

7f891eb69000-7f891eb8f000 r--p 004c0000 fd:00 131824                     /app/vendor/bundle/ruby/3.3.0/gems/tiktoken_ruby-0.0.8-x86_64-linux/lib/tiktoken_ruby/3.3/tiktoken_ruby.so

7f891eb68000-7f891eb69000 ---p 004c0000 fd:00 131824                     /app/vendor/bundle/ruby/3.3.0/gems/tiktoken_ruby-0.0.8-x86_64-linux/lib/tiktoken_ruby/3.3/tiktoken_ruby.so

7f891e7c7000-7f891eb68000 r--p 0011f000 fd:00 131824                     /app/vendor/bundle/ruby/3.3.0/gems/tiktoken_ruby-0.0.8-x86_64-linux/lib/tiktoken_ruby/3.3/tiktoken_ruby.so

7f891e6d8000-7f891e7c7000 r-xp 00030000 fd:00 131824                     /app/vendor/bundle/ruby/3.3.0/gems/tiktoken_ruby-0.0.8-x86_64-linux/lib/tiktoken_ruby/3.3/tiktoken_ruby.so

7f891e6a8000-7f891e6d8000 r--p 00000000 fd:00 131824                     /app/vendor/bundle/ruby/3.3.0/gems/tiktoken_ruby-0.0.8-x86_64-linux/lib/tiktoken_ruby/3.3/tiktoken_ruby.so

7f891e670000-7f891e6a0000 rw-p 00000000 00:00 0 

7f891e630000-7f891e660000 rw-p 00000000 00:00 0 

7f891e5b0000-7f891e620000 rw-p 00000000 00:00 0 

7f891e4a0000-7f891e5a0000 rw-p 00000000 00:00 0 

7f891e49f000-7f891e4a0000 ---p 00000000 00:00 0 

7f891e49e000-7f891e49f000 rw-p 0001c000 fd:00 35029                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/enc/trans/single_byte.so

7f891e499000-7f891e49e000 r--p 00017000 fd:00 35029                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/enc/trans/single_byte.so

7f891e485000-7f891e499000 r--p 00004000 fd:00 35029                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/enc/trans/single_byte.so

7f891e484000-7f891e485000 r-xp 00003000 fd:00 35029                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/enc/trans/single_byte.so

7f891e481000-7f891e484000 r--p 00000000 fd:00 35029                      /app/vendor/ruby-3.3.0/lib/ruby/3.3.0/x86_64-linux/enc/trans/single_byte.so

7f891e47b000-7f891e481000 rw-p 00000000 00:00 0 

7f891e47a000-7f891e47b000 rw-p 0000c000 07:14 10850                      /usr/lib/x86_64-linux-gnu/libnss_files-2.31.so

7f891e479000-7f891e47a000 r--p 0000b000 07:14 10850                      /usr/lib/x86_64-linux-gnu/libnss_files-2.31.so

7f891e477000-7f891e479000 r--p 0000a000 07:14 10850                      /usr/lib/x86_64-linux-gnu/libnss_files-2.31.so

7f891e470000-7f891e477000 r-xp 00003000 07:14 10850                      /usr/lib/x86_64-linux-gnu/libnss_files-2.31.so

7f891e46d000-7f891e470000 r--p 00000000 07:14 10850                      /usr/lib/x86_64-linux-gnu/libnss_files-2.31.so

@tisba
Copy link
Collaborator

tisba commented Apr 24, 2024

@fjl82

I am using sprockets, but I had not checked whether it's involved or not. I first got these errors when rendering a js response to an ajax request, and also saw them when shutting down the server (running puma).

Are you using puma in clustered mode? forking is known to cause some troubles with mini_racer/v8, see https://github.com/rubyjs/mini_racer#fork-safety.

@fjl82
Copy link

fjl82 commented Apr 25, 2024

I am indeed using puma in clustered mode, but it was working fine on 0.8.0, and starting puma in single mode gives me the same segfault in the same place. I have the suggested fork safety line in an initializer, and removing this makes no difference in any scenario.

@D-system
Copy link
Author

I'm still not able to reproduce it in a local Docker even when I use the Docker image of the CI.

I continue to investigate on the CI directly. SSH and vi for the win!

Anyway, I track down the issue. On a brand new Rails 6.1 app:

  • precompile assets: no problem
  • add mini_racer: no problem
  • add bootstrap 4: problem (let's look at bootstrap own dependencies)
  • removed bootstrap and added sassc-rails: no problem
  • removed sassc-rails and added autoprefixer-rails 10.4.16.0: problem
  • removed autoprefixer-rails and added execjs 2.9.1: no problem

autoprefixer-rails has only execjs as dependency.
In my very case, autoprefixer-rails might have some code that seg fault in the CI only.

I don't know what else I could search.

@SamSaffron
Copy link
Collaborator

@D-system I wish I had more to add here, but so much depends on a standalone repro. In theory most people use mini_racer in a very simple way, if you can get a crash then you can monkey patch eval to save what it is evaling into a file and then we can use that to cause the crash.

Once we have one we will very likely be able to sort this out quickly

There is a chance here as well that libraries were using mini racer in a fork unsafe way and somehow got away with it in earlier versions due to luck.

@viralpraxis
Copy link

The same happened to me after upgrading to the latest libv8-node (21.7.2.0) and mini_racer (0.12.0) during running specs

ruby/3.3.0/lib/ruby/gems/3.3.0/gems/mini_racer-0.12.0/lib/mini_racer.rb:228: [BUG] Segmentation fault at 0x0000734c73d8700

ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-linux]

@D-system
Copy link
Author

D-system commented May 1, 2024

After some lengthy monkey patching session, I'm 99% sure it's due to this file: https://github.com/ai/autoprefixer-rails/blob/master/vendor/autoprefixer.js
I removed the source map at the last line, it does not change anything.

The file is 6.29MB which isn't the simplest to debug.

@SamSaffron
Copy link
Collaborator

SamSaffron commented May 1, 2024 via email

@SamSaffron SamSaffron reopened this Jul 28, 2024
@tisba
Copy link
Collaborator

tisba commented Jul 30, 2024

0.13.0 has been released.

@D-system: If you have a moment, could you check if the new version with upgraded Node fixes the issue for you?

@D-system
Copy link
Author

D-system commented Aug 1, 2024

@tisba I think you meant 0.13.0.
Yes, I just tried with 0.13.0 without success.
It still seg fault in the unsafe block.

#!/bin/bash -eo pipefail
RAILS_ENV=production SECRET_KEY_BASE=1 bin/rails assets:clobber assets:precompile
I, [2024-08-01T10:15:50.803867 #8314]  INFO -- : Removed /home/circleci/ec/public/assets
yarn install v1.22.19
warning package.json: No license field
info No lockfile found.
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
warning No license field
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
Done in 0.04s.
/home/circleci/.rubygems/gems/mini_racer-0.13.0/lib/mini_racer.rb:228: [BUG] Segmentation fault at 0x00007f9ca8fe03e8
ruby 3.3.4 (2024-07-09 revision be1089c8ec) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0045 p:---- s:0281 e:000280 CFUNC  :eval_unsafe
c:0044 p:0009 s:0275 e:000274 BLOCK  /home/circleci/.rubygems/gems/mini_racer-0.13.0/lib/mini_racer.rb:228
c:0043 p:0010 s:0272 e:000271 METHOD /home/circleci/.rubygems/gems/mini_racer-0.13.0/lib/mini_racer.rb:348
c:0042 p:0008 s:0261 e:000260 BLOCK  /home/circleci/.rubygems/gems/mini_racer-0.13.0/lib/mini_racer.rb:227 [FINISH]
c:0041 p:---- s:0258 e:000257 CFUNC  :synchronize
c:0040 p:0045 s:0254 e:000253 METHOD /home/circleci/.rubygems/gems/mini_racer-0.13.0/lib/mini_racer.rb:225
c:0039 p:0017 s:0247 e:000246 BLOCK  /home/circleci/.rubygems/gems/execjs-2.9.1/lib/execjs/mini_racer_runtime.rb:28
c:0038 p:0003 s:0244 e:000242 METHOD /home/circleci/.rubygems/gems/execjs-2.9.1/lib/execjs/mini_racer_runtime.rb:67
c:0037 p:0024 s:0236 e:000235 METHOD /home/circleci/.rubygems/gems/execjs-2.9.1/lib/execjs/mini_racer_runtime.rb:27
c:0036 p:0025 s:0230 e:000229 METHOD /home/circleci/.rubygems/gems/execjs-2.9.1/lib/execjs/mini_racer_runtime.rb:35
c:0035 p:0071 s:0224 e:000222 METHOD /home/circleci/.rubygems/gems/terser-1.2.3/lib/terser.rb:229
c:0034 p:0014 s:0213 e:000212 METHOD /home/circleci/.rubygems/gems/terser-1.2.3/lib/terser.rb:181
c:0033 p:0029 s:0207 e:000206 METHOD /home/circleci/.rubygems/gems/terser-1.2.3/lib/terser/compressor.rb:36
c:0032 p:0007 s:0199 e:000198 METHOD /home/circleci/.rubygems/gems/terser-1.2.3/lib/terser/compressor.rb:23
c:0031 p:0047 s:0194 e:000193 METHOD /home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/processor_utils.rb:84
c:0030 p:0013 s:0186 e:000185 BLOCK  /home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/processor_utils.rb:66 [FINISH]
c:0029 p:---- s:0181 e:000180 CFUNC  :reverse_each
c:0028 p:0035 s:0177 e:000176 METHOD /home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/processor_utils.rb:65
c:0027 p:0395 s:0169 e:000168 METHOD /home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/loader.rb:184
c:0026 p:0054 s:0145 e:000144 BLOCK  /home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/loader.rb:59
c:0025 p:0033 s:0139 e:000138 METHOD /home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/loader.rb:339
c:0024 p:0115 s:0129 e:000128 METHOD /home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/loader.rb:43
c:0023 p:0006 s:0120 e:000119 BLOCK  /home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/cached_environment.rb:44
c:0022 p:0013 s:0117 e:000114 BLOCK  /home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/map.rb:207
c:0021 p:0033 s:0112 e:000111 METHOD /home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/map.rb:187
c:0020 p:0010 s:0105 e:000104 METHOD /home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/map.rb:206
c:0019 p:0008 s:0099 e:000098 METHOD /home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/cached_environment.rb:44
c:0018 p:0025 s:0094 e:000093 METHOD /home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/base.rb:81
c:0017 p:0023 s:0086 e:000085 METHOD /home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/base.rb:88 [FINISH]
c:0016 p:---- s:0075 e:000074 CFUNC  :each
c:0015 p:---- s:0072 e:000071 CFUNC  :to_a
c:0014 p:0009 s:0068 e:000067 BLOCK  /home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/manifest.rb:125
c:0013 p:0010 s:0065 e:000064 BLOCK  /home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:24
c:0012 p:0002 s:0061 e:000060 BLOCK  /home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:48 [FINISH]
c:0011 p:---- s:0058 e:000057 CFUNC  :synchronize
c:0010 p:0016 s:0054 e:000053 METHOD /home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:48
c:0009 p:0014 s:0050 e:000049 METHOD /home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:22
c:0008 p:0015 s:0042 e:000041 BLOCK  /home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/promise.rb:564
c:0007 p:0008 s:0036 e:000035 METHOD /home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:359
c:0006 p:0041 s:0028 e:000027 BLOCK  /home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:350
c:0005 p:0018 s:0022 e:000021 METHOD <internal:kernel>:187
c:0004 p:0004 s:0017 e:000016 BLOCK  /home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:341 [FINISH]
c:0003 p:---- s:0014 e:000013 CFUNC  :catch
c:0002 p:0006 s:0009 e:000008 BLOCK  /home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:340 [FINISH]
c:0001 p:---- s:0003 e:000002 DUMMY  [FINISH]

-- Ruby level backtrace information ----------------------------------------
/home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:340:in `block in create_worker'
/home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:340:in `catch'
/home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:341:in `block (2 levels) in create_worker'
<internal:kernel>:187:in `loop'
/home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:350:in `block (3 levels) in create_worker'
/home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:359:in `run_task'
/home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/promise.rb:564:in `block in realize'
/home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:22:in `execute'
/home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:48:in `synchronize'
/home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:48:in `synchronize'
/home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:48:in `block in synchronize'
/home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:24:in `block in execute'
/home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/manifest.rb:125:in `block (2 levels) in find'
/home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/manifest.rb:125:in `to_a'
/home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/manifest.rb:125:in `each'
/home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/base.rb:88:in `find_all_linked_assets'
/home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/base.rb:81:in `find_asset'
/home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/cached_environment.rb:44:in `load'
/home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/map.rb:206:in `fetch_or_store'
/home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/map.rb:187:in `fetch'
/home/circleci/.rubygems/gems/concurrent-ruby-1.3.3/lib/concurrent-ruby/concurrent/map.rb:207:in `block in fetch_or_store'
/home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/cached_environment.rb:44:in `block in load'
/home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/loader.rb:43:in `load'
/home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/loader.rb:339:in `fetch_asset_from_dependency_cache'
/home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/loader.rb:59:in `block in load'
/home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/loader.rb:184:in `load_from_unloaded'
/home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/processor_utils.rb:65:in `call_processors'
/home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/processor_utils.rb:65:in `reverse_each'
/home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
/home/circleci/.rubygems/gems/sprockets-4.2.1/lib/sprockets/processor_utils.rb:84:in `call_processor'
/home/circleci/.rubygems/gems/terser-1.2.3/lib/terser/compressor.rb:23:in `call'
/home/circleci/.rubygems/gems/terser-1.2.3/lib/terser/compressor.rb:36:in `call'
/home/circleci/.rubygems/gems/terser-1.2.3/lib/terser.rb:181:in `compile_with_map'
/home/circleci/.rubygems/gems/terser-1.2.3/lib/terser.rb:229:in `run_terserjs'
/home/circleci/.rubygems/gems/execjs-2.9.1/lib/execjs/mini_racer_runtime.rb:35:in `call'
/home/circleci/.rubygems/gems/execjs-2.9.1/lib/execjs/mini_racer_runtime.rb:27:in `eval'
/home/circleci/.rubygems/gems/execjs-2.9.1/lib/execjs/mini_racer_runtime.rb:67:in `translate'
/home/circleci/.rubygems/gems/execjs-2.9.1/lib/execjs/mini_racer_runtime.rb:28:in `block in eval'
/home/circleci/.rubygems/gems/mini_racer-0.13.0/lib/mini_racer.rb:225:in `eval'
/home/circleci/.rubygems/gems/mini_racer-0.13.0/lib/mini_racer.rb:225:in `synchronize'
/home/circleci/.rubygems/gems/mini_racer-0.13.0/lib/mini_racer.rb:227:in `block in eval'
/home/circleci/.rubygems/gems/mini_racer-0.13.0/lib/mini_racer.rb:348:in `timeout'
/home/circleci/.rubygems/gems/mini_racer-0.13.0/lib/mini_racer.rb:228:in `block (2 levels) in eval'
/home/circleci/.rubygems/gems/mini_racer-0.13.0/lib/mini_racer.rb:228:in `eval_unsafe'

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

-- Machine register context ------------------------------------------------
 RIP: 0x00007f9ca8fe0400 RBP: 0x00007f9d933f0620 RSP: 0x00007f9d933f0550
 RAX: 0x0000000000000003 RBX: 0x0000000000000000 RCX: 0x00007f9ca8fe0400
 RDX: 0x00000d18d2380069 RDI: 0x0000238071df0859 RSI: 0x0000238071de33f1
  R8: 0x0000000000000003  R9: 0x000000000000004f R10: 0x00007f9d5c2dcc99
 R11: 0x0000238071df085b R12: 0x0000238071df0859 R13: 0x00007f9d5c2c9080
 R14: 0x0000000000000003 R15: 0x00007f9d933f04c0 EFL: 0x0000000000010246

-- C level backtrace information -------------------------------------------

Received "segmentation fault" signal

@SamSaffron
Copy link
Collaborator

oh no, and yes we just saw some of these too cc @lloeki 😢

will try debugging more this week

@tisba
Copy link
Collaborator

tisba commented Aug 1, 2024

@SamSaffron you can still reproduce with #300 (comment)?

Trying to reproduce with your example on GH Actions, in hopes this helps. So far without success 😞 https://github.com/tisba/mini_racer-issue-300/actions/runs/10193149124/job/28197243732#step:4:5

@SamSaffron
Copy link
Collaborator

Sadly #300 (comment) no longer crashes... I need a new consistent repro

@SamSaffron
Copy link
Collaborator

also #300 (comment) no longer crashes...

So I have no repro left here :(

@SamSaffron
Copy link
Collaborator

Hitting this when building on ruby:2.7-alpine with GCC 11 (ruby:2.7 has gcc 10):

Note @lloeki ... mini_racer no longer support any Ruby earlier than ruby 3.1. who knows maybe there are multiple issues here...

For starters though we need a consistent repro.

@tisba
Copy link
Collaborator

tisba commented Aug 5, 2024

@D-system does #300 (comment) still reproduce the issue for you?

@SamSaffron
Copy link
Collaborator

@lloeki I am trying here, but this is really hard for me due to poor background.

I can easily reproduce

c:0045 p:---- s:0281 e:000280 CFUNC  :eval_unsafe
c:0044 p:0009 s:0275 e:000274 BLOCK  /home/circleci/.rubygems/gems/mini_racer-0.13.0/lib/mini_racer.rb:228
c:0043 p:0010 s:0272 e:000271 METHOD /home/circleci/.rubygems/gems/mini_racer-0.13.0/lib/mini_racer.rb:348

On my local Discourse instance, just need to cook some markdown into html in a particular sequence. Trouble is I am yet to make a standalone program that will crash it.

Where I am super stuck now is figuring out how to get symbols going all the way through so I can get at least a full backtrace from v8 to have some clue of where v8 is crashing.

Will keep trying, but as it stands given the instability of these releases I am tempted to just do a new release that pins the version back to the version of v8 that works.

@SamSaffron
Copy link
Collaborator

I released 0.14 which now reverts the v8 upgrades. I really want to be on latest v8 but we can not yet, we need a stable release out there and that trumps wanting an upgrade 😢

@SamSaffron
Copy link
Collaborator

Interesting datapoint @lloeki

Somewhere between 18.13 and 18.19 we broke test/test_forking.rb, it used to work fine, now it segfaults.

@lloeki
Copy link
Collaborator

lloeki commented Aug 6, 2024

Thanks folks for the unrelenting work in trying to reproduce! ❤️

mini_racer no longer support any Ruby earlier than ruby 3.1. who knows maybe there are multiple issues here...

By and large this doesn't matter, we could be building libv8 on a Rubyless image for all it cares. I plan to actually do that and move to something that makes having reproducible builds with better libc coverage (something like manylinux or even Nix).

Where I am super stuck now is figuring out how to get symbols going all the way through so I can get at least a full backtrace from v8 to have some clue of where v8 is crashing.

  • In libexec/build_libv8 the BUILDTYPE env var defaults to Release, IIRC it can be set to Debug instead: env BUILDTYPE=Debug ./libexec/build-libv8.
  • There's a strip step in libexec/inject-libv8 because even in Release mode the obj files resulting from build-libv8 are insanely huge (as in, gigabytes, and IIRC even more so in Debug). Instead of stripping via inject-libv8, one would instead simply manually copy (or symlink to save space) src/libv8-{version}/..../out/{Debug or Release}/libv8_monolith.a to vendor/v8/{platform}/libv8/obj.

Super sorry I cannot help as it absolutely refuses to crash on any of my machines, whatever I throw at it :(

By the way the latest linux-gnu builds have been done with GCC.

Somewhere between 18.13 and 18.19 we broke test/test_forking.rb, it used to work fine, now it segfaults.

Huh, I didn't see that one, been running tests locally before pushing and they all passed (except the "libv8 now optimises the hell out of things" ones which are red herrings)

I released 0.14 which now reverts the v8 upgrades. I really want to be on latest v8 but we can not yet, we need a stable release out there and that trumps wanting an upgrade

At least this way:

  • the default is known stable
  • people have the option not use a more recent release if it happens to work for their use case

@lloeki
Copy link
Collaborator

lloeki commented Aug 6, 2024

Note: rr has the ability to record execution and allows replaying execution even on totally foreign machines. Once someone gets debug symbols and records a crash, maybe that could help for me to get a hand on a replayable record.

@SamSaffron
Copy link
Collaborator

@lloeki do you get segfaults on local from test_forking?

Still struggling through this, I know how amazing it will be to have a nice standalone test that segfaults, it is just very hard to pin down.

@SamSaffron
Copy link
Collaborator

Well, I just built 12.7.224.15 from Source using the Google build toolchain.

Had to make some minor change to mini_racer:

--- a/ext/mini_racer_extension/mini_racer_extension.cc
+++ b/ext/mini_racer_extension/mini_racer_extension.cc
@@ -518,7 +518,7 @@ nogvl_context_eval(void* arg) {
     MaybeLocal<Script> parsed_script;
 
     if (eval_params->filename) {
-        origin = new v8::ScriptOrigin(isolate, *eval_params->filename);
+        origin = new v8::ScriptOrigin(*eval_params->filename);
     }
 
     parsed_script = Script::Compile(context, *eval_params->eval, origin);
@@ -791,7 +791,7 @@ static bool run_extra_code(Isolate *isolate, Local<v8::Context> context,
     }
     Local<String> resource_name =
             String::NewFromUtf8(isolate, name).ToLocalChecked();
-    ScriptOrigin origin(isolate, resource_name);
+    ScriptOrigin origin(resource_name);
     ScriptCompiler::Source source(source_string, origin);
     Local<Script> script;
     if (!ScriptCompiler::Compile(context, &source).ToLocal(&script))
@@ -954,9 +954,12 @@ static VALUE rb_isolate_idle_notification(VALUE self, VALUE idle_time_in_ms) {
 
     if (current_platform == NULL) return Qfalse;
 
-    double duration = NUM2DBL(idle_time_in_ms) / 1000.0;
-    double now = current_platform->MonotonicallyIncreasingTime();
-    return isolate_info->isolate->IdleNotificationDeadline(now + duration) ? Qtrue : Qfalse;
+    //double duration = NUM2DBL(idle_time_in_ms) / 1000.0;
+    //double now = current_platform->MonotonicallyIncreasingTime();
+    //return isolate_info->isolate->IdleNotificationDeadline(now + duration) ? Qtrue : Qfalse;
+
+    isolate_info->isolate->MemoryPressureNotification(v8::MemoryPressureLevel::kModerate);
+    return Qtrue;
 }

And now the test that was crashing with the forking is working perfectly.

I enabled pointer compression and c++20 which is now required.

I am not sure I am trusting this node build anymore for our purpose. Will see if I can double test this on build as well. I had some trouble building though cause finding the right toolchain for older builds is a bit more tricky... will see what I can do.

We need to get test/test_forking.rb working as a #1 priority. This appears to be the canary in the coalmine.

@SamSaffron
Copy link
Collaborator

@lloeki my branch here builds v8 from source

mini_racer/Rakefile

Lines 31 to 39 in f134478

desc "build libv8 dependencies using Docker"
task :build_libv8 do
Dir.chdir("docker") do
system "docker buildx build . -t mini_racer_lib_v8"
system "rm -rf ../vendor"
system "mkdir -p ../vendor"
system "docker run --rm --user $(id -u):$(id -g) -v $(pwd)/../vendor:/vendor mini_racer_lib_v8 cp -r /package/v8 /vendor"
end
end

This build works just fine both with localization AND with the test_forking that was failing before.

So I suspect something about the way this node build is working is ending up with a corrupt ICU setup which is leading to the various faults.

@SamSaffron
Copy link
Collaborator

OK another repro of the crash is a blank install of Discourse then:

(0..2).map {  Thread.new { PrettyText.cook("hello") }  } 

something about multithreading is causing segfaults and this is also happening on my builds

bnoordhuis added a commit to bnoordhuis/mini_racer that referenced this issue Aug 20, 2024
bnoordhuis added a commit to bnoordhuis/mini_racer that referenced this issue Aug 20, 2024
bnoordhuis added a commit to bnoordhuis/libv8-node that referenced this issue Aug 21, 2024
V8's default thread-isolated allocator has a bug on x64 Linux.

It uses memory protection keys (see `man 7 pkeys`) to
write-protect JIT code memory but in a way that is currently
incompatible with how we use threads.

Specifically, pkey permissions are inherited by child threads.
Threads that are not descendants of the thread that allocates
the pkey default to "no permissions" for that pkey.

Concretely, if thread A creates the v8::Platform (and the pkey)
and write-protects memory, then later thread B tries to access
that memory, it segfaults due to the lack of permissions.

The fix on V8's side is conceptually easy - call
pkey_set(PKEY_DISABLE_WRITE) before accessing the memory,
to flip the permissions from "none" to "can read" - but
until it's actually fixed, disable thread-isolation.

Fixes: rubyjs/mini_racer#300
Refs: https://issues.chromium.org/issues/360909072
bnoordhuis added a commit to bnoordhuis/mini_racer that referenced this issue Aug 22, 2024
@SamSaffron
Copy link
Collaborator

This is resolved, we disabled memory protection keys in v8

Underlying issue is tracked at:

https://issues.chromium.org/issues/360909072

New version of mini_racer is now based on latest version of v8 that is shipped with node.js

@tisba
Copy link
Collaborator

tisba commented Sep 5, 2024

That's great to hear! The build on aarch alpine is broken and mini_racer won't compile there, but that's probably unrelated. Will investigate a little and open a new issue.

@SamSaffron
Copy link
Collaborator

We are now seeing different and new issues:

#0  0x00007f9eda540e2c in __pthread_kill_implementation (threadid=1227, signo=24957, signo@entry=11, no_tid=11, no_tid@entry=0) at ./nptl/pthread_kill.c:43
#1  0x00007f9eda540e9f in __pthread_kill_internal (signo=11, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2  0x00007f9eda4f1fb2 in __GI_raise (sig=sig@entry=11) at ../sysdeps/posix/raise.c:26
#3  0x00007f9edaa3ffaf in ruby_default_signal (sig=sig@entry=11) at signal.c:422
#4  0x00007f9eda82c3a9 in rb_bug_for_fatal_signal (default_sighandler=0x0, sig=sig@entry=11, ctx=ctx@entry=0x7f9ea30d1ac0, fmt=fmt@entry=0x7f9edac514d5 "Segmentation fault at %p") at error.c:1069
#5  0x00007f9edaa3ef3b in sigsegv (sig=11, info=0x7f9ea30d1bf0, ctx=0x7f9ea30d1ac0) at signal.c:926
#6  <signal handler called>
#7  0x00007f9eb5346e63 in v8::internal::WriteBarrier::MarkingSlow(v8::internal::Tagged<v8::internal::HeapObject>, v8::internal::FullHeapObjectSlot, v8::internal::Tagged<v8::internal::HeapObject>) ()
   from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.15.0/lib/mini_racer_extension.so
#8  0x00007f9eb55874c2 in v8::internal::Compiler::DisposeTurbofanCompilationJob(v8::internal::Isolate*, v8::internal::TurbofanCompilationJob*, bool) ()
   from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.15.0/lib/mini_racer_extension.so
#9  0x00007f9eb5d49740 in v8::internal::OptimizingCompileDispatcher::FlushOutputQueue(bool) () from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.15.0/lib/mini_racer_extension.so
#10 0x00007f9eb5d49a53 in v8::internal::OptimizingCompileDispatcher::Flush(v8::internal::BlockingBehavior) ()
   from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.15.0/lib/mini_racer_extension.so
#11 0x00007f9eb548239e in v8::internal::Isolate::AbortConcurrentOptimization(v8::internal::BlockingBehavior) ()
   from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.15.0/lib/mini_racer_extension.so
#12 0x00007f9eb5400de8 in v8::internal::Heap::CollectAllAvailableGarbage(v8::internal::GarbageCollectionReason) ()
   from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.15.0/lib/mini_racer_extension.so
#13 0x00007f9eb52b8914 in v8::Isolate::LowMemoryNotification() () from /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/mini_racer-0.15.0/lib/mini_racer_extension.so
#14 0x00007f9eb5282601 in rb_isolate_low_memory_notification (self=140319468385640) at mini_racer_extension.cc:970
#15 0x00007f9edaac52fc in vm_call_cfunc_with_frame_ (stack_bottom=<optimized out>, argv=<optimized out>, argc=0, calling=<optimized out>, reg_cfp=0x7f9e7d590eb0, ec=0x7f9e9c48ebd0)
    at /tmp/ruby-build.20240822030420.245.5BFPlP/ruby-3.3.3/vm_insnhelper.c:3490

It is going to take us a bit longer to get this v8 upgrade completed

@D-system
Copy link
Author

D-system commented Sep 6, 2024

Sorry for the extreme late reply.
I tried 0.17.0.pre with my project and it works.
Note that Rails went up to v7.0.8.4.

Interesting to see the Chromium issue ticket mentioning this page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug/crash Bugs specific to crashes, segfaults, etc. Gem can be installed though.
Projects
None yet
Development

Successfully merging a pull request may close this issue.