【发布时间】:2021-01-14 20:59:50
【问题描述】:
如果有人可以查看我在安装 Webpacker gem 后遇到的这个问题,我将不胜感激
我在 ruby "2.5.1" 上使用 Rails 5.2.4.3 并尝试从 Sprockets 切换到 Webpacker gem 来管理我的 JS(Vue 应用程序)、css 和其他资产...
我已经安装了 gem 没有任何问题。 gem 解析为webpacker (5.2.1)。
我还按照 webpacker 的说明运行了bundle exec rails webpacker:install...
尽管如此,现在当我尝试使用这三个 foreman、rails s 或 overkill 中的任何一个来运行我的服务器时,我在控制台中收到了一个奇怪的错误,并且它会因这条宿命消息而崩溃:) :
您可能在 Ruby 解释器或扩展中遇到了错误 图书馆
这是我启动服务器后得到的日志:
[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]
在检查了~/Library/Logs/DiagnosticReports 的内容后,我没有发现任何可能与之相关的内容
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
最后是我的Gemfile,因为我猜这可能是 Webpacker 和另一个 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
更新
我试过了:
- 将 Ruby 升级到
2.7.2 - 我已将 Webpacker 降级到 3.6
但它不起作用......
更新 2
在谷歌搜索之后,我发现这与 2 个或更多需要原生 C 扩展的 gem 产生的冲突有关。
就我而言,在注释掉 gem pry-byebug 之后,我设法启动了我的服务器而没有崩溃,我终于让 Webpacker 为资产提供服务。
要找出导致您的案例出现问题的 gem:
bundle show --paths | ruby -e "STDIN.each_line {|dep| puts dep.split('/').last if File.directory?(File.join(dep.chomp, 'ext')) }"
这将为您提供需要原生 C 扩展的 gem 列表。
现在,评论和捆绑,直到你找到罪魁祸首
更新 3 - 仍未解决
尽管我设法启动了服务器并启动并运行了 webpack,但它仍然不时崩溃...
这可能与在开发环境中运行./bin/webpack-dev-server有关,但崩溃似乎很随机......
太奇怪了:/
【问题讨论】:
标签: ruby-on-rails rubygems ruby-on-rails-5 webpack-dev-server webpacker