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

Core dumped version 0.4.0 #193

Closed
thomasbalsloev opened this issue Apr 13, 2021 · 22 comments
Closed

Core dumped version 0.4.0 #193

thomasbalsloev opened this issue Apr 13, 2021 · 22 comments

Comments

@thomasbalsloev
Copy link

Hi.

When having mini_racer version 0.4.0 in our gemset, our rspec tests fail hard with

free(): invalid pointer
Aborted (core dumped)

No other clues are provided and I am not able to pinpoint the exact point of failure. The failure does not appear to originate from a specific test as it fails on a different one each time.

Ruby: ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]
OS: Ubuntu 20.04.2 LTS (dockerized)
Rails: 6.0.3.6

When I regress to mini racer version 0.3.1 the failure does NOT happen.

I have tried to analyze the dumped core but don't have the experience to identify the problem from it.
Below is the ruby back trace gotten from using "gdbdump" on the dumped core. I don't know if that helps or not.

I'm prette much in the dark with this. Please let me know if you guys need more information.

Best regards, Thomas Balsløv.

root@a4b8efbc6341:/var/www/portal# gdbdump /usr/local/rvm/rubies/ruby-2.7.1/bin/ruby core
/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/gdbdump-0.9.4/lib/gdbdump/cli.rb:56: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/gdbdump-0.9.4/lib/gdbdump/gdb.rb:12: warning: The called method `initialize' is defined here
/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/gdbdump-0.9.4/lib/gdbdump/gdb.rb:53: warning: deprecated Object#=~ is called on Array; it always returns nil
$1 = (rb_vm_t *) 0x556f1c2b76e0
* #<Thread:0x556f1c2e6dd8 rb_thread_t:0x556f1c2b7c00 native_thread:0x7f40713d4f80>
69:0x7f407121c8d0 <io_wait_readable at wait.c:129>:in `wait_readable'
68:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/webmock-3.12.2/lib/webmock/http_lib_adapters/net_http.rb:299:in `rbuf_fill'
67:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/2.7.0/net/protocol.rb:191:in `readuntil'
66:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/2.7.0/net/protocol.rb:201:in `readline'
65:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/2.7.0/net/http/response.rb:42:in `read_status_line'
64:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/2.7.0/net/http/response.rb:31:in `read_new'
63:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/2.7.0/net/http.rb:1528:in `block in transport_request'
62:0x7f4071f9df10 <rb_f_catch at vm_eval.c:2284>:in `catch'
61:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/2.7.0/net/http.rb:1519:in `transport_request'
60:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/2.7.0/net/http.rb:1492:in `request'
59:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/webmock-3.12.2/lib/webmock/http_lib_adapters/net_http.rb:97:in `block in request'
58:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/webmock-3.12.2/lib/webmock/http_lib_adapters/net_http.rb:105:in `block in request'
57:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/webmock-3.12.2/lib/webmock/http_lib_adapters/net_http.rb:137:in `start_with_connect_without_finish'
56:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/webmock-3.12.2/lib/webmock/http_lib_adapters/net_http.rb:104:in `request'
55:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/selenium-webdriver-4.0.0.alpha7/lib/selenium/webdriver/remote/http/default.rb:125:in `response_for'
54:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/selenium-webdriver-4.0.0.alpha7/lib/selenium/webdriver/remote/http/default.rb:78:in `request'
53:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/selenium-webdriver-4.0.0.alpha7/lib/selenium/webdriver/remote/http/common.rb:64:in `call'
52:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/selenium-webdriver-4.0.0.alpha7/lib/selenium/webdriver/remote/bridge.rb:567:in `execute'
51:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/selenium-webdriver-4.0.0.alpha7/lib/selenium/webdriver/remote/bridge.rb:82:in `get'
50:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/selenium-webdriver-4.0.0.alpha7/lib/selenium/webdriver/common/navigation.rb:32:in `to'
49:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/capybara-3.35.3/lib/capybara/selenium/driver.rb:104:in `visit'
48:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/capybara-3.35.3/lib/capybara/session.rb:278:in `visit'
47:0x7f4071ec82b0 <rb_method_call_pass_called_kw at proc.c:2248>:in `call'
46:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/capybara-3.35.3/lib/capybara/dsl.rb:53:in `visit'
45:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-rails-5.0.1/lib/rspec/rails/example/feature_example_group.rb:29:in `visit'
44:/var/www/portal/spec/features/sign_up_spec.rb:538:in `block (2 levels) in <top (required)>'
43:0x7f4071fba810 <rb_obj_instance_exec_internal at vm_eval.c:2023>:in `instance_exec'
42:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:262:in `block in run'
41:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:508:in `block in with_around_and_singleton_context_hooks'
40:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:465:in `block in with_around_example_hooks'
39:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:486:in `block in run'
38:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:626:in `block in run_around_example_hooks_for'
37:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:350:in `call'
36:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-rails-5.0.1/lib/rspec/rails/adapters.rb:75:in `block (2 levels) in <module:MinitestLifecycleAdapter>'
35:0x7f4071fba810 <rb_obj_instance_exec_internal at vm_eval.c:2023>:in `instance_exec'
34:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:455:in `instance_exec'
33:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:390:in `execute_with'
32:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:628:in `block (2 levels) in run_around_example_hooks_for'
31:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:350:in `call'
30:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/webmock-3.12.2/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'
29:0x7f4071fba810 <rb_obj_instance_exec_internal at vm_eval.c:2023>:in `instance_exec'
28:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:455:in `instance_exec'
27:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:390:in `execute_with'
26:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:628:in `block (2 levels) in run_around_example_hooks_for'
25:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:350:in `call'
24:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:629:in `run_around_example_hooks_for'
23:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/hooks.rb:486:in `run'
22:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:465:in `with_around_example_hooks'
21:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:508:in `with_around_and_singleton_context_hooks'
20:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example.rb:259:in `run'
19:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:644:in `block in run_examples'
18:0x7f4071d521f0 <rb_ary_collect at array.c:3058>:in `map'
17:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:640:in `run_examples'
16:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/example_group.rb:606:in `run'
15:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
14:0x7f4071d521f0 <rb_ary_collect at array.c:3058>:in `map'
13:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
12:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/configuration.rb:2067:in `with_suite_hooks'
11:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/runner.rb:116:in `block in run_specs'
10:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/reporter.rb:74:in `report'
9:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/runner.rb:115:in `run_specs'
8:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/runner.rb:89:in `run'
7:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/runner.rb:71:in `run'
6:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/lib/rspec/core/runner.rb:45:in `invoke'
5:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rspec-core-3.10.1/exe/rspec:4:in `<top (required)>'
4:0x7f4071e43430 <rb_f_load at load.c:686>:in `load'
3:/usr/local/rvm/rubies/ruby-2.7.1/bin/rspec:23:in `<main>'
2:0x7f4071fae5e0 <rb_f_eval at vm_eval.c:1671>:in `eval'
1:/usr/local/rvm/rubies/ruby-2.7.1/bin/ruby_executable_hooks:22:in `<main>'
* #<Thread:0x556f246e8a00 rb_thread_t:0x556f24c9c020 native_thread:0x7f406bb7b700>
2:0x7f4071ecc230 <rb_f_sleep at process.c:4877>:in `sleep'
1:/var/www/portal/lib/panorama9/messages_listener.rb:30:in `block in start_translation_listener'
* #<Thread:0x556f23f872c0 rb_thread_t:0x556f24692fa0 native_thread:0x7f406b97a700>
2:0x7f4071ecc230 <rb_f_sleep at process.c:4877>:in `sleep'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:337:in `block in spawn_thread'
* #<Thread:0x556f240be648 rb_thread_t:0x7f4064135a10 native_thread:0x7f406b779700>
11:0x7f4071e1f360 <rb_f_select at io.c:9548>:in `select'
10:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rb-inotify-0.10.1/lib/rb-inotify/notifier.rb:317:in `readpartial'
9:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rb-inotify-0.10.1/lib/rb-inotify/notifier.rb:290:in `read_events'
8:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rb-inotify-0.10.1/lib/rb-inotify/notifier.rb:263:in `process'
7:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rb-inotify-0.10.1/lib/rb-inotify/notifier.rb:236:in `block in run'
6:0x7f4071f661b0 <rb_mutex_synchronize_m at thread_sync.c:537>:in `synchronize'
5:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rb-inotify-0.10.1/lib/rb-inotify/notifier.rb:232:in `run'
4:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/listen-3.5.1/lib/listen/adapter/linux.rb:41:in `_run'
3:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/listen-3.5.1/lib/listen/adapter/base.rb:79:in `block in start'
2:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/listen-3.5.1/lib/listen/thread.rb:26:in `rescue_and_log'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/listen-3.5.1/lib/listen/thread.rb:18:in `block in new'
* #<Thread:0x556f240be210 rb_thread_t:0x7f406413c3b0 native_thread:0x7f406b578700>
10:0x7f4071f5d900 <rb_queue_pop at thread_sync.c:959>:in `pop'
9:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/2.7.0/forwardable.rb:235:in `pop'
8:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/listen-3.5.1/lib/listen/event/processor.rb:89:in `_wait_until_events'
7:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/listen-3.5.1/lib/listen/event/processor.rb:21:in `block in loop_for'
6:0x7f4071f93440 <rb_f_loop at vm_eval.c:1379>:in `loop'
5:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/listen-3.5.1/lib/listen/event/processor.rb:20:in `loop_for'
4:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/listen-3.5.1/lib/listen/event/loop.rb:85:in `_process_changes'
3:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/listen-3.5.1/lib/listen/event/loop.rb:51:in `block in start'
2:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/listen-3.5.1/lib/listen/thread.rb:26:in `rescue_and_log'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/listen-3.5.1/lib/listen/thread.rb:18:in `block in new'
* #<Thread:0x556f27d57f78 rb_thread_t:0x556f2a3c29c0 native_thread:0x7f406b377700>
9:0x7f4071f65d70 <mutex_sleep at thread_sync.c:506>:in `sleep'
8:0x7f4071f5c6a0 <rb_condvar_wait at thread_sync.c:1398>:in `wait'
7:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/semaphore.rb:30:in `block in wait'
6:0x7f4071f661b0 <rb_mutex_synchronize_m at thread_sync.c:537>:in `synchronize'
5:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/semaphore.rb:29:in `wait'
4:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/cluster/periodic_executor.rb:56:in `do_work'
3:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/background_thread.rb:101:in `block (2 levels) in start!'
2:0x7f4071f9df10 <rb_f_catch at vm_eval.c:2284>:in `catch'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/background_thread.rb:99:in `block in start!'
* #<Thread:0x556f27d571b8 rb_thread_t:0x556f2a3c3050 native_thread:0x7f4068fcd700>
11:0x7f4071f65d70 <mutex_sleep at thread_sync.c:506>:in `sleep'
10:0x7f4071f5c6a0 <rb_condvar_wait at thread_sync.c:1398>:in `wait'
9:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/distinguishing_semaphore.rb:34:in `block in wait'
8:0x7f4071f661b0 <rb_mutex_synchronize_m at thread_sync.c:537>:in `synchronize'
7:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/distinguishing_semaphore.rb:33:in `wait'
6:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/server/monitor.rb:139:in `block in do_work'
5:0x7f4071f93440 <rb_f_loop at vm_eval.c:1379>:in `loop'
4:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/server/monitor.rb:136:in `do_work'
3:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/background_thread.rb:101:in `block (2 levels) in start!'
2:0x7f4071f9df10 <rb_f_catch at vm_eval.c:2284>:in `catch'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/background_thread.rb:99:in `block in start!'
* #<Thread:0x556f2a11c738 rb_thread_t:0x556f265c5060 native_thread:0x7f4068dcc700>
9:0x7f4071f65d70 <mutex_sleep at thread_sync.c:506>:in `sleep'
8:0x7f4071f5c6a0 <rb_condvar_wait at thread_sync.c:1398>:in `wait'
7:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/semaphore.rb:30:in `block in wait'
6:0x7f4071f661b0 <rb_mutex_synchronize_m at thread_sync.c:537>:in `synchronize'
5:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/semaphore.rb:29:in `wait'
4:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/cluster/periodic_executor.rb:56:in `do_work'
3:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/background_thread.rb:101:in `block (2 levels) in start!'
2:0x7f4071f9df10 <rb_f_catch at vm_eval.c:2284>:in `catch'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/background_thread.rb:99:in `block in start!'
* #<Thread:0x556f2a11c148 rb_thread_t:0x556f282e54f0 native_thread:0x7f4068bcb700>
11:0x7f4071f65d70 <mutex_sleep at thread_sync.c:506>:in `sleep'
10:0x7f4071f5c6a0 <rb_condvar_wait at thread_sync.c:1398>:in `wait'
9:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/distinguishing_semaphore.rb:34:in `block in wait'
8:0x7f4071f661b0 <rb_mutex_synchronize_m at thread_sync.c:537>:in `synchronize'
7:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/distinguishing_semaphore.rb:33:in `wait'
6:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/server/monitor.rb:139:in `block in do_work'
5:0x7f4071f93440 <rb_f_loop at vm_eval.c:1379>:in `loop'
4:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/server/monitor.rb:136:in `do_work'
3:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/background_thread.rb:101:in `block (2 levels) in start!'
2:0x7f4071f9df10 <rb_f_catch at vm_eval.c:2284>:in `catch'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/background_thread.rb:99:in `block in start!'
* #<Thread:0x556f2979ca50 rb_thread_t:0x556f2e9766e0 native_thread:0x7f40689ca700>
9:0x7f4071f65d70 <mutex_sleep at thread_sync.c:506>:in `sleep'
8:0x7f4071f5c6a0 <rb_condvar_wait at thread_sync.c:1398>:in `wait'
7:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/semaphore.rb:30:in `block in wait'
6:0x7f4071f661b0 <rb_mutex_synchronize_m at thread_sync.c:537>:in `synchronize'
5:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/semaphore.rb:29:in `wait'
4:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/cluster/periodic_executor.rb:56:in `do_work'
3:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/background_thread.rb:101:in `block (2 levels) in start!'
2:0x7f4071f9df10 <rb_f_catch at vm_eval.c:2284>:in `catch'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/background_thread.rb:99:in `block in start!'
* #<Thread:0x556f2eb8bb98 rb_thread_t:0x556f2e976960 native_thread:0x7f40687c9700>
11:0x7f4071f65d70 <mutex_sleep at thread_sync.c:506>:in `sleep'
10:0x7f4071f5c6a0 <rb_condvar_wait at thread_sync.c:1398>:in `wait'
9:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/distinguishing_semaphore.rb:34:in `block in wait'
8:0x7f4071f661b0 <rb_mutex_synchronize_m at thread_sync.c:537>:in `synchronize'
7:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/distinguishing_semaphore.rb:33:in `wait'
6:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/server/monitor.rb:139:in `block in do_work'
5:0x7f4071f93440 <rb_f_loop at vm_eval.c:1379>:in `loop'
4:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/server/monitor.rb:136:in `do_work'
3:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/background_thread.rb:101:in `block (2 levels) in start!'
2:0x7f4071f9df10 <rb_f_catch at vm_eval.c:2284>:in `catch'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongo-2.14.0/lib/mongo/background_thread.rb:99:in `block in start!'
* #<Thread:0x556f2cc21e88 rb_thread_t:0x556f2fbafe90 native_thread:0x7f40685c8700>
4:0x7f4071f5edb0 <thread_join_m at thread.c:1137>:in `join'
3:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/capybara-3.35.3/lib/capybara/registrations/servers.rb:44:in `block in <top (required)>'
2:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/capybara-3.35.3/lib/capybara/config.rb:62:in `block in server='
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/capybara-3.35.3/lib/capybara/server.rb:77:in `block in boot'
* #<Thread:0x556f2b0b5820 rb_thread_t:0x7f4040183680 native_thread:0x7f40683c7700>
3:0x7f406cbadd80 <NIO_Selector_select at selector.c:397>:in `select'
2:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/puma-5.2.2/lib/puma/reactor.rb:75:in `select_loop'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/puma-5.2.2/lib/puma/reactor.rb:39:in `block in run'
* #<Thread:0x556f2b0b5618 rb_thread_t:0x7f4040183cb0 native_thread:0x7f403bfff700>
2:0x7f4071ecc230 <rb_f_sleep at process.c:4877>:in `sleep'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/puma-5.2.2/lib/puma/thread_pool.rb:308:in `block in start!'
* #<Thread:0x556f2b0b52d0 rb_thread_t:0x7f4040184240 native_thread:0x7f403bdfe700>
2:0x7f4071ecc230 <rb_f_sleep at process.c:4877>:in `sleep'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/puma-5.2.2/lib/puma/thread_pool.rb:308:in `block in start!'
* #<Thread:0x556f2b0b5028 rb_thread_t:0x7f4040184970 native_thread:0x7f403bbfd700>
3:0x7f4071e1f360 <rb_f_select at io.c:9548>:in `select'
2:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/puma-5.2.2/lib/puma/server.rb:324:in `handle_servers'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/puma-5.2.2/lib/puma/server.rb:259:in `block in run'
* #<Thread:0x556f2b005df8 rb_thread_t:0x7f402c005c60 native_thread:0x7f403b7fb700>
159:0x7f4071f65d70 <mutex_sleep at thread_sync.c:506>:in `sleep'
158:0x7f4071f5c6a0 <rb_condvar_wait at thread_sync.c:1398>:in `wait'
157:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:46:in `ns_wait'
156:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/synchronization/abstract_lockable_object.rb:43:in `ns_wait_until'
155:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/atomic/event.rb:87:in `block in wait'
154:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:41:in `block in synchronize'
153:0x7f4071f661b0 <rb_mutex_synchronize_m at thread_sync.c:537>:in `synchronize'
152:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:41:in `synchronize'
151:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/atomic/event.rb:84:in `wait'
150:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/concern/obligation.rb:75:in `wait'
149:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/concern/obligation.rb:87:in `wait!'
148:0x7f4071d4c130 <rb_ary_each at array.c:2130>:in `each'
147:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/manifest.rb:130:in `find'
146:0x7f4071ddb6d0 <enumerator_each at enumerator.c:601>:in `each'
145:0x7f4071dcdda0 <enum_collect at enum.c:573>:in `map'
144:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-rails-3.2.2/lib/sprockets/railtie.rb:50:in `precompiled_assets'
143:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-rails-3.2.2/lib/sprockets/railtie.rb:35:in `asset_precompiled?'
142:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-rails-3.2.2/lib/sprockets/railtie.rb:252:in `block (3 levels) in <class:Railtie>'
141:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-rails-3.2.2/lib/sprockets/rails/helper.rb:368:in `precompiled?'
140:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-rails-3.2.2/lib/sprockets/rails/helper.rb:372:in `raise_unless_precompiled_asset'
139:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-rails-3.2.2/lib/sprockets/rails/helper.rb:338:in `digest_path'
138:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-rails-3.2.2/lib/sprockets/rails/helper.rb:326:in `asset_path'
137:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-rails-3.2.2/lib/sprockets/rails/helper.rb:103:in `block in resolve_asset_path'
136:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-rails-3.2.2/lib/sprockets/rails/helper.rb:243:in `block in resolve_asset'
135: ???.rb:???:in `???'
134:0x7f4071d4c130 <rb_ary_each at array.c:2130>:in `each'
133:0x7f4071dcd1a0 <enum_find at enum.c:294>:in `detect'
132:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-rails-3.2.2/lib/sprockets/rails/helper.rb:242:in `resolve_asset'
131:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-rails-3.2.2/lib/sprockets/rails/helper.rb:102:in `resolve_asset_path'
130:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-rails-3.2.2/lib/sprockets/rails/helper.rb:80:in `compute_asset_path'
129:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/helpers/asset_url_helper.rb:201:in `asset_path'
128:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/helpers/asset_url_helper.rb:319:in `javascript_path'
127:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/helpers/asset_tag_helper.rb:93:in `block in javascript_include_tag'
126:0x7f4071d521f0 <rb_ary_collect at array.c:3058>:in `map'
125:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/helpers/asset_tag_helper.rb:92:in `javascript_include_tag'
124:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-rails-3.2.2/lib/sprockets/rails/helper.rb:157:in `block in javascript_include_tag'
123:0x7f4071d521f0 <rb_ary_collect at array.c:3058>:in `map'
122:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-rails-3.2.2/lib/sprockets/rails/helper.rb:155:in `javascript_include_tag'
121:/var/www/portal/app/views/auth/sign_up/new.html.erb:1:in `_app_views_auth_sign_up_new_html_erb__4554650036641568034_288100'
120:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/base.rb:274:in `_run'
119:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/template.rb:185:in `block in render'
118:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/notifications.rb:182:in `instrument'
117:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/template.rb:385:in `instrument_render_template'
116:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/template.rb:183:in `render'
115:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/renderer/template_renderer.rb:58:in `block (2 levels) in render_template'
114:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/renderer/abstract_renderer.rb:88:in `block in instrument'
113:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/notifications.rb:180:in `block in instrument'
112:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
111:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/notifications.rb:180:in `instrument'
110:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/renderer/abstract_renderer.rb:87:in `instrument'
109:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/renderer/template_renderer.rb:57:in `block in render_template'
108:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/renderer/template_renderer.rb:65:in `render_with_layout'
107:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/renderer/template_renderer.rb:56:in `render_template'
106:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/renderer/template_renderer.rb:13:in `render'
105:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/renderer/renderer.rb:61:in `render_template_to_object'
104:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/renderer/renderer.rb:29:in `render_to_object'
103:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/rendering.rb:117:in `block in _render_template'
102:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/base.rb:304:in `in_rendering_context'
101:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/rendering.rb:116:in `_render_template'
100:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/streaming.rb:218:in `_render_template'
99:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/rendering.rb:103:in `render_to_body'
98:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/rendering.rb:52:in `render_to_body'
97:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/renderers.rb:142:in `render_to_body'
96:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/abstract_controller/rendering.rb:25:in `render'
95:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/rendering.rb:36:in `render'
94:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/instrumentation.rb:44:in `block (2 levels) in render'
93:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/core_ext/benchmark.rb:14:in `block in ms'
92:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/2.7.0/benchmark.rb:308:in `realtime'
91:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/core_ext/benchmark.rb:14:in `ms'
90:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/instrumentation.rb:44:in `block in render'
89:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/instrumentation.rb:84:in `cleanup_view_runtime'
88:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/railties/controller_runtime.rb:34:in `cleanup_view_runtime'
87:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongoid-7.0.12/lib/mongoid/railties/controller_runtime.rb:25:in `cleanup_view_runtime'
86:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/instrumentation.rb:43:in `render'
85:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/remotipart-1.4.4/lib/remotipart/render_overrides.rb:23:in `render'
84:0x7f4071ec82b0 <rb_method_call_pass_called_kw at proc.c:2248>:in `call'
83:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/wicked_pdf-2.1.0/lib/wicked_pdf/pdf_helper.rb:46:in `render_with_wicked_pdf'
82:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/wicked_pdf-2.1.0/lib/wicked_pdf/pdf_helper.rb:30:in `render'
81:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/implicit_render.rb:35:in `default_render'
80:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/basic_implicit_render.rb:6:in `block in send_action'
79:0x7f4071e8b7c0 <rb_obj_tap at object.c:910>:in `tap'
78:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
77:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/abstract_controller/base.rb:195:in `process_action'
76:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/rendering.rb:30:in `process_action'
75:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
74:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/callbacks.rb:135:in `run_callbacks'
73:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/abstract_controller/callbacks.rb:41:in `process_action'
72:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/rescue.rb:22:in `process_action'
71:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
70:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/notifications.rb:180:in `block in instrument'
69:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
68:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/notifications.rb:180:in `instrument'
67:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
66:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
65:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/activerecord-6.0.3.6/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
64:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mongoid-7.0.12/lib/mongoid/railties/controller_runtime.rb:19:in `process_action'
63:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/abstract_controller/base.rb:136:in `process'
62:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/rendering.rb:39:in `process'
61:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_controller/metal.rb:190:in `dispatch'
60:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_controller/metal.rb:254:in `dispatch'
59:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
58:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/routing/route_set.rb:33:in `serve'
57:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/routing/mapper.rb:18:in `block in <class:Constraints>'
56:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/routing/mapper.rb:48:in `serve'
55:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/journey/router.rb:49:in `block in serve'
54:0x7f4071d4c130 <rb_ary_each at array.c:2130>:in `each'
53:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/journey/router.rb:32:in `serve'
52:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/routing/route_set.rb:834:in `call'
51:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rack-pjax-1.1.0/lib/rack/pjax.rb:12:in `call'
50:/var/www/portal/vendor/custom_gems/rack-oauth2-server/lib/rack/oauth2/server.rb:289:in `call'
49:/var/www/portal/app/middleware/rails_before_routes_handler.rb:74:in `call'
48:/var/www/portal/app/middleware/catch_json_parse_errors.rb:8:in `call'
47:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/remotipart-1.4.4/lib/remotipart/middleware.rb:32:in `call'
46:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/warden-1.2.9/lib/warden/manager.rb:36:in `block in call'
45:0x7f4071f9df10 <rb_f_catch at vm_eval.c:2284>:in `catch'
44:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/warden-1.2.9/lib/warden/manager.rb:34:in `call'
43:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rack-cors-1.1.1/lib/rack/cors.rb:100:in `call'
42:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/tempfile_reaper.rb:15:in `call'
41:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/etag.rb:27:in `call'
40:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/conditional_get.rb:27:in `call'
39:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/head.rb:12:in `call'
38:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/http/content_security_policy.rb:18:in `call'
37:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:266:in `context'
36:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:260:in `call'
35:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/cookies.rb:648:in `call'
34:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
33:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/callbacks.rb:101:in `run_callbacks'
32:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
31:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/executor.rb:14:in `call'
30:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'
29:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'
28:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
27:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.0.3.6/lib/rails/rack/logger.rb:37:in `call_app'
26:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.0.3.6/lib/rails/rack/logger.rb:26:in `block in call'
25:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/tagged_logging.rb:80:in `block in tagged'
24:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/tagged_logging.rb:28:in `tagged'
23:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/tagged_logging.rb:80:in `tagged'
22:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.0.3.6/lib/rails/rack/logger.rb:26:in `call'
21:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
20:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/request_id.rb:27:in `call'
19:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/method_override.rb:24:in `call'
18:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/runtime.rb:22:in `call'
17:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.6/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
16:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/executor.rb:14:in `call'
15:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/static.rb:126:in `call'
14:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/sendfile.rb:110:in `call'
13:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.6/lib/action_dispatch/middleware/host_authorization.rb:76:in `call'
12:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.0.3.6/lib/rails/engine.rb:527:in `call'
11:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/urlmap.rb:74:in `block in call'
10:0x7f4071d4c130 <rb_ary_each at array.c:2130>:in `each'
9:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.3/lib/rack/urlmap.rb:58:in `call'
8:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/capybara-3.35.3/lib/capybara/server/middleware.rb:60:in `call'
7:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/puma-5.2.2/lib/puma/configuration.rb:248:in `call'
6:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/puma-5.2.2/lib/puma/request.rb:76:in `block in handle_request'
5:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/puma-5.2.2/lib/puma/thread_pool.rb:337:in `with_force_shutdown'
4:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/puma-5.2.2/lib/puma/request.rb:75:in `handle_request'
3:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/puma-5.2.2/lib/puma/server.rb:431:in `process_client'
2: ???.rb:???:in `???'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/puma-5.2.2/lib/puma/thread_pool.rb:145:in `block in spawn_thread'
* #<Thread:0x556f2a954180 rb_thread_t:0x7f40240f3a40 native_thread:0x7f403b9fc700>
69:0x7f4071df1290 <rb_file_exist_p at file.c:1754>:in `exist?'
68:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/path_utils.rb:17:in `stat'
67:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/cached_environment.rb:39:in `stat'
66:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/path_utils.rb:43:in `directory?'
65:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/npm.rb:17:in `resolve_alternates'
64:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/resolve.rb:258:in `resolve_alts_under_path'
63:0x7f4071ec82b0 <rb_method_call_pass_called_kw at proc.c:2248>:in `call'
62:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/resolve.rb:191:in `block (2 levels) in resolve_under_paths'
61:0x7f4071d4c130 <rb_ary_each at array.c:2130>:in `each'
60:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/resolve.rb:190:in `block in resolve_under_paths'
59:0x7f4071d4c130 <rb_ary_each at array.c:2130>:in `each'
58:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/resolve.rb:188:in `resolve_under_paths'
57:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/resolve.rb:152:in `resolve_logical_path'
56:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/resolve.rb:34:in `resolve'
55:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/resolve.rb:47:in `resolve!'
54:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/directive_processor.rb:409:in `resolve'
53:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/directive_processor.rb:216:in `process_require_directive'
52:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/directive_processor.rb:189:in `block in process_directives'
51:0x7f4071d4c130 <rb_ary_each at array.c:2130>:in `each'
50:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/directive_processor.rb:187:in `process_directives'
49:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/directive_processor.rb:84:in `_call'
48:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/directive_processor.rb:65:in `call'
47:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:84:in `call_processor'
46:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
45:0x7f4071d4c1c0 <rb_ary_reverse_each at array.c:2187>:in `reverse_each'
44:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `call_processors'
43:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:182:in `load_from_unloaded'
42:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:59:in `block in load'
41:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:337:in `fetch_asset_from_dependency_cache'
40:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:43:in `load'
39:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/cached_environment.rb:44:in `load'
38:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/bundle.rb:27:in `call'
37:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:84:in `call_processor'
36:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
35:0x7f4071d4c1c0 <rb_ary_reverse_each at array.c:2187>:in `reverse_each'
34:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `call_processors'
33:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:182:in `load_from_unloaded'
32:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:59:in `block in load'
31:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:337:in `fetch_asset_from_dependency_cache'
30:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:43:in `load'
29:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/cached_environment.rb:44:in `load'
28:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/bundle.rb:32:in `block in call'
27:0x7f4071e167c0 <rb_hash_each_key at hash.c:3038>:in `each_key'
26:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/2.7.0/set.rb:328:in `each'
25:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/bundle.rb:31:in `call'
24:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:84:in `call_processor'
23:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
22:0x7f4071d4c1c0 <rb_ary_reverse_each at array.c:2187>:in `reverse_each'
21:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `call_processors'
20:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:182:in `load_from_unloaded'
19:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:59:in `block in load'
18:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:337:in `fetch_asset_from_dependency_cache'
17:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:43:in `load'
16:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/cached_environment.rb:44:in `load'
15:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/base.rb:81:in `find_asset'
14:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/base.rb:88:in `find_all_linked_assets'
13:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/manifest.rb:125:in `block (2 levels) in find'
12:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:24:in `block in execute'
11:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:41:in `block in synchronize'
10:0x7f4071f661b0 <rb_mutex_synchronize_m at thread_sync.c:537>:in `synchronize'
9:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:41:in `synchronize'
8:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:19:in `execute'
7:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/promise.rb:563:in `block in realize'
6:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:363:in `run_task'
5:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:352:in `block (3 levels) in create_worker'
4:0x7f4071f93440 <rb_f_loop at vm_eval.c:1379>:in `loop'
3:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:335:in `block (2 levels) in create_worker'
2:0x7f4071f9df10 <rb_f_catch at vm_eval.c:2284>:in `catch'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:334:in `block in create_worker'
* #<Thread:0x556f2a93ab68 rb_thread_t:0x7f40240f4060 native_thread:0x7f403b5fa700>
54:0x7f4069735390 <rb_context_init_unsafe(VALUE, VALUE, VALUE) at mini_racer_extension.cc:804>:in `init_unsafe'
53:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/mini_racer-0.4.0/lib/mini_racer.rb:174:in `initialize'
52:0x7f4071e8f430 <rb_class_s_new at object.c:2148>:in `new'
51:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/execjs-2.7.0/lib/execjs/mini_racer_runtime.rb:8:in `initialize'
50:0x7f4071e8f430 <rb_class_s_new at object.c:2148>:in `new'
49:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/execjs-2.7.0/lib/execjs/runtime.rb:57:in `compile'
48:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/execjs-2.7.0/lib/execjs/module.rb:27:in `compile'
47:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/coffee-script-2.4.1/lib/coffee_script.rb:50:in `context'
46:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/coffee-script-2.4.1/lib/coffee_script.rb:78:in `compile'
45:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/coffee_script_processor.rb:24:in `block in call'
44:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/cache.rb:92:in `fetch'
43:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/coffee_script_processor.rb:23:in `call'
42:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:84:in `call_processor'
41:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
40:0x7f4071d4c1c0 <rb_ary_reverse_each at array.c:2187>:in `reverse_each'
39:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `call_processors'
38:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:22:in `block in <class:CompositeProcessor>'
37:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:33:in `call'
36:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:84:in `call_processor'
35:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
34:0x7f4071d4c1c0 <rb_ary_reverse_each at array.c:2187>:in `reverse_each'
33:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `call_processors'
32:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:182:in `load_from_unloaded'
31:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:59:in `block in load'
30:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:337:in `fetch_asset_from_dependency_cache'
29:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:43:in `load'
28:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/cached_environment.rb:44:in `load'
27:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/bundle.rb:41:in `block in call'
26:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/utils.rb:167:in `dfs'
25:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/bundle.rb:42:in `call'
24:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:84:in `call_processor'
23:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
22:0x7f4071d4c1c0 <rb_ary_reverse_each at array.c:2187>:in `reverse_each'
21:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `call_processors'
20:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:182:in `load_from_unloaded'
19:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:59:in `block in load'
18:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:337:in `fetch_asset_from_dependency_cache'
17:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:43:in `load'
16:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/cached_environment.rb:44:in `load'
15:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/base.rb:81:in `find_asset'
14:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/base.rb:88:in `find_all_linked_assets'
13:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/manifest.rb:125:in `block (2 levels) in find'
12:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:24:in `block in execute'
11:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:41:in `block in synchronize'
10:0x7f4071f661b0 <rb_mutex_synchronize_m at thread_sync.c:537>:in `synchronize'
9:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:41:in `synchronize'
8:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:19:in `execute'
7:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/promise.rb:563:in `block in realize'
6:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:363:in `run_task'
5:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:352:in `block (3 levels) in create_worker'
4:0x7f4071f93440 <rb_f_loop at vm_eval.c:1379>:in `loop'
3:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:335:in `block (2 levels) in create_worker'
2:0x7f4071f9df10 <rb_f_catch at vm_eval.c:2284>:in `catch'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:334:in `block in create_worker'
* #<Thread:0x556f2a938b60 rb_thread_t:0x7f40240f4890 native_thread:0x7f403b3f9700>
68:0x7f4071df1290 <rb_file_exist_p at file.c:1754>:in `exist?'
67:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/path_utils.rb:17:in `stat'
66:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/cached_environment.rb:39:in `stat'
65:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/path_utils.rb:43:in `directory?'
64:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/npm.rb:17:in `resolve_alternates'
63:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/resolve.rb:258:in `resolve_alts_under_path'
62:0x7f4071ec82b0 <rb_method_call_pass_called_kw at proc.c:2248>:in `call'
61:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/resolve.rb:191:in `block (2 levels) in resolve_under_paths'
60:0x7f4071d4c130 <rb_ary_each at array.c:2130>:in `each'
59:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/resolve.rb:190:in `block in resolve_under_paths'
58:0x7f4071d4c130 <rb_ary_each at array.c:2130>:in `each'
57:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/resolve.rb:188:in `resolve_under_paths'
56:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/resolve.rb:152:in `resolve_logical_path'
55:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/resolve.rb:34:in `resolve'
54:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/resolve.rb:47:in `resolve!'
53:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/context.rb:105:in `resolve'
52:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/context.rb:144:in `depend_on_asset'
51:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/context.rb:184:in `link_asset'
50:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-rails-3.2.2/lib/sprockets/rails/context.rb:27:in `compute_asset_path'
49:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.6/lib/action_view/helpers/asset_url_helper.rb:201:in `asset_path'
48:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/sass_processor.rb:145:in `asset_path'
47:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/sass_processor.rb:158:in `asset_url'
46:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sassc-2.4.0/lib/sassc/functions_handler.rb:26:in `block (2 levels) in setup'
45:0x7f4072115078:in `compile_data_context'
44:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sassc-2.4.0/lib/sassc/engine.rb:43:in `render'
43:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sassc-rails-2.1.2/lib/sassc/rails/template.rb:40:in `block in call'
42:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/utils.rb:138:in `module_include'
41:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sassc-rails-2.1.2/lib/sassc/rails/template.rb:39:in `call'
40:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:84:in `call_processor'
39:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
38:0x7f4071d4c1c0 <rb_ary_reverse_each at array.c:2187>:in `reverse_each'
37:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `call_processors'
36:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:22:in `block in <class:CompositeProcessor>'
35:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:33:in `call'
34:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:84:in `call_processor'
33:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
32:0x7f4071d4c1c0 <rb_ary_reverse_each at array.c:2187>:in `reverse_each'
31:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `call_processors'
30:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:182:in `load_from_unloaded'
29:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:59:in `block in load'
28:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:337:in `fetch_asset_from_dependency_cache'
27:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:43:in `load'
26:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/cached_environment.rb:44:in `load'
25:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/bundle.rb:27:in `call'
24:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:84:in `call_processor'
23:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:66:in `block in call_processors'
22:0x7f4071d4c1c0 <rb_ary_reverse_each at array.c:2187>:in `reverse_each'
21:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/processor_utils.rb:65:in `call_processors'
20:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:182:in `load_from_unloaded'
19:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:59:in `block in load'
18:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:337:in `fetch_asset_from_dependency_cache'
17:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/loader.rb:43:in `load'
16:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/cached_environment.rb:44:in `load'
15:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/base.rb:81:in `find_asset'
14:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/base.rb:88:in `find_all_linked_assets'
13:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/manifest.rb:125:in `block (2 levels) in find'
12:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:24:in `block in execute'
11:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:41:in `block in synchronize'
10:0x7f4071f661b0 <rb_mutex_synchronize_m at thread_sync.c:537>:in `synchronize'
9:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:41:in `synchronize'
8:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:19:in `execute'
7:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/promise.rb:563:in `block in realize'
6:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:363:in `run_task'
5:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:352:in `block (3 levels) in create_worker'
4:0x7f4071f93440 <rb_f_loop at vm_eval.c:1379>:in `loop'
3:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:335:in `block (2 levels) in create_worker'
2:0x7f4071f9df10 <rb_f_catch at vm_eval.c:2284>:in `catch'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:334:in `block in create_worker'
* #<Thread:0x556f2a92f290 rb_thread_t:0x7f40240f5060 native_thread:0x7f403b1f8700>
6:0x7f4071f5d900 <rb_queue_pop at thread_sync.c:959>:in `pop'
5:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'
4:0x7f4071f93440 <rb_f_loop at vm_eval.c:1379>:in `loop'
3:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:335:in `block (2 levels) in create_worker'
2:0x7f4071f9df10 <rb_f_catch at vm_eval.c:2284>:in `catch'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:334:in `block in create_worker'
* #<Thread:0x556f2a92dbc0 rb_thread_t:0x7f40240f57d0 native_thread:0x7f403aff7700>
6:0x7f4071f5d900 <rb_queue_pop at thread_sync.c:959>:in `pop'
5:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:337:in `block (3 levels) in create_worker'
4:0x7f4071f93440 <rb_f_loop at vm_eval.c:1379>:in `loop'
3:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:335:in `block (2 levels) in create_worker'
2:0x7f4071f9df10 <rb_f_catch at vm_eval.c:2284>:in `catch'
1:/usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:334:in `block in create_worker'
* #<Thread:0x556f2a72b020 rb_thread_t:0x7f4014016530 native_thread:0x7f403adf6700>
@lephyrius
Copy link

