"exit status 1" on startup #237

Closed
rubysolo opened this Issue Jan 11, 2013 · 88 comments

Projects

None yet
@rubysolo

Hello--

I'm trying to get started with using Zeus in my workflow. My environment is OSX 10.7.5, Ruby 1.9.3-p327, Rails 3.2.11, Zeus version 0.13.2. When I execute "zeus start", I get the status screen with everything in waiting status. At the bottom of the screen, I get "exit status 1" briefly, then the commands shift down one line to cover it up, and it hangs in that state indefinitely. What can I do to troubleshoot?

iRonin commented Jan 14, 2013

Same here.

Same happens here whenever I have zeus.json file present.

Same issue, but I have no zeus.json file.

  • Ruby 1.9.3-p362 (RBenv)
  • OSX 10.8.2
  • Rails 3.1.10
  • Zeus 0.13.2

I'd be happy to help dig in, not sure where to start. Is there something else I can provide?

I've managed to fix this on machine.

I'm running homebrew but had no go installed. After brewing go works like a charm.

$ brew update
$ brew install go

$ go version
go version go1.0.3

I don't have custom plan file, here's my zeus.json:

{
  "command": "ruby -rubygems -rzeus/rails -eZeus.go",

  "plan": {
    "boot": {
      "default_bundle": {
        "development_environment": {
          "prerake": {"rake": []},
          "console": ["c"],
          "generate": ["g"]
        },
        "test_environment": {
          "test_helper": {"test": ["rspec"]}
        }
      }
    }
  }
}

It crashes for me with and without a zeus.json file, and I do have go v 1.0.3 installed.

Pretty much the same setup, except I'm running Mountain Lion.

I also did not have go, but installing go didn't help, same symptoms as before.

Same thing here. Worked for some time, now I get the very same thing.

OS X 10.8.2
ruby 1.9.3p327-perf
rails 3.2.11
zeus 0.13.2
With a zeus.json file

iRonin commented Feb 15, 2013

Whenever I get this error it's down to some gem conflicts or other Rails app errors.
Try to start rails server manually and see if it works.

Starting the rails server was ok, but the zeus.json file was making it fail. Removed and it works again.

Removing zeus.json fixed it for me, too. 0.13.3.pre2

OSX 10.8.2
ruby 1.9.3-p392
rails 3.2.12
zeus 0.13.2
Removed zeus.json and now it works. Which is awesome!

Collaborator
turadg commented Feb 25, 2013

Sounds like this is fixed by removing an old zeus.json, so I'll close this.

@turadg turadg closed this Feb 25, 2013

Removing a zeus.json doesn't fix it for me, as I don't have one.

@turadg turadg reopened this Feb 25, 2013

Thanks. Does anyone have suggestions for further troubleshooting steps?

Likewise, I don't have a zeus.json file and still get the same issue. I'm happy help to troubleshoot, any idea where to start looking?

Collaborator
turadg commented Mar 4, 2013

Is everyone still having this problem with v0.13.3.rc2 (try gem install zeus -v 0.13.3.rc2 --pre).

@turadg, gem update zeus doesn't give me any updates from 0.13.2, but gem install zeus --version=0.13.3.rc2 installs however it doesn't seem to solve the problem.

In a fresh rails app zeus appears to boot up OK. In our app this problem persists, even though rails s works just fine.

Any ideas where I can start debugging this? Zeus has worked great for me in the past so I'd love to keep using it and I am more than happy to help out.

Collaborator
turadg commented Mar 4, 2013

Thanks for the correction; I just revised my comment above.

For debugging, unfortunately Zeus doesn't yet log any output or indicate why it hangs or crashes.

Can you describe a minimal test case that I could try to replicate locally?

I'm trying to narrow down the cause of the issue by slowly removing initialization code and dependencies from our app, unfortunately it's a huge project and this is taking a while.

If I forked zeus myself in order to add some logging, do you have any pointers on a place to start for adding some debugging output?

Collaborator
turadg commented Mar 5, 2013

