burke / zeus

Boot any rails app in under a second.
MIT License
3.33k stars 231 forks source link

0.15.14 stopped working: read unix ->: EOF #641

Open kurko opened 7 years ago

kurko commented 7 years ago

0.15.13 is fine. Updated to 0.15.14 and it gives me this:

→ zeus rspec spec/
read unix ->: EOF

On MacOS Sierra. Got back to 0.15.13 and it's working.

joejuzl commented 7 years ago

I have the same issue when I have byebug version 9.x.x on my machine. Only having 8.x.x seems to fix it...

sgerrand commented 6 years ago

Facing the same issue. Uninstalling v0.15.14 and using v0.15.13 also works for me.

Seems like this project could do with adding further unit, perhaps even some integration, tests to catch this kind of regression.

sideshowcoder commented 6 years ago

What probably is the cause here is that the new version of zeus does require some gems which are incompatible with the gems currently installed and since it likely is installed outside bundler the require fails. Take a look at what --log=~/zeus.log includes and try unsinstalling previous versions and reinstalling the latest version. bundleing with the recent gem versions.

64kramsystem commented 6 years ago

Fails for me as well. The behavior is erratic. I've tried uninstall/reinstall, upgrade/downgrade byebug.

The first successful attempt was when I installed v0.15.3. After that, I've tried reinstalling (after several previous attempts) v0.15.4, and now it's working.

kigster commented 6 years ago

We had issues with the following dependencies:

dmcinnes commented 6 years ago

Also posted to this closed issue.

I'm now getting failures on 0.15.13 as well 😞 and I'm not sure what changed. slavenode.go:215: [bundler] read unix ->: EOF on 0.15.13 and slavenode.go:226: [bundler] read unix ->: EOF on v0.15.14.

We're now on Ruby 2.4.2 for over a month (still on rbenv) and Bundler version 1.15.4.

Possibly related change: I'm on OS X Sierra and yesterday I had updated Xcode and command line tools to Version 9.0.1 and 9.0 respectively...

dmcinnes commented 6 years ago

Here's the log output on 0.15.14 -- seems to crash when it tries to start Bundler:

2017/10/26 13:59:46.709504 [/Users/phil/Source/go/src/github.com/burke/zeus/go/processtree/slavenode.go:149] bundler/(no PID) entering state SUnbooted
2017/10/26 13:59:46.709504 [/Users/phil/Source/go/src/github.com/burke/zeus/go/processtree/slavenode.go:149] spec_helper/(no PID) entering state SUnbooted
2017/10/26 13:59:46.709509 [/Users/phil/Source/go/src/github.com/burke/zeus/go/processtree/slavenode.go:149] boot/(no PID) entering state SUnbooted
2017/10/26 13:59:46.709514 [/Users/phil/Source/go/src/github.com/burke/zeus/go/processtree/slavenode.go:149] bundler_test/(no PID) entering state SUnbooted
2017/10/26 13:59:46.709570 [/Users/phil/Source/go/src/github.com/burke/zeus/go/processtree/slavenode.go:149] main/(no PID) entering state SUnbooted
2017/10/26 13:59:46.709660 [/Users/phil/Source/go/src/github.com/burke/zeus/go/processtree/slavenode.go:391] boot/(no PID) running the root command now
2017/10/26 13:59:46.986839 [/Users/phil/Source/go/src/github.com/burke/zeus/go/processtree/slavenode.go:135] boot/(20873) initialized slave boot with pid 20873 from parent 0
2017/10/26 13:59:46.986861 [/Users/phil/Source/go/src/github.com/burke/zeus/go/processtree/slavenode.go:152] boot/(20873) entering state SBooting
2017/10/26 13:59:46.987228 [/Users/phil/Source/go/src/github.com/burke/zeus/go/processtree/slavenode.go:231] boot/(20873) received action message
2017/10/26 13:59:46.987240 [/Users/phil/Source/go/src/github.com/burke/zeus/go/processtree/slavenode.go:155] boot/(20873) entering state SReady
2017/10/26 13:59:46.987265 [/Users/phil/Source/go/src/github.com/burke/zeus/go/processtree/slavenode.go:339] boot/(20873) now sending slave boot request for bundler
2017/10/26 13:59:46.989174 [/Users/phil/Source/go/src/github.com/burke/zeus/go/processtree/slavenode.go:135] bundler/(20875) initialized slave bundler with pid 20875 from parent 20873
2017/10/26 13:59:46.989188 [/Users/phil/Source/go/src/github.com/burke/zeus/go/processtree/slavenode.go:152] bundler/(20875) entering state SBooting
2017/10/26 13:59:47.548070 [/Users/phil/Source/go/src/github.com/burke/zeus/go/processtree/slavenode.go:158] bundler/(20875) entering state SCrashed
2017/10/26 13:59:47.548103 [/Users/phil/Source/go/src/github.com/burke/zeus/go/processtree/slavenode.go:158] main/(no PID) entering state SCrashed
2017/10/26 13:59:47.548118 [/Users/phil/Source/go/src/github.com/burke/zeus/go/processtree/slavenode.go:158] bundler_test/(no PID) entering state SCrashed
2017/10/26 13:59:47.548131 [/Users/phil/Source/go/src/github.com/burke/zeus/go/processtree/slavenode.go:158] spec_helper/(no PID) entering state SCrashed

I've tracked this down to possibly the ffi gem being required during the bundler step (it was added recently). In any case if I remove Bundler.require from the step and leave require "bundler/setup" it starts working again. I don't need everything loaded to run one test after all 😄

dmcinnes commented 6 years ago

Started looking at this again. It's not ffi, it's definitely rbnacl-libsodium, though I'm not clear why. Any possibility of getting more output of why something crashed instead of just entering state SCrashed?

dmcinnes commented 6 years ago

Figured out the problem, rbnacl requires a local libsodium installed (through brew or something), but we were using rbnacl-libsodium to handle this dependancy. Bundler.require was not taking this into account and rbnacl blew up on the missing libsodium library. We solved it by explicitly requiring rbnacl/libsodium before calling Bundler.require.

It would have been helpful to get more logging output to debug this. I ended up walking through the custom_plan.rb load steps in an IRB session to see what was failing.

rsmithlal commented 6 years ago

This always happens when I forget to bundle following changes to my Gemfile. The error message could be a little more descriptive.

dingbat commented 5 years ago

In case this helps anyone, I ran into this consistently and in my case narrowed it down to having added the bootsnap gem. Not sure if this is the best solution, but to work around it I changed the following in config/boot.rb:

 require "bundler/setup" if File.exist?(ENV["BUNDLE_GEMFILE"])
-require 'bootsnap/setup'
+require 'bootsnap/setup' unless ENV["ZEUS_MASTER_FD"]
kurko commented 5 years ago

I have been using 0.15.15.pre for a good while now without problems. @sideshowcoder may I suggest you release 0.15.15 and yank 0.15.14 from rubygems.org?

I can help w that if you lack the time.