I have totally the same issue!

@SamSaffron
Copy link
Collaborator

We need to find where this free is coming from, do you have a native backtrace at the point of failure?

@thomasbalsloev
Copy link
Author

Hi @SamSaffron

Used GBD to catch the native back trace:

(gdb) backtrace
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007fa855033859 in __GI_abort () at abort.c:79
#2  0x00007fa85509e3ee in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7fa8551c8285 "%s\n") at ../sysdeps/posix/libc_fatal.c:155
#3  0x00007fa8550a647c in malloc_printerr (str=str@entry=0x7fa8551c64ae "free(): invalid pointer") at malloc.c:5347
#4  0x00007fa8550a7cac in _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at malloc.c:4173
#5  0x00007fa84cd35a26 in v8::internal::ComputeFlagListHash() ()
   from /usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/extensions/x86_64-linux/2.7.0/mini_racer-0.4.0/mini_racer_extension.so
#6  0x00007fa84ce16309 in v8::internal::V8::InitializeOncePerProcessImpl() ()
   from /usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/extensions/x86_64-linux/2.7.0/mini_racer-0.4.0/mini_racer_extension.so
#7  0x00007fa84d670991 in v8::base::CallOnceImpl(std::atomic<unsigned char>*, std::function<void ()>) ()
   from /usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/extensions/x86_64-linux/2.7.0/mini_racer-0.4.0/mini_racer_extension.so