@jeffremer Maybe better to start from minimal and build up? Does Zeus work for you on a fresh app?

For debugging, you could start with zeus.rb and put a puts at the entry of each method to trace the execution.

Yeah, I tried that. Zeus works for me on a fresh rails app, then after copying over our Gemfile and running bundler, and it still works after slowly starting to add more and more of our app into a fresh app. Didn't really get anywhere with that.

I'll give stepping through zeus.rb a try. Thanks.

marktran commented Mar 7, 2013

Same deal here with p327-perf and no zeus.json and go1.0.3. Interestingly, it works fine for my coworker on the same project.

alce commented Mar 14, 2013

I had this problem too. Solved it by removing zeus from my Gemfile.

I had this problem as well, it seems that I had accidentally removed my custom_plan.rb file in a bad merge. Doing a zeus init again worked for me.

I removed the zeus gem from my Gemfile and it started working again. The Gemfile had zeus in it since I started using the zeus utility. Not sure what changed.

This just happened to me as well. I removed my custom_plan and the -r./custom_plan.rb reference in zeus.json because I didn't see a need for them, but it appears zeus needs the reference to the

require 'zeus/rails'

Line at the top of the custom_plan.rb. Changing -r./custom_plan.rb to -rzeus/rails allowed me to remove the custom_plan.rb file.

