celluloid / dcell

UNMAINTAINED: See celluloid/celluloid#779 - Actor-based distributed objects in Ruby based on Celluloid and 0MQ
http://celluloid.io
MIT License
595 stars 65 forks source link

Cannot get remote actor #69

Closed rtacconi closed 9 years ago

rtacconi commented 9 years ago

I have a :time_server actor registered with node1. In node2, which is connected to node1, I can get the list of actors on node1, but when I try to get the remote actor I get this error:

rbx-2.2.10 :060 > DCell::Node[:node1].actors => [:node_manager, :dcell_server, :info, :time_server] rbx-2.2.10 :061 > DCell::Node[:node1][:time_server] E, [2014-10-02T13:02:21.052500 #7312] ERROR -- : couldn't decode message DCell::Server::InvalidMessageError: invalid message: dump format error /Users/riccardo.tacconi/.rvm/gems/rbx-2.2.10/gems/dcell-0.16.0/lib/dcell/server.rb:59:in decode_message' /Users/riccardo.tacconi/.rvm/gems/rbx-2.2.10/gems/dcell-0.16.0/lib/dcell/server.rb:38:inhandle_message' /Users/riccardo.tacconi/.rvm/gems/rbx-2.2.10/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in dispatch' /Users/riccardo.tacconi/.rvm/gems/rbx-2.2.10/gems/celluloid-0.16.0/lib/celluloid/calls.rb:122:indispatch' /Users/riccardo.tacconi/.rvm/gems/rbx-2.2.10/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60:in invoke' /Users/riccardo.tacconi/.rvm/gems/rbx-2.2.10/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71:intask' /Users/riccardo.tacconi/.rvm/gems/rbx-2.2.10/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357:in task' /Users/riccardo.tacconi/.rvm/gems/rbx-2.2.10/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57:ininitialize' /Users/riccardo.tacconi/.rvm/gems/rbx-2.2.10/gems/celluloid-0.16.0/lib/celluloid/tasks/task_fiber.rb:15:in create' kernel/bootstrap/proc.rb:20:incall'

I am using redis and OSX

jasonayre commented 9 years ago

Can you try switching to jruby and seeing if you get the same error?

I am having same issue after switching back to MRI, marshal is failing with same error (on any message its trying to decode). Although it works fine in jruby for me

niamster commented 9 years ago

DCell now uses msgpack for data serialization. @jasonayre please reopen this if it still hit you.