#8  0x00007fa84ce16704 in v8::internal::V8::InitializeOncePerProcess() ()
   from /usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/extensions/x86_64-linux/2.7.0/mini_racer-0.4.0/mini_racer_extension.so
#9  0x00007fa84ce16749 in v8::internal::V8::Initialize() ()
   from /usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/extensions/x86_64-linux/2.7.0/mini_racer-0.4.0/mini_racer_extension.so
#10 0x00007fa84cc3b46a in v8::V8::Initialize(int) ()
   from /usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/extensions/x86_64-linux/2.7.0/mini_racer-0.4.0/mini_racer_extension.so
#11 0x00007fa84cc27c04 in v8::V8::Initialize () at /usr/local/rvm/rubies/ruby-2.7.1/lib/ruby/gems/2.7.0/gems/libv8-node-15.14.0.0-x86_64-linux/vendor/v8/include/v8.h:9662
#12 init_v8 () at mini_racer_extension.cc:201
#13 0x00007fa84cc2a3d4 in rb_context_init_unsafe (self=94629477468000, isolate=8, snap=8) at mini_racer_extension.cc:808
#14 0x00007fa855492ac0 in vm_call_cfunc_with_frame (empty_kw_splat=<optimized out>, cd=0x56109806a050, calling=<optimized out>, reg_cfp=0x7fa82e7f0900, ec=0x7fa804144cb0)
    at vm_insnhelper.c:2514