it stopped working for me too. this morning everything was fine, now i get the problem others describe here. Had some os update screwing with my gems, had to reinstall everything. Now rails s etc is working but not zeus :(

i just tried older versions to see if it came from an update and this what i got with 0.13.1:

gaul@gaul:~/workspaces/atalanda$ zeus start
Starting Zeus server
[ready] [crashed] [running] [connecting] [waiting]
boot
└── default_bundle
├── development_environment
│  └── prerake
└── test_environment
├── test_helper
└── cucumber_environment

Available Commands: [waiting] [crashed] [ready]
zeus dbconsole
zeus console (alias: c)
zeus generate (alias: g)
zeus runner (alias: r)
zeus server (alias: s)
zeus destroy (alias: d)
zeus rake
zeus test (alias: rspec, testrb)
zeus cucumber
Failed to initialize application from zeus.json.
The json file is valid, but the command could not be started:
ruby: no such file to load -- ubygems (LoadError)

gaul@gaul:~/workspaces/atalanda$ rubygems
rubygems: command not found

any ideas? btw. i do not have a zeus.json. and "ubygems" looks like a typo. the command rubygems does not exist on my system. do i need it?

Not sure what changed, but now using 0.13.3.rc2 I can start Zeus up just fine.

chetan commented May 19, 2013

I'm having this problem when running zeus under ruby-2.0.0-p195 but not under ruby-1.9.3-p392. Removing zeus from my Gemfile seems to have solved the issue.

jwg2s commented May 30, 2013

I had this issue because my system had json 1.8.0 installed. When I uninstalled json 1.8.0 zeus started working again. We have json locked to 1.7.7 in our Gemfile, but even that caused zeus to fail. json 1.8.0 had to be completely uninstalled.

sulphur commented Jun 3, 2013

removing json 1.8.0 fixed the issuse

I was getting this issues too. Just removed json 1.8.0, and that fixed it. This is running on zeus 0.13.3.rc2

jwg2s commented Jul 25, 2013

Can we backport this fix? I think the gap between releases justifies a hotfix of some sort for these older versions? Still dealing with this every time I get json 1.8.0 installed by accident.

emaxi commented Aug 1, 2013

I was getting this issues until I migrate from ruby-1.9.3-p392 to 1.9.3-p429. And having installed json 1.8.0 no problem at all.

jwg2s commented Aug 1, 2013

Interesting, I'm on Ruby 2.0 and still facing the issue so not sure Ruby Version is the main variable here.

I'm on ruby 2.0 as well and it's failing me on a Rails 3.2 app. A Rails 4 app with similar gems (not exactly the same) works fine, as does a fresh Rails 4 app. I'll report back if I get the rails 3.2 project working.

I added zeus to my Gemfile (development) and it runs fine through binstubs or bundle exec. I timed it vs my other project that it works fine w/o it in the Gemfile and it's 300-400ms slower. Which is better than not working at all.

If anyone else is still having problems, give this a shot.

Well I ran into this on another project (that was previously working). I tracked it down to method_source 0.8.2 (required by zeus as well as a few other big gems: pry, guard).

I diffed method_source 0.8.1 vs 0.8.2 and came up with exactly this. I tried copying in all of the code from v0.8.1 but for some reason it was STILL broken.

I tried removing all of 0.8.2 and replacing it with 0.8.1 but no luck.

Finally I just uninstalled the gem from my machine:

gem uninstall --all --force method_source
gem install method_source

And even though it installed 0.8.2, it seemed to fix it.

On my other project, I no longer need to bundle exec zeus start and can remove zeus from my Gemfile again.

If this doesn't work for you and you've tried all of the above, try nuking your project's bundle/gemset (e.g. rm -rf vendor/bundle)

I'm seeing this problem on a very large codebase - I recently moved to a new machine, and reinstalled, which appears to have caused this issue (only broken on the new machine).

I'm running ruby v1.9.3p327 (via rvm), rails v3.2.13 - I've tried everything mentioned in this thread (my json gem is 1.5.4, reinstalled all gems multiple times, including specifically removing method_source, all combinations of zeus.json and custom_plan existing and not existing, using the rc2 version of zeus, plus lots of other things).

Running rails s works fine, so it's not just a normal failure, it just hangs on boot with the brief exit code 1 error.

Also adding zeus to my Gemfile isn't an option on this project, so the only thing I didn't try was to bundle exec zeus start, but as it sort of defeats the purpose of my use for zeus anyway, it's not something I'm interested in exploring.

Given the wide variety of issues on this thread, I think the fundamental issue here is that there is no zeus verbose mode allowing us to check out what the actual failure is. Any chance we can get a -v with some logging? I don't mind troubleshooting as long as I'm not troubleshooting a black box...

👍 for the logging. I think having a verbose logging option is critical for zeus. Most people who use zeus and have problems with it are running apps big enough that zeus is required, so it is very difficult to set up a reproducible case for you. It would be much easier to get some manner of output when something goes wrong so there's some clue beyond "exit status 1".

I'm running into this same issue and trying to debug it with strace which is always a bad sign :(

I'm setting up an new virtual machine with a large app cloned from my github repository. I had this same issue as everyone else.

I followed KeithPitts advise above, removing custom_plan.rb and zeus.json, then running zeus init and everything just started working.

Experienced the same issue when upgrading to Ruby 2.0.0-p247.

$ zeus version
Zeus version 0.13.3.rc2

The following did the trick for me:

$ gem uninstall json
Select gem to uninstall:
 1. json-1.6.6
 2. json-1.8.0
 3. All versions
> 2
Successfully uninstalled json-1.8.0

$ gem install json --version '1.7.7'
Building native extensions.  This could take a while...
Successfully installed json-1.7.7
1 gem installed

Any reasons for why it's incompatible with 1.8.0?

Upgrading to zeus-0.13.4.pre2 made the error come back.

gellmr commented Oct 13, 2013

I did a bundle install (manually) and then 'zeus start' and everything is fine.

qnm commented Oct 30, 2013

In my case, removing zeus from my Gemfile and re-bundling fixed this issue.

Just fixed by bundle update json, moving json from 1.8.0 to 1.8.1, and running zeus with bundle exec zeus start

same thing, moving from 1.8.0 -> 1.8.1 + bundle exec fixes it

sziep commented Nov 18, 2013

Nothing of the above worked for me. But I had multiple versions of zeus installed and removing the latest one fixed it for me.

I downgraded from method_source 0.8.2 to 0.8.1 and that fixed my problem.

FWIW, gave this another shot with zeus 0.13.3 installed in system gems (as the README recommends) and ruby 2.0.0p353 after upgrading my app to rails 4.0.2. Now I get the "[run to see backtrace]" message right away, and the backtrace shows that it's not using bundler ("already activated v.x of rake").

If I add zeus to the Gemfile, it looks like it launches the server successfully, but I get undefined method 'match' for nil:NilClass on zeus/rails.rb:214.

I'll go ahead and close this, because that's probably a different issue.

@rubysolo rubysolo closed this Dec 17, 2013

I ran into this.

To fix it:

  1. Uninstall json.
  2. Install json 1.8.0
  3. remove method_source
  4. Install method_source 0.8.2
  5. Put Zeus in gemfile (using rbenv bundler complains if Zeus is not in gemfile)
  6. Bundle install
    7 now works.

I don't put Zeus in my gemfile. I just ran "bundle --binstubs".

alex88 commented Feb 3, 2014

I've json 1.8.1, method_source 0.8.2, tried to install gem within Gemfile and use bundle exec, no luck, still exits with error 1 using rubinius 2.2.3 😢

Had the same issue, zeus worked on some branches but not others, was using json 1.8.1, didn't have zeus in my gemfile so I didn't need bundle exec. Turned out I had two versions of zeus installed on my machine, I removed zeus-0.13.4.pre2 and reverted to zeus-0.13.3 and zeus started up with no issue.

Zelnox commented Apr 2, 2014

On ruby 1.9.3-p545, json 1.8.1 + method_source 0.8.2 + zeus 0.13.3 works for me. I had problems when method_source was still 0.8.1.

jerefrer commented Apr 8, 2014

I just had the same issue with ruby 2.0.0-p451 and a fresh Rails 4.0.4 app.

Doing what @ericboehs suggested fixed the problem:

gem uninstall --all --force method_source
gem install method_source

In my case I uninstalled 0.8.1 and reinstalled 0.8.2

Ruby 1.9.3, Rails 3.2.16.

I've done every troubleshooting step in this thread, uninstalled / reinstalled json and method_source, tried it with bundle exec, tried deleting zeus.json and custom_plan.rb, tried recreating them, everything. Nothing works. And, naturally, the authors haven't been able to bring themselves to add any kind of logging or more helpful error message during the year that this issue has been open.

Goodbye, zeus. I won't be wasting any more of my time on you.

Collaborator

@rusterholz I understand your frustration but zeus is volunteer-run. We all have jobs that we do in addition to working on this. Pull requests are welcome. Vitriol is not.

@latortuga I really appreciate your time, thought and effort that you've put into zeus. It's awesome. I do have some projects that I can't get it to work in, but for those that work, it's so much faster than nothing and even much faster than the new rails default of spring. I especially like it with guard, rspec and parallel_tests. I get results back from small test suites in under a second! And this combination took one huge suite from 15 minutes to under 3 minutes with no loss of coverage. It makes the rails console more attractive, rake routes a pleasure and dbconsole is awesome too. Thanks!

What worked for me:

1. rm zeus.json custom_plan.rb # assuming you have them in git or backed up elsewhere
2. zeus init
3. zeus start # all good

There's some combination of options defined in the zeus.json that are either incompatible or require that a custom_plan.rb exist. Haven't narrowed it down, but thought I'd put this here in the hopes that it may help someone else.

I ran into the same issue. I tried the fix provided by @localredhead but it didn't work.
This is how I fixed.

gem uninstall zeus      
Select gem to uninstall:
 1. zeus-0.13.3
 2. zeus-0.15.1
 3. All versions

I removed 0.15.1 and now it works :)

