Rails 资产预编译:分段错误 Ruby 1.9.3p392

Rails assets precompile: Segmentation Fault + Ruby 1.9.3p392

我正在使用 Capistrano 将一个简单的 Rails 应用程序部署到 SUSE 服务器。当下面的钩子执行时部署时

1
2
3
4
5
6
after"deploy:update_code" do
  run <<-CMD
  cd #{current_release} &&
   RAILS_ENV=#{rails_env} bundle exec rake assets:precompile --trace
  CMD
end

我得到以下长错误跟踪

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
        servers: ["application_server.com"]
    [application_server.com] executing command
*** [err :: application_server.com] ** Invoke assets:precompile (first_time)
*** [err :: application_server.com] ** Execute assets:precompile
*** [err :: application_server.com] /usr/local/rvm/rubies/ruby-1.9.3-p392/bin/ruby /opt/apps/myapplication.com/shared/bundle/ruby/1.9.1/bin/rake assets:precompile:all RAILS_ENV=devutility RAILS_GROUPS=assets --trace
*** [err :: application_server.com]
*** [err :: application_server.com] /opt/apps/myapplication.com/shared/bundle/ruby/1.9.1/gems/therubyracer-0.11.4/lib/v8/init.so:
*** [err :: application_server.com] [BUG]
*** [err :: application_server.com] Segmentation fault
*** [err :: application_server.com] ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-linux]
*** [err :: application_server.com] -- Control frame information -----------------------------------------------
*** [err :: application_server.com] c:0054
*** [err :: application_server.com] p:-4755442
*** [err :: application_server.com] s:0156 b:0156
*** [err :: application_server.com] l:000155
*** [err :: application_server.com] d:000155
*** [err :: application_server.com] TOP
*** [err :: application_server.com]
*** [err :: application_server.com] c:0053
*** [err :: application_server.com] p:----
*** [err :: application_server.com] s:0154 b:0154
*** [err :: application_server.com] l:000153
*** [err :: application_server.com] d:000153
*** [err :: application_server.com] CFUNC
*** [err :: application_server.com] :require
*** [err :: application_server.com]
*** [err :: application_server.com] c:0052
*** [err :: application_server.com] p:0035
*** [err :: application_server.com] s:0150 b:0150
*** [err :: application_server.com] l:000149
*** [err :: application_server.com] d:000149
*** [err :: application_server.com] TOP

在我的 GIST https://gist.github.com/ankit8898/5051531 中找到完整的跟踪,并且 Gemfile 也存在于其中。

任何帮助都会非常有帮助。


我建议您从 Gemfile 中删除 therubyracer 并安装 node.js 作为您的 javascript 运行时,不要再担心了。

Therubyracer 往往很麻烦,消耗太多内存。


也许可以尝试之前版本的 therubyracer。在您的 Gemfile 中:

1
gem 'therubyracer', '0.11.3'