#15 vm_call_cfunc (ec=0x7fa804144cb0, reg_cfp=0x7fa82e7f0900, calling=<optimized out>, cd=0x56109806a050) at vm_insnhelper.c:2539
#16 0x00007fa8554a82fb in vm_call_method (ec=0x7fa804144cb0, cfp=0x7fa82e7f0900, calling=<optimized out>, cd=<optimized out>) at vm_insnhelper.c:3053
#17 0x00007fa8554a04c3 in vm_sendish (block_handler=<optimized out>, method_explorer=<optimized out>, cd=<optimized out>, reg_cfp=<optimized out>, ec=<optimized out>)
    at vm_insnhelper.c:4023
#18 vm_exec_core (ec=0x7fa804144cb0, initial=140360310252400) at insns.def:801
#19 0x00007fa8554a6674 in rb_vm_exec (ec=0x7fa804144cb0, mjit_enable_p=1) at vm.c:1920
#20 0x00007fa8554ac0fe in vm_call0_body (ec=0x7fa804144cb0, calling=0x7fa82e6ef190, cd=0x7fa82e6ef1f0, argv=0x7fa82e6f2070) at vm_eval.c:136
#21 0x00007fa8554ac5a3 in rb_vm_call0 (ec=ec@entry=0x7fa804144cb0, recv=recv@entry=94629477468000, id=id@entry=3089, argc=<optimized out>, argv=<optimized out>, 
    me=me@entry=0x56109728d450, kw_splat=0) at vm_eval.c:52