Removing zeus-0.15.1 worked for me.

I removed zeus from the gemfile and it started working but crashed on cucumber. I then added it back in the gemfile and removed the .zeus.sock and started it back up again and now its working fine minus crashing on cucumber.

jponc commented Aug 15, 2014

Downgrading to 0.13.3.rc2 worked for me

jogaco commented Oct 2, 2014

Upgraded to 0.15.2 and started having

exit status 1

I uninstalled 0.15.2 and stayed with 0.15.1, working again

dreki commented Nov 4, 2014

Whenever I get this error it's down to some gem conflicts or other Rails app errors.
Try to start rails server manually and see if it works. -- @iRonin

Doing the above showed me an error with a missing directory. I still got an error, so I ran bundle clean --force, and then bundle install, and then zeus started up correctly.

For context, yesterday I had been trying to get a VM working, and that machine used the same files, so I'm pretty sure that's what originally screwed things up. I also did a decent amount of git branch switching yesterday.

boom commented Dec 18, 2014

For anyone else potentially having this problem, I am using Zeus version 0.15.3 with ruby 2.1.2p95 and ran into this issue with receive exit status 1 immediate on zeus start.

I fixed this by doing gem uninstall method_source and gem install method_source --version '0.8.1'. Appears to be an issue with my previously install method source 0.8.2.

