【问题标题】:Ruby on rails 5.2 crashes after installing Webpacker安装 Webpacker 后,Ruby on rails 5.2 崩溃
【发布时间】: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...

尽管如此,现在当我尝试使用这三个 foremanrails 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

在谷歌搜索之后,我发现这与 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


    【解决方案1】:

    很遗憾我不会写cmets,我会用答案表来帮助你。

    代码中指示错误的行是 a

    [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] 分段错误” 谢谢!

    【讨论】:

    • 嗨@LE-HU,确定这是我搜索的第一件事,但我找不到与Webpacker相关的任何东西......问题是没有任何gem可能导致的痕迹问题所以我猜是 Webpack ......我会尝试将我的 webpack gem 锁定到以前的版本广告/或升级我的 ruby​​ 安装,看看它是否有帮助。
    猜你喜欢
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多