steel / sprockets-derailleur

Speed up Manifest::Compile by forking processes
MIT License
79 stars 33 forks source link

Broken pipe (Errno::EPIPE) Error with Ruby 2.3.1 & Rails 5.0.2 Assets Precompile #29

Open puneeth-k opened 7 years ago

puneeth-k commented 7 years ago

Broken pipe (Errno::EPIPE) Error with Ruby 2.3.1 & Rails 5.0.2 Assets Precompile

gems/sprockets-derailleur-1.1.0/lib/sprockets-derailleur/manifest.rb:122:in `write': Broken pipe (Errno::EPIPE)
    from /gems/sprockets-derailleur-1.1.0/lib/sprockets-derailleur/manifest.rb:122:in `dump'
    from /gems/sprockets-derailleur-1.1.0/lib/sprockets-derailleur/manifest.rb:122:in `block (3 levels) in worker'
    from /gems/sprockets-3.7.1/lib/sprockets/manifest.rb:135:in `block (2 levels) in find'
    from /gems/sprockets-3.7.1/lib/sprockets/base.rb:80:in `find_all_linked_assets'
    from /gems/sprockets-3.7.1/lib/sprockets/manifest.rb:134:in `block in find'
    from /gems/sprockets-3.7.1/lib/sprockets/manifest.rb:133:in `each'
    from /gems/sprockets-3.7.1/lib/sprockets/manifest.rb:133:in `find'
    from /gems/sprockets-derailleur-1.1.0/lib/sprockets-derailleur/manifest.rb:103:in `each'
    from /gems/sprockets-derailleur-1.1.0/lib/sprockets-derailleur/manifest.rb:103:in `block (2 levels) in worker'
    from /Users/dashbitla/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/benchmark.rb:293:in `measure'
    from /gems/sprockets-derailleur-1.1.0/lib/sprockets-derailleur/manifest.rb:100:in `block in worker'
    from /gems/sprockets-derailleur-1.1.0/lib/sprockets-derailleur/manifest.rb:92:in `fork'
    from /gems/sprockets-derailleur-1.1.0/lib/sprockets-derailleur/manifest.rb:92:in `worker'
    from /gems/sprockets-derailleur-1.1.0/lib/sprockets-derailleur/manifest.rb:32:in `block (2 levels) in compile'
    from /gems/sprockets-derailleur-1.1.0/lib/sprockets-derailleur/manifest.rb:31:in `times'
    from /gems/sprockets-derailleur-1.1.0/lib/sprockets-derailleur/manifest.rb:31:in `block in compile'
    from /Users/dashbitla/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/benchmark.rb:293:in `measure'
    from /gems/sprockets-derailleur-1.1.0/lib/sprockets-derailleur/manifest.rb:12:in `compile'
    from /gems/sprockets-rails-3.2.0/lib/sprockets/rails/task.rb:68:in `block (3 levels) in define'
    from /gems/sprockets-3.7.1/lib/rake/sprocketstask.rb:147:in `with_logger'
    from /gems/sprockets-rails-3.2.0/lib/sprockets/rails/task.rb:67:in `block (2 levels) in define'
    from /gems/rake-12.0.0/lib/rake/task.rb:250:in `block in execute'
    from /gems/rake-12.0.0/lib/rake/task.rb:250:in `each'
    from /gems/rake-12.0.0/lib/rake/task.rb:250:in `execute'
    from /gems/rake-12.0.0/lib/rake/task.rb:194:in `block in invoke_with_call_chain'
    from /Users/dashbitla/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
    from /gems/rake-12.0.0/lib/rake/task.rb:187:in `invoke_with_call_chain'
    from /gems/rake-12.0.0/lib/rake/task.rb:180:in `invoke'
    from /gems/rake-12.0.0/lib/rake/application.rb:152:in `invoke_task'
    from /gems/rake-12.0.0/lib/rake/application.rb:108:in `block (2 levels) in top_level'
    from /gems/rake-12.0.0/lib/rake/application.rb:108:in `each'
    from /gems/rake-12.0.0/lib/rake/application.rb:108:in `block in top_level'
    from /gems/rake-12.0.0/lib/rake/application.rb:117:in `run_with_threads'
    from /gems/rake-12.0.0/lib/rake/application.rb:102:in `top_level'
    from /gems/rake-12.0.0/lib/rake/application.rb:80:in `block in run'
    from /gems/rake-12.0.0/lib/rake/application.rb:178:in `standard_exception_handling'
    from /gems/rake-12.0.0/lib/rake/application.rb:77:in `run'
    from /gems/rake-12.0.0/exe/rake:27:in `<top (required)>'
    from /bin/rake:23:in `load'
    from /bin/rake:23:in `<main>'
    from /bin/ruby_executable_hooks:15:in `eval'
    from /bin/ruby_executable_hooks:15:in `<main>'
W, [2017-06-15T12:14:50.068757 #67075]  WARN -- : Completed compiling assets (3.54s)

It crashes after precompiling few assets! Even followed the instructions on the Troubleshooting sections - but still crashed!

The default cache is not safe for parallel, you can override it by adding the following to config/application.rb:

config.assets.configure do |env|
  env.cache = SprocketsDerailleur::FileStore.new("tmp/cache/assets")
end
icecold21 commented 6 years ago

I tried bringing down the core number, and the error doesn't show up anymore.