jponc commented Dec 18, 2014

If you still encounter this error you can just downgrade your zeus to version 0.13.3.rc2

Follow this:

  1. gem uninstall zeus
  2. gem install zeus -v '0.13.3.rc2'

Same issue here. For me worked:

  1. removing zeus from gemfile
  2. bundle install
  3. adding zeus to gemfile
  4. bundle install

done.

@marcpursals
Thanks for the advice. This worked for me.
@latortuga
Is there any downside to install zeus in the Gemfile vs globally?
Thanks

Collaborator

I always install it globally in every new ruby I install. I don't think there's really a problem either way.

Tried literally everything stated above except adding zeus to my Gemfile. Gave in, added it, works now...

averyga commented Apr 28, 2015

Bundle install helped.

shevaun commented May 4, 2015

ruby 2.1.6p336
zeus v0.15.4

@theodorton's advice fixed it for me:

$ gem uninstall json

Select gem to uninstall:
 1. json-1.8.1
 2. json-1.8.2
 3. All versions
> 3
Successfully uninstalled json-1.8.1
Successfully uninstalled json-1.8.2

$  gem install json -v 1.7.7
Fetching: json-1.7.7.gem (100%)
Building native extensions.  This could take a while...
Successfully installed json-1.7.7
1 gem installed

now that I think about it, is it because running zeus outside of bundle was using a different version of the json gem than my bundle was, and the fix is just making them use the same version?

bundle update guard-zeus fixed it for me

There's a lot of "try this" in here, but no actual debugging steps. Here's how you can find the actual issue:

zeus --log ZEUS.LOG start then cat ZEUS.LOG

@ssoroka-se 👍 👍 👍 👍 ❗️

shelkem commented May 26, 2015

@marcpursals
Thanks for the advice. This worked for me.

Still getting this error after trying every possible combination of answers in this issue.

Does anyone have an idea of where this bug is comming from? It's been more than two years from the original post and it doesn't seem to be any official solution.

ntdb commented Jul 6, 2015

@marcpursals this worked for me as well. Thanks!

I had this issue with zeus-parallel_tests but none of the steps above resolved it. After checking my logs, load_file wasn't being found in load_tracking.rb, with a custom plan. I fixed it by running bundle update psych and adding require 'yaml' to the top of my custom plan.

radar commented Nov 20, 2015

I just got this today. Following @ssoroka-se's advice, I see this:

