-
Notifications
You must be signed in to change notification settings - Fork 104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Timeouts and Crashes in the Cluster #256
Comments
I may be seeing this same issue with my application! Could it be related to a new elixir version? We recently upgraded to 1.13.4 otp 25. |
I've been seeing the issue with 1.12 and 1.13 both, so I don't believe its related to the version. |
I'd like to post this for anyone who kept seeing the I ran into this when using a module based dynamic supervisor from the example in the docs. I had to add My def start_link(init_arg, options \\ []),
do:
Horde.DynamicSupervisor.start_link(
__MODULE__,
init_arg,
options |> Keyword.put_new(:name, __MODULE__)
) |
I've got a service that I'm building up that will accept requests to an endpoint and will push the payload to RabbitMQ, which will then be read by a Broadway pipeline. The pipeline will send the messages to GenServers based on the id in the payload. The GenServers will start one per id, handle processing the state per message and timeout if the GenServer doesn't receive any additional messages within a specific timespan.
The problem is, I'm encountering multiple issues once I incorporate Horde into this around timeouts and crashes, and eventually messages just stop processing entirely. I've read the issues #233 and #227 and they both seem related, but the issue seems to stem from adding or removing nodes from the cluster.
Some example code here (some of the logic is omitted)
This setup will usually process messages just fine if I do not change any nodes. If I add or remove a node, sometimes processing will continue, but other times I'll encounter deadlocks or crashes. Some of the error messages I get..
This one usually happens after I've added or removed a node and we see messages stop processing.
Adding or removing nodes sometimes gets this, usually when recycling kubernetes pods or scaling up while processing a lot of messages at once (this error message is using a custom node observer that is the one provided by Horde's docs). I've omitted the node names purposely.
I also see these messages and usually the Supervisor crashes right after. This may or may not be related.
The associated crash...
The text was updated successfully, but these errors were encountered: