Giter VIP home page Giter VIP logo

Comments (15)

jessesanford avatar jessesanford commented on August 16, 2024

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.

digitalextremist avatar digitalextremist commented on August 16, 2024

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.

 avatar commented on August 16, 2024

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.

HoneyryderChuck avatar HoneyryderChuck commented on August 16, 2024

I'm also having this error using dcell 0.16.0 .

from dcell.

kiranraj avatar kiranraj commented on August 16, 2024

I'm also facing the same issue. Any workarounds to fix this?

from dcell.

kiranraj avatar kiranraj commented on August 16, 2024

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: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'
W, [2014-10-11T18:44:57.215298 #27448] WARN -- : Communication with itchy interrupted

from dcell.

kiranraj avatar kiranraj commented on August 16, 2024

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.

jessesanford avatar jessesanford commented on August 16, 2024

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.

kiranraj avatar kiranraj commented on August 16, 2024

@therealjessesanford Thanks a lot! its working now.

from dcell.

niamster avatar niamster commented on August 16, 2024

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.

tarcieri avatar tarcieri commented on August 16, 2024

@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.

niamster avatar niamster commented on August 16, 2024

@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.

tarcieri avatar tarcieri commented on August 16, 2024

@niamster is there a complete branch for this? 37d3ada alone doesn't seem to fix the problems

from dcell.

niamster avatar niamster commented on August 16, 2024

@tarcieri well, it fixes the problem for me. which problem are you referring to?

from dcell.

tarcieri avatar tarcieri commented on August 16, 2024

@niamster merged your changes into master and the build passes on Travis again 👍

from dcell.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.