#22 0x00007fa8554ac94c in rb_vm_call_kw (ec=0x7fa804144cb0, recv=recv@entry=94629477468000, id=id@entry=3089, argc=<optimized out>, argv=<optimized out>, me=0x56109728d450, 
    kw_splat=<optimized out>) at vm_eval.c:268
#23 0x00007fa8554ace5c in rb_call0 (ec=<optimized out>, recv=recv@entry=94629477468000, mid=mid@entry=3089, argc=<optimized out>, argv=<optimized out>, 
    call_scope=<optimized out>, self=<optimized out>) at vm_eval.c:392
#24 0x00007fa8554ad9fc in rb_call (scope=<optimized out>, argv=<optimized out>, argc=<optimized out>, mid=3089, recv=94629477468000) at vm_eval.c:718
#25 rb_funcallv_kw (recv=recv@entry=94629477468000, mid=mid@entry=3089, argc=<optimized out>, argc@entry=0, argv=<optimized out>, argv@entry=0x7fa82e6f2070, 
    kw_splat=<optimized out>, kw_splat@entry=3) at vm_eval.c:965
--Type <RET> for more, q to quit, c to continue without paging--
#26 0x00007fa8552e837b in rb_obj_call_init_kw (obj=obj@entry=94629477468000, argc=argc@entry=0, argv=argv@entry=0x7fa82e6f2070, kw_splat=kw_splat@entry=3) at eval.c:1691
#27 0x00007fa85538a480 in rb_class_s_new (argc=0, argv=0x7fa82e6f2070, klass=94629255507600) at object.c:2152
#28 0x00007fa855492ac0 in vm_call_cfunc_with_frame (empty_kw_splat=<optimized out>, cd=0x56109805e9f0, calling=<optimized out>, reg_cfp=0x7fa82e7f0970, ec=0x7fa804144cb0)
    at vm_insnhelper.c:2514
