Comments (15)
This is because the aliased method ":respond_to?" was removed from the celluloid actor proxy class. By simply reordering you are pointing the method respond_to? at itself (I thought the same thing was the correct way to fix it until after a discussion). See here:
#57
#56
from dcell.
Without something to link to ( with it gone from ActorProxy
), this doesn't work correctly, no matter where alias_method
goes. Put it before the monkey patch, and you get this:
NameError: undefined method 'respond_to?' for class 'Celluloid::ActorProxy'
ActorProxy at /Users/de/01E/libraries/digitalextremist/dcell/lib/dcell/celluloid_ext.rb:16
Celluloid at /Users/de/01E/libraries/digitalextremist/dcell/lib/dcell/celluloid_ext.rb:12
(root) at /Users/de/01E/libraries/digitalextremist/dcell/lib/dcell/celluloid_ext.rb:11
require at org/jruby/RubyKernel.java:1085
require at /Users/de/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:55
require at /Users/de/.rvm/rubies/jruby-1.7.11/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:53
(root) at /Users/de/01E/libraries/digitalextremist/dcell/lib/dcell.rb:1
require at org/jruby/RubyKernel.java:1085
(root) at /Users/de/01E/libraries/digitalextremist/dcell/lib/dcell.rb:24
(root) at curve_itchy.rb:4
Put it after, and an infinite loop will happen... which only never happens because respond_to?
is never needed except by Marshal
... so I propose this:
def respond_to?(meth)
meth == :_dump
end
from dcell.
This is due to dcell Gemfile load in the lastest commit from celluloid master branch.
Doing a "gem list | grep celluloid" will give:
celluloid (0.16.0.pre2)
celluloid-io (0.16.0.pre2)
So what I did was bringing them down to their stable releases:
celluloid (0.15.2)
celluloid-io (0.15.0)
And it works just fine.
from dcell.
I'm also having this error using dcell 0.16.0 .
from dcell.
I'm also facing the same issue. Any workarounds to fix this?
from dcell.
I commented out calling __respond_to? method now i see the below error
I, [2014-10-11T18:43:53.779722 #27448] INFO -- : Connected to itchy
Fighting itchy! (check itchy's outpwut)
E, [2014-10-11T18:44:57.213382 #27448] ERROR -- : couldn't decode message
DCell::Server::InvalidMessageError: invalid message: undefined method alive?' for nil:NilClass /Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/dcell-0.16.0/lib/dcell/server.rb:59:in
rescue in decode_message'
/Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/dcell-0.16.0/lib/dcell/server.rb:56:in decode_message' /Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/dcell-0.16.0/lib/dcell/server.rb:38:in
handle_message'
/Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in public_send' /Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in
dispatch'
/Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/calls.rb:122:in dispatch' /Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60:in
block in invoke'
/Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71:in block in task' /Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357:in
block in task'
/Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57:in block in initialize' /Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/tasks/task_fiber.rb:15:in
block in create'
W, [2014-10-11T18:44:57.215298 #27448] WARN -- : Communication with itchy interrupted
from dcell.
Even if i try to access info or node_manager service on itchy's node i am seeing the same error.
Fighting itchy! (check itchy's outpwut)
I, [2014-10-11T19:05:06.847108 #27649] INFO -- : Connected to itchy
[:node_manager, :dcell_server, :info, :itchy]
E, [2014-10-11T19:05:06.943659 #27649] ERROR -- : couldn't decode message
DCell::Server::InvalidMessageError: invalid message: undefined method alive?' for nil:NilClass /Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/dcell-0.16.0/lib/dcell/server.rb:59:inrescue in decode_message'
/Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/dcell-0.16.0/lib/dcell/server.rb:56:in decode_message' /Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/dcell-0.16.0/lib/dcell/server.rb:38:inhandle_message'
/Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in public_send' /Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:indispatch'
/Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/calls.rb:122:in dispatch' /Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60:inblock in invoke'
/Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71:in block in task' /Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357:inblock in task'
/Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57:in block in initialize' /Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/tasks/task_fiber.rb:15:inblock in create'
nil
from dcell.
The last compatible versions of these gems were stated above. You have to
pin your Gemfile to
So what I did was bringing them down to their stable releases:
celluloid (0.15.2)
celluloid-io (0.15.0)
On Saturday, October 11, 2014, kiranraj [email protected] wrote:
Even if i try to access info or node_manager service on itchy's node i am
seeing the same error.Fighting itchy! (check itchy's outpwut)
I, [2014-10-11T19:05:06.847108 #27649] INFO -- : Connected to itchy
[:node_manager, :dcell_server, :info, :itchy]
E, [2014-10-11T19:05:06.943659 #27649] ERROR -- : couldn't decode message
DCell::Server::InvalidMessageError: invalid message: undefined method
alive?' for nil:NilClass /Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/dcell-0.16.0/lib/dcell/server.rb:59:inrescue
in decode_message'
/Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/dcell-0.16.0/lib/dcell/server.rb:56:in
decode_message' /Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid
/gems/dcell-0.16.0/lib/dcell/server.rb:38:inhandle_message'
/Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in
public_send' /Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid
/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:indispatch'
/Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/calls.rb:122:in
dispatch' /Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60:inblock
in invoke'
/Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71:in
block in task' /Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357:inblock
in task'
/Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57:in
block in initialize' /Users/kiranraj/.rvm/gems/ruby-2.1.0@celluloid/gems/celluloid-0.16.0/lib/celluloid/tasks/task_fiber.rb:15:inblock
in create'
nil—
Reply to this email directly or view it on GitHub
#61 (comment).
from dcell.
@therealjessesanford Thanks a lot! its working now.
from dcell.
So far I can say that this is big regression due to commit 69f82c041d6da4f1e7cb996096a45eb1ba421457(Split CellBehavior from Actor to allow for simple Erlang-like actors) in celluloid. I have partially adopted dcell(itchy, scratch feel themselves good) but have one spec failing. Thus I doubt if I understood the problem correctly.
from dcell.
@niamster so that is a rather fundamental change in Celluloid and one I hope dcell can be made to support. When I originally created Celluloid it was predicated around what Erlang would call "gen_servers" which are actors that are capable of supporting an RPC protocol. 69f82c04 was intended to add more flexible behaviors than could fit into gen_server-ish RPC boxes. It's a worthwhile change to support in dcell. /cc @halorgium
from dcell.
@tarcieri, @halorgium I have managed to migrate to celluloid 0.16. Can you please review niamster/dcell@37d3ada
All spec tests are passing, itchy and scratchy are both in a good shape.
Thanks
from dcell.
@niamster is there a complete branch for this? 37d3ada
alone doesn't seem to fix the problems
from dcell.
@tarcieri well, it fixes the problem for me. which problem are you referring to?
from dcell.
@niamster merged your changes into master and the build passes on Travis again
from dcell.
Related Issues (20)
- Cannot follow the configuration example, please help HOT 3
- 0.16.2 HOT 16
- unexpected zookeeper error when using DCell HOT 4
- Using it in forked / multithreaded env HOT 8
- `require 'dcell'` already throws `DCell::NotConfiguredError` at the end HOT 2
- Clear stale nodes HOT 10
- Make compatible with newest Celluloid version HOT 11
- Please note recommended version of zeromq library in your wiki HOT 5
- Setting the path for logging HOT 1
- Http gem needs to be updated for security reasons HOT 1
- registry: on node exit all nodes are cleared
- Remove redis from mandatory rspec requirements
- dcell node id is not unique
- dcell should not require precise port for incoming connection
- dcell 0.15 dependencies are not correct
- dcell needs a new maintainer HOT 11
- Thoughts about the future of dcell and celluloid-zmq HOT 37
- Implement Celluloid::Sync
- How to use DCell to connect the remote node and use the actor? HOT 4
- Unable to run spec on OSX with various MRI Rubies HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dcell.