2015/11/21 10:21:58.583514 [/Users/nick/Work/gopath/src/github.com/burke/zeus/go/processtree/slavenode.go:184] boot/(no PID) in unbooted state
2015/11/21 10:21:58.584299 [/Users/nick/Work/gopath/src/github.com/burke/zeus/go/processtree/slavenode.go:372] boot/(no PID) running the root command now
2015/11/21 10:21:58.739034 [/Users/nick/Work/gopath/src/github.com/burke/zeus/go/processtree/slavenode.go:383] boot/(no PID) root process exited with an error before it could boot: exit status 1; output was: /Users/ryanbigg/.gem/ruby/2.2.3/gems/zeus-0.15.4/lib/zeus/load_tracking.rb:58:in `alias_method': undefined method `load_file' for class `Module' (NameError)
        from /Users/ryanbigg/.gem/ruby/2.2.3/gems/zeus-0.15.4/lib/zeus/load_tracking.rb:58:in `singleton class'
        from /Users/ryanbigg/.gem/ruby/2.2.3/gems/zeus-0.15.4/lib/zeus/load_tracking.rb:57:in `<module:YAML>'
        from /Users/ryanbigg/.gem/ruby/2.2.3/gems/zeus-0.15.4/lib/zeus/load_tracking.rb:56:in `<top (required)>'
        from /Users/ryanbigg/.rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:69:in `require'
        from /Users/ryanbigg/.rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:69:in `require'
        from /Users/ryanbigg/.gem/ruby/2.2.3/gems/zeus-0.15.4/lib/zeus.rb:13:in `<top (required)>'
        from /Users/ryanbigg/.rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:69:in `require'
        from /Users/ryanbigg/.rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:69:in `require'
        from /Users/ryanbigg/.gem/ruby/2.2.3/gems/zeus-0.15.4/lib/zeus/rails.rb:12:in `<top (required)>'
        from /Users/ryanbigg/.rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:128:in `require'
        from /Users/ryanbigg/.rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:128:in `rescue in require'
        from /Users/ryanbigg/.rubies/ruby-2.2.3/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:39:in `require'
radar commented Nov 24, 2015

Removing method_source 0.8.2 and using method_source 0.8.1 fixed this issue for me.

Im still receiving this error, I have a zeus.json which when I remove the error is resolved. I can also empty and reinstall my gemset which revolves the issue but this can be rather cumbersome. Here is the output from the zeus log:

2016/01/04 10:13:39.934241 [/Users/nick/Work/gopath/src/github.com/burke/zeus/go/processtree/slavenode.go:184] boot/(no PID) in unbooted state
2016/01/04 10:13:39.934709 [/Users/nick/Work/gopath/src/github.com/burke/zeus/go/processtree/slavenode.go:372] boot/(no PID) running the root command now
2016/01/04 10:13:40.705920 [/Users/nick/Work/gopath/src/github.com/burke/zeus/go/processtree/slavenode.go:383] boot/(no PID) root process exited with an error before it could boot: exit status 1; output was: /Users/piet/.rvm/gems/ruby-2.2.3@global/gems/bundler-1.10.6/lib/bundler/runtime.rb:34:in `block in setup': You have already activated faraday 0.9.2, but your Gemfile requires faraday 0.9.1. Prepending `bundle exec` to your command may solve this. (Gem::LoadError)
        from /Users/piet/.rvm/gems/ruby-2.2.3@global/gems/bundler-1.10.6/lib/bundler/runtime.rb:19:in `setup'
        from /Users/piet/.rvm/gems/ruby-2.2.3@global/gems/bundler-1.10.6/lib/bundler.rb:127:in `setup'
        from /Users/piet/.rvm/gems/ruby-2.2.3@global/gems/bundler-1.10.6/lib/bundler/setup.rb:18:in `<top (required)>'
        from /Users/piet/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
        from /Users/piet/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'

I have found that this can occur when switching gemsets but not exiting the current dir.

bf4 commented Feb 6, 2017 edited

For me, the issue was the json gem. I have zeus installed outside of my app and not in the gemfile.

zeus --log ZEUS.LOG start

then cat ZEUS.LOG showed

~/.rvm/rubies/ruby-2.2.5/lib/ruby/site_ruby/2.2.0/rubygems/dependency.rb:315:in `to_specs': 
Could not find 'json' (= 1.8.6) - did find: [json-1.8.3,json-1.8.1] (Gem::LoadError)

then gem install json -v '1.8.6' and I could start zeus again!

On CRuby 2.2.5.

My Gemfile has the json gem locked to 1.8.6, which I guess matters because of some breaking changes in that version

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment