Comments (7)
Thank you very much! I will investigate after the weekend. My head is fried after this week :)
from horde.
Hi @Ivor,
The first error is odd, because the handle_call
for :members
only returns the members from the state of the GenServer. So if this is timing out then that indicates that the supervisor was busy doing something else for that time (terminating a process maybe?)
The second error, (:request_to_join_hordes
) is really very strange. I don't see anywhere in the codebase where this could occur (there is an extra false
in the tuple).
The third error, it seems like the members
state doesn't match the expected shape {node_id, %{pid: pid}}
. I don't know why this could be though, I've just reviewed the code and we only add [node_id, node_info(state)]
to the members crdt.
What versions of horde and delta_crdt are you running?
from horde.
Hi Derek.
The version we are running are (from our mix.lock file):
"delta_crdt": {:hex, :delta_crdt, "0.3.1", "a50bff0460da2d9b0559a68c0116bf8f0c3847de272bdce4a391aae2063902d3", [:mix], [], "hexpm"},
"horde": {:git, "https://github.com/derekkraan/horde.git", "5cb07da15f5b9acba2d92a610309c0a52d0d9c37", []}
I think while my colleagues were testing this they would intermittently kill a node or one of them would kill their wifi to simulate a network partition. Perhaps the first error was as a result of that?
I'll have to investigate further. S=Do you have pointers for where to start to investigate any of these issues?
from horde.
:request_to_join_hordes
is always coming from your own code somewhere, so you should be able to find a timeout error on that call somewhere in your logs to assist you in tracing the call from start to end.
To fix the first issue I'm considering that the call to members/1
should have a timeout of :infinity
.
And for the last one, that's a real head-scratcher. You could try the latest master
of delta_crdt to see if you can reproduce it. That should improve the overall performance as well.
from horde.
Hi @Ivor, if you have time, could you test version 0.5.0-rc.1 to see if this bug has been fixed?
from horde.
I'm closing this issue for now since Horde has been overhauled quite a bit since this was opened. Feel free to re-open (or open a new issue) if you see this again with 0.5.0-rc.12 or higher!
from horde.
Hi Derek. Thank you :) Horde is very much appreciated. I'm pretty swamped at the moment, but will probably need to do some work on the Horde related part of our system in a few weeks. Will have a look then!
Good luck!
from horde.
Related Issues (20)
- Is it possible to start a Horde dynamic supervisor with a registered name? HOT 2
- match error when stopping a process HOT 1
- Stopping Child via Horde.DynamicSupervisor.terminate_child with via_tuple HOT 1
- Occasional Horde Registry Lookup Misses HOT 2
- GenServer.cast cant find process via {:via, Horde.Registry, ...} HOT 6
- race condition in name conflict in same registry process results in all processes losing HOT 20
- Default random node distribution strategy HOT 5
- Match error while doing process handoff in dynamic supervisor
- Use new PartitionSupervisor
- Timeouts and Crashes in the Cluster HOT 2
- Disappearing values from Horde.Registry after spawning more than two nodes. HOT 2
- Why we need to handle {:error, {:already_started, pid}} ? HOT 4
- SayHello GenServer never (re)started on `count3` node?
- uniform_random_distribution.ex not in deps 8.7 HOT 1
- Old child specs remain in Supervisor CRDT after process handoff
- Registry.lookup doesn't always return new item that was just registered HOT 13
- Example of How to Start Children like a Regular Supervisor
- [BUG]: Horde Supervisor behaves one_for_all no matter what HOT 8
- Include horde_process in the main repo HOT 12
- Horde OTP 27 issue HOT 5
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 horde.