#29 vm_call_cfunc (ec=0x7fa804144cb0, reg_cfp=0x7fa82e7f0970, calling=<optimized out>, cd=0x56109805e9f0) at vm_insnhelper.c:2539
#30 0x00007fa8554a82fb in vm_call_method (ec=0x7fa804144cb0, cfp=0x7fa82e7f0970, calling=<optimized out>, cd=<optimized out>) at vm_insnhelper.c:3053
#31 0x00007fa8554a04c3 in vm_sendish (block_handler=<optimized out>, method_explorer=<optimized out>, cd=<optimized out>, reg_cfp=<optimized out>, ec=<optimized out>)
    at vm_insnhelper.c:4023
#32 vm_exec_core (ec=0x7fa804144cb0, initial=140360310252400) at insns.def:801
#33 0x00007fa8554a6674 in rb_vm_exec (ec=0x7fa804144cb0, mjit_enable_p=1) at vm.c:1920
#34 0x00007fa8554ac0fe in vm_call0_body (ec=0x7fa804144cb0, calling=0x7fa82e6ef740, cd=0x7fa82e6ef7a0, argv=0x7fa82e6f2000) at vm_eval.c:136
#35 0x00007fa8554ac5a3 in rb_vm_call0 (ec=ec@entry=0x7fa804144cb0, recv=recv@entry=94629477468160, id=id@entry=3089, argc=<optimized out>, argv=<optimized out>, 
    me=me@entry=0x5610972a9bc8, kw_splat=0) at vm_eval.c:52
#36 0x00007fa8554ac94c in rb_vm_call_kw (ec=0x7fa804144cb0, recv=recv@entry=94629477468160, id=id@entry=3089, argc=<optimized out>, argv=<optimized out>, me=0x5610972a9bc8, 
    kw_splat=<optimized out>) at vm_eval.c:268
#37 0x00007fa8554ace5c in rb_call0 (ec=<optimized out>, recv=recv@entry=94629477468160, mid=mid@entry=3089, argc=<optimized out>, argv=<optimized out>, 
    call_scope=<optimized out>, self=<optimized out>) at vm_eval.c:392
#38 0x00007fa8554ad9fc in rb_call (scope=<optimized out>, argv=<optimized out>, argc=<optimized out>, mid=3089, recv=94629477468160) at vm_eval.c:718
#39 rb_funcallv_kw (recv=recv@entry=94629477468160, mid=mid@entry=3089, argc=<optimized out>, argc@entry=3, argv=<optimized out>, argv@entry=0x7fa82e6f2000, 
    kw_splat=<optimized out>, kw_splat@entry=3) at vm_eval.c:965
#40 0x00007fa8552e837b in rb_obj_call_init_kw (obj=obj@entry=94629477468160, argc=argc@entry=3, argv=argv@entry=0x7fa82e6f2000, kw_splat=kw_splat@entry=3) at eval.c:1691
#41 0x00007fa85538a480 in rb_class_s_new (argc=3, argv=0x7fa82e6f2000, klass=94629255617640) at object.c:2152
#42 0x00007fa855492ac0 in vm_call_cfunc_with_frame (empty_kw_splat=<optimized out>, cd=0x561098022f80, calling=<optimized out>, reg_cfp=0x7fa82e7f09e0, ec=0x7fa804144cb0)
    at vm_insnhelper.c:2514
#43 vm_call_cfunc (ec=0x7fa804144cb0, reg_cfp=0x7fa82e7f09e0, calling=<optimized out>, cd=0x561098022f80) at vm_insnhelper.c:2539
#44 0x00007fa8554a82fb in vm_call_method (ec=0x7fa804144cb0, cfp=0x7fa82e7f09e0, calling=<optimized out>, cd=<optimized out>) at vm_insnhelper.c:3053
#45 0x00007fa8554a04c3 in vm_sendish (block_handler=<optimized out>, method_explorer=<optimized out>, cd=<optimized out>, reg_cfp=<optimized out>, ec=<optimized out>)
    at vm_insnhelper.c:4023
#46 vm_exec_core (ec=0x7fa804144cb0, initial=140360310252400) at insns.def:801
#47 0x00007fa8554a6674 in rb_vm_exec (ec=0x7fa804144cb0, mjit_enable_p=1) at vm.c:1920
#48 0x00007fa8554aacdb in invoke_block (captured=0x7fa82e7f0c28, opt_pc=<optimized out>, type=<optimized out>, cref=0x0, self=94629207241480, iseq=0x561094487ad8, 
    ec=0x7fa804144cb0) at vm.c:1044
#49 invoke_iseq_block_from_c (me=0x0, is_lambda=<optimized out>, cref=0x0, passed_block_handler=0, kw_splat=0, argv=0x7fa82e6efc38, argc=1, self=94629207241480, 
    captured=0x7fa82e7f0c28, ec=0x7fa804144cb0) at vm.c:1116
