Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lock RubyDNS to 0.8.x versions #108

Merged
merged 1 commit into from
Oct 27, 2014
Merged

Conversation

swrobel
Copy link
Collaborator

@swrobel swrobel commented Oct 26, 2014

Invoker currently does not start on a new install because it will use RubyDNS 0.9.0 which was released on 10/23/14. This took an exceptionally long time to troubleshoot because of celluloid, but I finally tracked it down! Invoker's gemspec locks RubyDNS to ~> 0.7, however the author states that 0.x releases are incompatible, but minor versions should be compatible. Here is the offending change in 0.9.0.
For the time being you can add the following to your own Gemfile:

gem 'rubydns', '~> 0.8.5'

Here is a trace of what happens when you run with RubyDNS 0.9.0:

→ invoker start Procfile 
D, [2014-10-26T09:45:30.515304 #59891] DEBUG -- : Terminating 1 actor...
vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:39:in `check': wrong number of arguments (1 for 0) (ArgumentError)
    from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:24:in `dispatch'
    from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:63:in `dispatch'
    from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60:in `block in invoke'
    from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71:in `block in task'
    from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357:in `block in task'
    from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57:in `block in initialize'
    from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/tasks/task_fiber.rb:15:in `block in create'
    from (celluloid):0:in `remote procedure call'
    from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:92:in `value'
    from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
    from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:17:in `block in run'
    from vendor/bundle/bundler/gems/eventmachine-4d53154a9ea4/lib/eventmachine.rb:187:in `call'
    from vendor/bundle/bundler/gems/eventmachine-4d53154a9ea4/lib/eventmachine.rb:187:in `run_machine'
    from vendor/bundle/bundler/gems/eventmachine-4d53154a9ea4/lib/eventmachine.rb:187:in `run'
    from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:13:in `run'
    from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:7:in `block in fork_and_start'
    from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:7:in `fork'
    from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:7:in `fork_and_start'
    from vendor/bundle/gems/invoker-1.3.0/lib/invoker/process_manager.rb:72:in `run_power_server'
    from vendor/bundle/gems/invoker-1.3.0/lib/invoker/commander.rb:39:in `start_manager'
    from vendor/bundle/gems/invoker-1.3.0/lib/invoker/cli.rb:46:in `start'
    from vendor/bundle/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
    from vendor/bundle/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
    from vendor/bundle/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
    from vendor/bundle/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
    from vendor/bundle/gems/invoker-1.3.0/lib/invoker/cli.rb:12:in `start'
    from vendor/bundle/gems/invoker-1.3.0/bin/invoker:7:in `<top (required)>'
    from ./bin/invoker:16:in `load'
    from ./bin/invoker:16:in `<main>'

Invoker currently does not start on a new install because it will use RubyDNS 0.9.0 which was released on 10/23/14. This took an exceptionally long time to troubleshoot because of celluloid, but I finally tracked it down! Invoker's gemspec locks RubyDNS to `~> 0.7`, however [the author states](socketry/rubydns#28) that `0.x` releases are incompatible, but minor versions should be compatible. Here is the [offending change](socketry/rubydns@v0.8.5...v0.9.0#diff-d86035f01d9c6b072797c19b43eb736aL116) in 0.9.0.
For the time being you can add the following to your own `Gemfile`:

`gem 'rubydns', '~> 0.8.5'`

Here is a trace of what happens when you run with RubyDNS 0.9.0:
```
→ invoker start Procfile 
D, [2014-10-26T09:45:30.515304 #59891] DEBUG -- : Terminating 1 actor...
vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:39:in `check': wrong number of arguments (1 for 0) (ArgumentError)
	from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:24:in `dispatch'
	from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:63:in `dispatch'
	from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60:in `block in invoke'
	from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71:in `block in task'
	from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357:in `block in task'
	from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57:in `block in initialize'
	from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/tasks/task_fiber.rb:15:in `block in create'
	from (celluloid):0:in `remote procedure call'
	from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/calls.rb:92:in `value'
	from vendor/bundle/gems/celluloid-0.16.0/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
	from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:17:in `block in run'
	from vendor/bundle/bundler/gems/eventmachine-4d53154a9ea4/lib/eventmachine.rb:187:in `call'
	from vendor/bundle/bundler/gems/eventmachine-4d53154a9ea4/lib/eventmachine.rb:187:in `run_machine'
	from vendor/bundle/bundler/gems/eventmachine-4d53154a9ea4/lib/eventmachine.rb:187:in `run'
	from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:13:in `run'
	from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:7:in `block in fork_and_start'
	from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:7:in `fork'
	from vendor/bundle/gems/invoker-1.3.0/lib/invoker/power/powerup.rb:7:in `fork_and_start'
	from vendor/bundle/gems/invoker-1.3.0/lib/invoker/process_manager.rb:72:in `run_power_server'
	from vendor/bundle/gems/invoker-1.3.0/lib/invoker/commander.rb:39:in `start_manager'
	from vendor/bundle/gems/invoker-1.3.0/lib/invoker/cli.rb:46:in `start'
	from vendor/bundle/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
	from vendor/bundle/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
	from vendor/bundle/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
	from vendor/bundle/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
	from vendor/bundle/gems/invoker-1.3.0/lib/invoker/cli.rb:12:in `start'
	from vendor/bundle/gems/invoker-1.3.0/bin/invoker:7:in `<top (required)>'
	from ./bin/invoker:16:in `load'
	from ./bin/invoker:16:in `<main>'
```
@gnufied
Copy link
Contributor

gnufied commented Oct 27, 2014

@swrobel thank your tracking this down!

@ioquatix Invoker has some bits that depends on Eventmachine outside the scope of RubyDNS. we will migrate to 0.9.0 of RubyDNS soon, but in the process - I would like to completely remove dependency on Eventmachine, so it may take a bit of time.

@ioquatix
Copy link

@gnufied Awesome. Just so you know, I'm not advocating you move away from EventMachine, just that for RubyDNS it was a dead end, IMHO.

gnufied pushed a commit that referenced this pull request Oct 27, 2014
Lock RubyDNS to 0.8.x versions
@gnufied gnufied merged commit de8cbd1 into codemancers:master Oct 27, 2014
@swrobel
Copy link
Collaborator Author

swrobel commented Oct 29, 2014

@gnufied can you roll a new gem version?

@ami7ava
Copy link
Contributor

ami7ava commented Oct 29, 2014

Done.

@swrobel swrobel deleted the patch-1 branch January 24, 2020 22:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants