I'd really appreciate if someone could take a look into this issue I ran into after installing the Webpacker gem
I'm using Rails 5.2.4.3
on ruby "2.5.1"
and I'm trying to switch from Sprockets to Webpacker gem to manage my JS (Vue app), css and other assets...
I've installed the the gem without any problem. The gem resolved into webpacker (5.2.1)
.
I also ran bundle exec rails webpacker:install
following the webpacker instructions...
Nevertheless, now when I try to run my server with any of these three foreman
, rails s
or overkill
I get a weird error in the console and it crashes with this fatalistic message :) :
You may have encountered a bug in the Ruby interpreter or extension libraries
Here is the log I get after starting the server:
[1;38;5;2mweb [0m | [76137] * Version 3.12.6 (ruby 2.5.1-p57), codename: Llamas in Pajamas
[1;38;5;2mweb [0m | [76137] * Min threads: 5, max threads: 5
[1;38;5;2mweb [0m | [76137] * Environment: development
[1;38;5;2mweb [0m | [76137] * Process workers: 2
[1;38;5;2mweb [0m | [76137] * Preloading application
...
[1;38;5;4mworker[0m | [31m
[1;38;5;4mworker[0m |
[1;38;5;4mworker[0m | [37m m,
[1;38;5;4mworker[0m | [37m `$b
[1;38;5;4mworker[0m | [37m .ss, $$: .,d$
[1;38;5;4mworker[0m | [37m `$$P,d$P' .,md$P"'
[1;38;5;4mworker[0m | [37m ,$$$$$b[30m/[37mmd$$$P^'
[1;38;5;4mworker[0m | [37m .d$$$$$$[30m/[37m$$$P'
[1;38;5;4mworker[0m | [37m $$^' `"[30m/[37m$$$' [31m____ _ _ _ _
[1;38;5;4mworker[0m | [37m $: ,$$: [31m / ___|(_) __| | ___| | _(_) __ _
[1;38;5;4mworker[0m | [37m `b :$$ [31m \___ \| |/ _` |/ _ \ |/ / |/ _` |
[1;38;5;4mworker[0m | [37m $$: [31m ___) | | (_| | __/ <| | (_| |
[1;38;5;4mworker[0m | [37m $$ [31m|____/|_|\__,_|\___|_|\_\_|\__, |
[1;38;5;4mworker[0m | [37m .d$$ [31m |_|
[1;38;5;4mworker[0m | [0m
[1;38;5;4mworker[0m | [0m
[1;38;5;4mworker[0m | 2021-01-14T20:14:26.264Z pid=76136 tid=oxd8w9s8k INFO: Booted Rails 5.2.4.3 application in development environment
...
[1;38;5;2mweb [0m | [76137] * Listening on tcp://0.0.0.0:3000
[1;38;5;2mweb [0m | [76137] ! WARNING: Detected 5 Thread(s) started in app boot:
[1;38;5;2mweb [0m | [76137] ! #<Thread:0x00007fe7926794a0@/Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:299 sleep> - /Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:301:in `sleep'
[1;38;5;2mweb [0m | [76137] ! #<Thread:0x00007fe7954e7e68@/Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/listen-3.0.8/lib/listen/internals/thread_pool.rb:6 sleep> - /Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/rb-fsevent-0.10.4/lib/rb-fsevent/fsevent.rb:44:in `select'
[1;38;5;2mweb [0m | [76137] ! #<Thread:0x00007fe7954e5ac8@/Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/listen-3.0.8/lib/listen/internals/thread_pool.rb:6 sleep> - /Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/listen-3.0.8/lib/listen/event/config.rb:19:in `sleep'
[1;38;5;2mweb [0m | [76137] ! #<Thread:0x00007fe799242fb0@/Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/listen-3.0.8/lib/listen/internals/thread_pool.rb:6 sleep> - /Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/listen-3.0.8/lib/listen/record/entry.rb:40:in `realpath'
[1;38;5;2mweb [0m | [76137] ! #<Thread:0x00007fe799241048@/Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/listen-3.0.8/lib/listen/internals/thread_pool.rb:6 sleep> - /Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/listen-3.0.8/lib/listen/event/config.rb:19:in `sleep'
[1;38;5;2mweb [0m | [76137] Use Ctrl-C to stop
[1;38;5;2mweb [0m | [76137] - Worker 0 (pid: 76177) booted, phase: 0
[1;38;5;2mweb [0m | [76137] - Worker 1 (pid: 76178) booted, phase: 0
[1;38;5;2mweb [0m | [14/1 - 21:14:31, INFO] msg: [e28d911b-e2d0-4d2b-b3c9-09f5f4099b2b] [method: GET, path: /, params: {}, current_user_id: guest] Started GET "/" for 127.0.0.1 at 2021-01-14 21:14:31 +0100 ... from
....
[1;38;5;2mweb [0m | /Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/listen-3.0.8/lib/listen/record/entry.rb:46: [BUG] Segmentation fault at 0x00000001068d3a7c
[1;38;5;2mweb [0m | ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]
[1;38;5;2mweb [0m |
[1;38;5;2mweb [0m | [;31;1;7m-- Crash Report log information --------------------------------------------[m
[1;38;5;2mweb [0m | [;32;7m See Crash Report log file under the one of following: [m
[1;38;5;2mweb [0m | [;32;7m * ~/Library/Logs/DiagnosticReports [m
[1;38;5;2mweb [0m | [;32;7m * /Library/Logs/DiagnosticReports [m
[1;38;5;2mweb [0m | [;32;7m for more details. [m
[1;38;5;2mweb [0m | [;31;1;7mDon't forget to include the above Crash Report log file in bug reports. [m
[1;38;5;2mweb [0m |
[1;38;5;2mweb [0m | -- Control frame information -----------------------------------------------
[1;38;5;2mweb [0m | c:0013 p:---- s:0062 e:000061 CFUNC :open
[1;38;5;2mweb [0m | c:0012 p:---- s:0059 e:000058 CFUNC :entries
[1;38;5;2mweb [0m | c:0011 p:0026 s:0054 E:001da8 METHOD /Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/listen-3.0.8/lib/listen/record/entry.rb:51
[1;38;5;2mweb [0m | c:0010 p:0014 s:0047 E:001e08 METHOD /Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/listen-3.0.8/lib/listen/record/entry.rb:16
[1;38;5;2mweb [0m | c:0009 p:0012 s:0042 E:001e80 METHOD /Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/listen-3.0.8/lib/listen/record.rb:104
[1;38;5;2mweb [0m | c:0008 p:0070 s:0034 E:001a70 METHOD /Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/listen-3.0.8/lib/listen/record.rb:68
[1;38;5;2mweb [0m | c:0007 p:0009 s:0028 E:001a90 BLOCK /Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/listen-3.0.8/lib/listen/adapter/base.rb:76
[1;38;5;2mweb [0m | c:0006 p:0017 s:0025 E:000c18 METHOD /Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/listen-3.0.8/lib/listen/adapter/base.rb:103
[1;38;5;2mweb [0m | c:0005 p:0008 s:0018 E:000b78 BLOCK /Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/listen-3.0.8/lib/listen/adapter/base.rb:76 [FINISH]
[1;38;5;2mweb [0m | c:0004 p:---- s:0014 e:000013 CFUNC :each
[1;38;5;2mweb [0m | c:0003 p:0011 s:0010 E:000d08 BLOCK /Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/listen-3.0.8/lib/listen/adapter/base.rb:75 [FINISH]
[1;38;5;2mweb [0m | c:0002 p:0007 s:0006 E:001570 BLOCK /Users/luka/.rvm/gems/ruby-2.5.1@trasteros/gems/listen-3.0.8/lib/listen/internals/thread_pool.rb:6 [FINISH]
[1;38;5;2mweb [0m | c:0001 p:---- s:0003 e:000002 (none) [FINISH]
After checking the ~/Library/Logs/DiagnosticReports
content I didn't notice anything that might be related to
Process: ruby [78661]
Path: /Users/USER/*/ruby
Identifier: ruby
Version: 0
Code Type: X86-64 (Native)
Parent Process: ruby [78590]
Responsible: ruby [78661]
User ID: 501
Date/Time: 2021-01-14 21:40:37.847 +0100
OS Version: Mac OS X 10.14.6 (18G6032)
Report Version: 12
Bridge OS Version: 4.6 (17P6610)
Anonymous UUID: 769A0490-C137-92F1-77B0-DC2690A75891
Sleep/Wake UUID: 60D53E11-CD89-47AF-A5FE-E02E74B392D5
Time Awake Since Boot: 3100000 seconds
Time Since Wake: 4500 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGABRT)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000001111c8a52
Exception Note: EXC_CORPSE_NOTIFY
VM Regions Near 0x1111c8a52:
__LINKEDIT 00000001111c5000-00000001111c8000 [ 12K] r--/rwx SM=COW /Users/USER/*/etc.bundle
-->
__TEXT 0000000111208000-000000011120e000 [ 24K] r-x/rwx SM=COW /Users/USER/*/fiddle.bundle
Application Specific Information:
crashed on child side of fork pre-exec
Thread 0 Crashed*️⃣ Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x000000010d2a02c2 __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff69421bf1 pthread_kill + 284
2 libsystem_c.dylib 0x00007fff692d06a6 abort + 127
3 libruby.2.5.dylib 0x000000010bee50f9 die + 9
4 libruby.2.5.dylib 0x000000010bee5334 rb_bug_context + 564
5 libruby.2.5.dylib 0x000000010bfdb8d1 sigsegv + 81
6 libsystem_platform.dylib 0x00007fff69416b5d _sigtramp + 29
7 libnetwork.dylib 0x00007fff67686b5c __nw_path_get_nexus_agent_block_invoke + 44
8 libsystem_trace.dylib 0x000000010d2dffbb os_log_type_enabled + 627
9 libsystem_info.dylib 0x00007fff69341692 _gai_nat64_v4_address_requires_synthesis + 98
10 libsystem_info.dylib 0x00007fff69340aa0 _gai_nat64_second_pass + 512
11 libsystem_info.dylib 0x00007fff6931f847 si_addrinfo + 1959
12 libsystem_info.dylib 0x00007fff6931ef77 _getaddrinfo_internal + 231
13 libsystem_info.dylib 0x00007fff6931ee7d getaddrinfo + 61
14 socket.bundle 0x000000011122c275 nogvl_getaddrinfo + 181
...
VM Region Summary:
ReadOnly portion of Libraries: Total=365.0M resident=0K(0%) swapped_out_or_unallocated=365.0M(100%)
Writable regions: Total=271.0M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=271.0M(100%)
VIRTUAL REGION
REGION TYPE SIZE COUNT (non-coalesced)
=========== ======= =======
Activity Tracing 256K 1
Kernel Alloc Once 8K 1
MALLOC 236.1M 42
MALLOC guard page 16K 3
STACK GUARD 56.0M 7
Stack 34.2M 28
Stack Guard 84K 21
__DATA 15.4M 273
__FONT_DATA 4K 1
__LINKEDIT 244.3M 135
__TEXT 120.7M 243
__UNICODE 564K 1
mapped file 25.9M 1
shared memory 12K 3
=========== ======= =======
TOTAL 733.6M 760
And finally my Gemfile
since I guess it might be a conflick between Webpacker and another Gem
source 'https://rubygems.org'
ruby "2.5.1" # heroku March '18
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.2.4.3'
# Use Puma as the app server
gem 'puma', '~> 3.7'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.2'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
# gem 'turbolinks', '~> 5'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.5'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 3.0'
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
gem 'stripe', '~> 5.0'
gem 'pg'
gem 'bourbon'
gem 'neat', '4.0.0' # depends on Thor too
gem 'bitters', '2.0.3' # depends on Thor under 1.0
gem 'webpacker'
gem 'haml'
gem "haml-rails"
gem 'annotate'
gem "monetize"
gem "money"
gem "money-rails"
# For image resizing in Active Storage - https://edgeguides.rubyonrails.org/active_storage_overview.html
gem 'image_processing'
gem "aws-sdk-s3", require: false
# Scraper dependencies
gem "nokogiri"
# Convert external CSS to inline
gem 'premailer-rails'
gem 'foreman'
gem "sidekiq"
gem "sitemap_generator"
gem 'devise'
gem 'devise-i18n' # tanslations for the devise's views
gem 'invisible_captcha'
gem 'pretender' # Impersonate users
gem 'omniauth-facebook'
# Authorization in Rails
gem 'pundit'
# Add user roles
gem 'rolify'
gem "geocoder"
# Passing JS variables to the views
gem "gon"
gem 'friendly_id', '~> 5.1.0' # Note: You MUST use 5.0.0 or greater for Rails 4.0+
gem "breadcrumbs_on_rails"
gem 'active_model_serializers', '~> 0.10.0'
gem "split"
gem 'dalli'
gem 'rollbar'
gem 'oj' #, '~> 2.12.14' # json serialization suggested by rollbar gem team
gem 'newrelic_rpm'
gem 'will_paginate', '~> 3.1.0'
# Creates entries for each change on a model
gem 'audited', '~> 4.9'
# gem 'monologue', path: "~/projects/monologue"
gem 'monologue', git: 'https://github.com/luigi7up/monologue.git', branch: 'master'
# Instead of nested forms
gem "cocoon"
# Elastic search support for rails
# gem 'elasticsearch-model'
# gem 'elasticsearch-rails'
gem 'elasticsearch-model'
gem 'elasticsearch-rails'
gem 'elasticsearch'
# No ide why, but if I move these to group :development, :test then push to Heroku is rejected
gem "better_errors"
gem "binding_of_caller"
gem 'pry-byebug'
# header language switch https://github.com/iain/http_accept_language/tree/master
gem 'http_accept_language'
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
gem "database_cleaner"
gem "rspec-rails"
# gem "capybara"
# gem "selenium-webdriver" # for firefox
# gem 'chromedriver-helper' # for chrome
gem 'cypress-on-rails', '~> 1.0'
# The capybara-webkit driver is for true headless testing. It uses QtWebKit to start a rendering engine process.
# It can execute JavaScript as well. It is significantly faster than drivers like Selenium since it does not
# load an entire browser.
# gem "capybara-webkit"
gem 'webmock'
gem 'seed_dump'
# Loads .env in rspec
gem 'dotenv-rails'
# gem 'fake_stripe'
end
UPDATE
I tried:
- upgrading Ruby to
2.7.2
- I've downgraded Webpacker to 3.6
but it's not working...
UPDATE 2
After Googling around I found out that this has to do with a conflict produced by 2 or more gems that require native C extensions.
In my case after commenting out the gem pry-byebug
I managed to start my server without crashing and I finally have Webpacker serving the assets.
To find out which gem is causing a problem in your case run:
bundle show --paths | ruby -e "STDIN.each_line {|dep| puts dep.split('/').last if File.directory?(File.join(dep.chomp, 'ext')) }"
This will give you a list of gems that require native C extensions.
Now, comment and bundle one by one until you hit the culprit
UPDATE 3 - still not solved
Although, I managed to start the server and get the webpack up and running it still crashes from time to time...
It might be related to running ./bin/webpack-dev-server
in the development environment, but the crashing seems so random...
So weird :/