#50 invoke_block_from_c_bh (argc=<optimized out>, kw_splat=<optimized out>, passed_block_handler=<optimized out>, cref=<optimized out>, is_lambda=<optimized out>, 
    force_blockarg=<optimized out>, argv=<optimized out>, block_handler=<optimized out>, ec=<optimized out>) at vm.c:1134

@SamSaffron
Copy link
Collaborator

SamSaffron commented Apr 15, 2021

Oh ... is there any forking involved here? Did the parent process create an instance of MiniRacer::Context ?

@thomasbalsloev
Copy link
Author

Yes, we are doing forking because we use Puma as server.
So our app will be loaded and then forked for the rspec test workers.
We don't explicitly instantiate MiniRacer::Context in our code.

@SamSaffron
Copy link
Collaborator

We are working on a fork safe method for mini racer, it just got upstreamed into libv8 a few months ago.

In the mean time you must ensure that no contexts are created in your primary process.

@SamSaffron
Copy link
Collaborator

note, we are waiting on this commit to land in libv8-node

v8/v8@a18a674#diff-a4b07237cb85c6098031ab6d84b4cdbd3fd31b919d4f89ab6e22efe7070a539f

My guess is this will happen in the next release, the commit is from november. (fyi @lloeki )

@lloeki
Copy link
Collaborator

lloeki commented Apr 16, 2021

Thanks @SamSaffron.

Indeed the 16.x branch has node 9.0

https://github.com/nodejs/node/blob/v16.x/deps/v8/include/v8-version.h

@thomasbalsloev
Copy link
Author

@SamSaffron. Thank you, Sam!

@lloeki
Copy link
Collaborator

lloeki commented Apr 21, 2021

Node 16 is out. I'm attempting a build of libv8-node 16.0.0.

@lloeki
Copy link
Collaborator

lloeki commented Apr 21, 2021

libv8-node built, artifact gems are downloadable on CI. The CI test phase against mini_racer fails though, TBH I did not investigate, but from a cursory look it involves v8 headers, so I think maybe code needs an update because of some breaking changes in the V8 API.

@jarthod
Copy link

jarthod commented Dec 22, 2021

Although I can now upgrade to mini_racer 0.5.0 (#218 (comment)) and libv8-node 16.10, I'm still having this issue too (since 0.4 so I am currently staying on 0.3 branch) and after reading this thread I'm not sure if there's anything I can do about it or help? or if there was a solution found somewhere? It occurs during my integrations tests, which are running using Capybara (server is Puma).

@tisba
Copy link
Collaborator

tisba commented Dec 22, 2021

Although I can now upgrade to mini_racer 0.5.0 (#218 (comment)) and libv8-node 16.10, I'm still having this issue too (since 0.4 so I am currently staying on 0.3 branch) and after reading this thread I'm not sure if there's anything I can do about it or help? or if there was a solution found somewhere? It occurs during my integrations tests, which are running using Capybara (server is Puma).

You should check how you're running puma. If it's running in a single process, you should be fine actually. We use mini_racer heavily as part of our application logic. As long as you are not forking after using MiniRacer you should be fine. Unfortunately our app is forking for some completely unrelated reason and therefore we currently cannot upgrade at all and are stuck with 0.2.15 actually :(

@jarthod
Copy link

jarthod commented Dec 23, 2021

Mm ok, I don't intentionally thread at least but there's probably some libraries doing so, puma is started by Capybara I just set:
Capybara.server = :puma, { Silent: true } I sometime use paraspec to run tests in multiple processes (not threads) but even if I start just one integration test in a single process using rspec directly I get the same error so it's not caused by paraspec (first thing I tried).

I'm surprised the problem isn't more common so I suppose it's working correctly for most. What I just noticed now is that I have one machine where it's working fine, and another where it's not (exactly the same codebase, ruby version, etc..). The only difference I can think of so far is that the one working is running Ubuntu 21.10 and the one failing (free(): invalid pointer) is running Ubuntu 21.04 (edit: 20.04.3). Not sure if that's related yet, I'll try to do more testing. Is there any system libraries versions I should look for?

Jan 4 edit:
To continue investigating this, I tried on a Github Action VM (using Ubuntu 20.04.3 too) and I don't reproduce the problem here. So at the moment I have one machine running 20.04.3 which reproduces the free(): invalid pointer all the time, and the github VM running the same OS and same project which does not...

I tried updating all system libraries, re-installing all gems (and thus compiling native extensions) on my machine (even tried on a different version of ruby: 3.0.3 instead of 2.6.4), but the result is still the same 🕵️

I checked the differences in the compiled modules between my two machines, noticed just one small difference here (elk is the 20.04 machine where it's not working, desktop is the 21.10 machine where it's working fine). Both ruby are compiled --with-jemalloc:

elk > ldd mini_racer_extension.so | sort
	/lib64/ld-linux-x86-64.so.2 (0x00007fe0629d5000)
	libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fe05df53000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe05e2b4000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe05df8e000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fe05e299000)
	libjemalloc.so.2 => /usr/lib/x86_64-linux-gnu/libjemalloc.so.2 (0x00007fe05df94000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fe05e4a6000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe05e5f5000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fe05e270000)
	libruby.so.3.0 => /home/deploy/.rbenv/versions/3.0.3/lib/libruby.so.3.0 (0x00007fe05e618000)
	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fe05ea0b000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fe05e27b000)
	linux-vdso.so.1 (0x00007ffd6ffee000)
desktop > ldd mini_racer_extension.so | sort
	/lib64/ld-linux-x86-64.so.2 (0x00007fe1a671a000)
	libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fe1a1cb7000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe1a2004000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe1a1cb2000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fe1a1fea000)
	libjemalloc.so.2 => /lib/x86_64-linux-gnu/libjemalloc.so.2 (0x00007fe1a1cf1000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fe1a222c000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe1a1cad000)
	libruby.so.3.0 => /home/bigbourin/.rbenv/versions/3.0.3/lib/libruby.so.3.0 (0x00007fe1a2310000)
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fe1a270b000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fe1a1fce000)
	linux-vdso.so.1 (0x00007fff9cbf0000)

The only notable difference I see here is "librt" which is absent in the second build but I doubt this has any link.

Finally I tried re-installing ruby 3.0.3 without jemalloc to see if it changes anything, and yay 🙌 no exception! So naturally I tried re-installing with jemalloc to confirm if the issue was with jemalloc and OBVIOUSLY: still no exception...

elk > be rspec

Randomized with seed 10969
............

Finished in 2.04 seconds (files took 1.9 seconds to load)
12 examples, 0 failures

Randomized with seed 10969

1h later I try again and I get the exception again:

elk > be rspec

Randomized with seed 58207
free(): invalid pointer
Aborted (core dumped)

