Ruby on rails 5.2在安装Webpacker后崩溃



如果有人能帮我看看我在安装Webpacker gem后遇到的这个问题,我将非常感激

我在ruby "2.5.1"上使用Rails 5.2.4.3,我正试图从链轮切换到Webpacker gem来管理我的JS (Vue应用程序),css和其他资产…

我已经安装了gem没有任何问题。宝石分解成webpacker (5.2.1)

我也运行bundle exec rails webpacker:install按照webpacker的说明…

然而,现在当我尝试使用这三个foreman, rails soverkill中的任何一个运行我的服务器时,我在控制台中得到一个奇怪的错误,并且它崩溃了这个宿命的消息:):

您可能遇到了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

在google上搜索后,我发现这与两个或更多需要本地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列表。

现在,一个接一个地注释和捆绑,直到找到问题所在

UPDATE 3 -仍未解决

虽然,我设法启动了服务器,使webpack启动并运行,但它仍然时不时崩溃…

这可能与在开发环境中运行./bin/webpack-dev-server有关,但是崩溃似乎是随机的…

So weird:/

很遗憾,我不会写评论,我会用回答形式来帮助你。

代码中指示错误的行是

[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

它确实表明gem与您的Ruby版本不兼容,或者用于安装Ruby的c编译器有问题。

请做广泛的研究寻找"Ruby [BUG]分割错误"谢谢!

最新更新