Giter Site home page Giter Site logo

Comments (4)

jasonayre avatar jasonayre commented on August 15, 2024

Although the "infinite loop" problem exists, its not always infinite, as its conditional on whether process 1 comes back up, if it does (with same address and port it was originally attempting to connect to), the request that process 2 was attempting to make, will succeed.

Also to expound on the registry problem, it isnt that the registry isn't being updated, its that node2 is trying to call node1 after it dies, before the registry gets updated (and it thinks that the remote node is still there). If you run your examples again with 10 second intervals between, it should work (throw an error that remote node doesent exist).

However, even if "live update via zk watchers" did update the registry in near real time, there could still be issues when client makes a request nearly same time the requested node goes down. The underlying issue isn't the registry being updated, its the lack of failure on the request side. I.e. its just sitting for a potentially infinite amount of time waiting for node1 to come back up to execute the request.

It seems to me that the there needs to be a failure timeout/retry mechanism and the client node needs to fail after x amount of attempts. I'll open a separate issue with proposal.

from dcell.

HoneyryderChuck avatar HoneyryderChuck commented on August 15, 2024

@jasonayre +1 for the timeout feature. I've (dumb-assedly!) tried to use ruby timeout on top of it:

timeout(5) { cell.do_something_that_takes_time }

only to see it break everything.

I had noticed the pattern of bringing the process back to life with the same address, and we have implemented this for now until we get a better solution (the sysadmins don't like this port attribution, though).

from dcell.

niamster avatar niamster commented on August 15, 2024

I believe it's addressed in pull request #88

from dcell.

niamster avatar niamster commented on August 15, 2024

Please reopen if you still have this issue in master.

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.