(which now occurs every time, it's not random).
This is getting more and more obscure, I'm gonna re-install ruby without jemalloc another time and wait a couple hours to see if it does the same.

After doing this, I noticed no problem with the ruby without jemalloc, I re-installed with jemalloc again, and the exception showed at first try. So I am not sure if that is connected but it certainly looks like it. (on my 21.10 machine I can't reproduce though, even with jemalloc). @thomasbalsloev @lephyrius where you using jemalloc in your Ruby install?

@SamSaffron
Copy link
Collaborator

This feels related to fork safety.

Can you try again with 0.6.1 and specify MiniRacer::Platform.set_flags! :single_threaded prior to forking?

@thomasbalsloev
Copy link
Author

@jarthod Yes, I believe so (PS: left my former position, so I can't check).

@jarthod
Copy link

jarthod commented Jan 10, 2022

@SamSaffron thanks for the response. So I just tried with 0.6.1 first to confirm I was still reproducing the issue (I am). And then I tried adding MiniRacer::Platform.set_flags! :single_threaded to my rails_helper (I am not forking but capybara probably does so I just tried to put it as early as possible). Something interesting happened, it's still crashing with the same error but EARLIER than before, it looks like it's crashing as soon as MiniRacer::Platform.set_flags! :single_threaded is executed.

Also on my dev machine (running Ubuntu 21.10) on which I wasn't getting the crash before, it now also fails reliably on this line. I confirmed with some puts debugging:

# rails_helper.rb
# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require 'spec_helper'
require_relative "../config/environment"
require 'rspec/rails'
# Add additional requires below this line. Rails is not loaded until this point!

puts '1 before'
MiniRacer::Platform.set_flags! :single_threaded
puts '2 after'

require 'capybara/rspec'
require 'capybara/cuprite'
require 'fabrication'

Capybara.javascript_driver = :cuprite
Capybara.server = :puma, { Silent: true }
Capybara.register_driver(:cuprite) do |app|
  Capybara::Cuprite::Driver.new(app, js_errors: true, timeout: 10, process_timeout: 10)
end

# [...]

Output:

> bundle exec rspec
1 before
free(): invalid pointer
Aborted (core dumped)

For the record I also tried with just MiniRacer::Platform.set_flags! (without the parameter) to see if just loading/calling this code was triggering the error or if it was depending on the flag itself, and without the parameter it doesn't crash on this line, so the parameter is important to make ruby crash here.

Also I then tried to see if this was enough to reproduce the crash without ANYTHING else, and yes it is:

> ruby -r mini_racer -e "MiniRacer::Platform.set_flags! :single_threaded"
free(): invalid pointer
Aborted (core dumped)

So just requiring mini_racer (0.6.1) and then running this line causes my ruby (3.0.3 with jemalloc) to crash.

> ruby -v
ruby 3.0.3p157 (2021-11-24 revision 3fb7d2cadc) [x86_64-linux]
> ruby -r rbconfig -e "puts RbConfig::CONFIG['MAINLIBS']"
-lz -lpthread -lrt -lrt -ljemalloc -ldl -lcrypt -lm

I also compared again this line on a ruby with and without jemalloc (two slightly different versions so it's easier to switch but the problem is the same on any version I tested) and it still shows that the problem only occurs with jemalloc:

> rbenv shell 2.6.6 
> ruby -r rbconfig -e "puts RbConfig::CONFIG['MAINLIBS']"
-lz -lpthread -lrt -lrt -ldl -lcrypt -lm 
> ruby -r mini_racer -e "puts MiniRacer::VERSION; MiniRacer::Platform.set_flags! :single_threaded"
0.6.1
> rbenv shell 2.6.4
> ruby -r rbconfig -e "puts RbConfig::CONFIG['MAINLIBS']"
-lz -lpthread -lrt -lrt -ljemalloc -ldl -lcrypt -lm 
> ruby -r mini_racer -e "puts MiniRacer::VERSION; MiniRacer::Platform.set_flags! :single_threaded"
0.6.1
free(): invalid pointer
Aborted (core dumped)

@tisba
Copy link
Collaborator

tisba commented Feb 10, 2022

Quick check with Ruby 3.1.0 on aarch64-linux and x86_64-linux using mini_racer=0.6.2 and libv8-node=16.10.0.0. Will do more testing across Ruby versions later.

Using LD_PRELOAD (confirming that jemalloc is working via MALLOC_CONF=stats_print:true as well), it works for me:

$ LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libjemalloc.so.2 ruby -r mini_racer -e "puts MiniRacer::VERSION; MiniRacer::Platform.set_flags! :single_threaded"
0.6.2

Not sure if there is a significant difference between 0.6.1 and 0.6.2 but could you try just in case, @jarthod?

@jarthod
Copy link

jarthod commented Feb 10, 2022

Mm interesting, I don't often use LD_PRELOAD for jemalloc I tend to set it at compile time to make sure every processes uses it with: RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.1.0.

I just tried on my local 3.0.3 (which is compiled with jemalloc) with and without LD_PRELOAD (expecting nothing much but the same result as in both case it should use jemalloc), yet I don't:

> LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.2 ruby -r mini_racer -e "puts MiniRacer::VERSION; MiniRacer::Platform.set_flags! :single_threaded"
0.6.2
> ruby -r mini_racer -e "puts MiniRacer::VERSION; MiniRacer::Platform.set_flags! :single_threaded"
0.6.2
free(): invalid pointer
Aborted (core dumped)

I then tried on a 3.1.0 freshly installed WITHOUT jemalloc compile option, and in this case it seems to be working ok with LD_PRELOAD:

> LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so ruby -r mini_racer -e "puts MiniRacer::VERSION; MiniRacer::Platform.set_flags! :single_threaded"
0.6.2
> ruby -r mini_racer -e "puts MiniRacer::VERSION; puts RbConfig::CONFIG['MAINLIBS']; MiniRacer::Platform.set_flags! :single_threaded"
0.6.2
-lz -lpthread -lrt -lrt -ldl -lcrypt -lm 

So it looks like using jemalloc dynamically is not causing trouble here, but compiling it with ruby is (--with-jemalloc). To try to confirm I re-installed 3.1.0 --with-jemalloc this time (expecting the same result as with 3.0.3) but it "worked" this time (I also recompiled mini_racer and libv8-node):

> LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so ruby -r mini_racer -e "puts MiniRacer::VERSION; MiniRacer::Platform.set_flags! :single_threaded"
0.6.2
> ruby -r mini_racer -e "puts MiniRacer::VERSION; puts RbConfig::CONFIG['MAINLIBS']; MiniRacer::Platform.set_flags! :single_threaded"
0.6.2
-lz -lpthread -lrt -lrt -ljemalloc -ldl -lcrypt -lm 

So at this point, it looks like ruby 3.1.0 might have changed something compared with all the previous version I got this error with (2.6.4, 2.6.6, 3.0.3).


So I reseted everything (uninstalled ruby 3.0.3, 3.1.0), then re-installed each of these version --with-jemalloc as I used to:

> rbenv uninstall 3.1.0
> rbenv uninstall 3.0.3
> RUBY_CONFIGURE_OPTS=--with-jemalloc CONFIGURE_OPTS="--disable-install-rdoc" rbenv install 3.0.3
> RUBY_CONFIGURE_OPTS=--with-jemalloc CONFIGURE_OPTS="--disable-install-rdoc" rbenv install 3.1.0

Then I tried each:

> rbenv shell 3.0.3
> gem install mini_racer
Fetching libv8-node-16.10.0.0-x86_64-linux.gem
Fetching mini_racer-0.6.2.gem
Successfully installed libv8-node-16.10.0.0-x86_64-linux
Building native extensions. This could take a while...
Successfully installed mini_racer-0.6.2
2 gems installed
> ruby -r mini_racer -e "puts MiniRacer::VERSION; puts RbConfig::CONFIG['MAINLIBS']; MiniRacer::Platform.set_flags! :single_threaded"
0.6.2
-lz -lpthread -lrt -lrt -ljemalloc -ldl -lcrypt -lm 
free(): invalid pointer
Aborted (core dumped)
> rbenv shell 3.1.0
> gem install mini_racer
Fetching mini_racer-0.6.2.gem
Fetching libv8-node-16.10.0.0-x86_64-linux.gem
Successfully installed libv8-node-16.10.0.0-x86_64-linux
Building native extensions. This could take a while...
Successfully installed mini_racer-0.6.2
2 gems installed
> ruby -r mini_racer -e "puts MiniRacer::VERSION; puts RbConfig::CONFIG['MAINLIBS']; MiniRacer::Platform.set_flags! :single_threaded"
0.6.2
-lz -lpthread -lrt -lrt -ljemalloc -ldl -lcrypt -lm

So at least I can reliably reproduce this behavior, I couldn't find anything in ruby changelog that would justify this, I'm not sure if it's just luck at this point. I'll try to upgrade one of my project to ruby 3.1 and mini_racer 0.6.2 to see if my CI is happy with it after running a dozen tests on it.

@tisba
Copy link
Collaborator

tisba commented Feb 14, 2022

That's very interesting, thank you for the analysis @jarthod! 🙇

I think the question is, if we want to tread jemalloc (either at compile time or via LD_PRELOAD) as a "first class" supported feature for MiniRacer.

I see two options here (/cc @SamSaffron):

  1. it's just "best effort"; we add a "Known Issues" section to the README, stating Ruby >= 3.1.0 is probably fine
  2. we try to identify and fix the issue

(we should probably do 1. in any case).

@jarthod
Copy link

jarthod commented Feb 15, 2022

Thanks @tisba,

I have trouble understanding how jemalloc could cause this unless the allocator is improperly used by libv8 or mini_racer (relying implicitly or explicitly on some glibc specific quirks like over allocation). But in any case if you don't have any obvious idea of such weird usage I suppose we should start with option 1 of documenting this, It doesn't look like too many people are impacted by this considering the traffic on this thread (which is surprising to me).

And maybe someone later will find more details or the actual reason. I don't have the courage to start diving more into GDB debugging and C internals at this point ^^. For my personal use-case, I'll stick with mini_racer 0.3 for projects which I can't upgrade to ruby 3.1 yet, and that's probably an acceptable workaround for most.

@tisba
Copy link
Collaborator

tisba commented Feb 17, 2022

I think the initial issue has been resolved, mini_racer can now be used in a fork-safe way, see https://github.com/rubyjs/mini_racer#fork-safety.

I'll open a separate issue around @jarthod's jemalloc findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants