Coder Social home page Coder Social logo

Comments (4)

frekw avatar frekw commented on August 25, 2024

Oh and also, the source can be found here.

from horde.

derekkraan avatar derekkraan commented on August 25, 2024

Hi, thanks again for the bug report.

This is a tricky situation, because this is not an actual netsplit. In fact, both nodes are still in the cluster, but it may seem temporarily that they are not (if you . So if you send an actual message from one side to the other, you'll notice that it arrives and the cluster recognizes again that it is intact.

If you try send(v(3), :hello) in the right pane, you'll see that it succeeds.

I am trying to use local_cluster and schism to add tests for these scenarios to Horde, so I'll leave this issue open until then.

from horde.

derekkraan avatar derekkraan commented on August 25, 2024

I've added an initial test to ensure that the supervisor performs as expected during and after a netsplit. See #93.

from horde.

frekw avatar frekw commented on August 25, 2024

Hi!

This is indeed a proper netsplit. The way I simulate it is by changing the cookie for one of the nodes and then using Node.disconnect; see https://github.com/frekw/horde-test/blob/master/lib/hord_test.ex#L26-L31.

This is usually how I simulate netsplits when writing tests using local_cluster as well!

However, I tried this exact test with #92 and then everything seems to be working as expected! 👍

When testing with #92 I did find another bug more closely related to what you describe, which is that if you change the cluster memberships for connected nodes it will fail to remove/restart processes running on nodes in the previous configuration (but not the new one). Not sure what the proper behaviour under those circumstances should be, but I think they should be treated the same way as a netsplit. Do you want me to file a different bug for that?

And lastly, thanks for all your hard work. This is a great library which fills a big gap in the Erlang/Elixir distribution story!

from horde.

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.