使用Elixir的ejabberd 16.03,当第一个节点关闭时节点卡住

时间:2016-04-05 15:36:59

标签: elixir ejabberd mnesia

我已更新到ejabberd 16.03并将其设置为Elixir项目依赖项(如:https://blog.process-one.net/how-to-use-ejabberd-as-an-elixir-application-dependency/)。 然后,我设置了一个由三个节点组成的集群(node1,node2,node3),其中节点2和3运行:ejabberd_cluster.join“node1”。

问题是,当我将节点1和3放下时,然后我关闭node2并尝试再次运行node2,它不起作用。

我读过:ejabberd clustering, Slave doesn't work when master goes down,但是对于Ejabberd 14和Erlang,问题没有发生。

我知道Mnesia表现得那样但是,为什么它在升级之前有效?

1 个答案:

答案 0 :(得分:2)

实际上,正如您所指出的那样,Mnesia的预期和预期行为是您必须以相反的顺序启动节点或强制主控。

自从10多年前首次发布ejabberd聚类以来,Mnesia一直以这种方式工作并且行为没有改变。

在您的情况下,不正确的是您最后停止node2并首先启动节点2。它没有理由被卡住,因此您有另一个问题,或者当您停止节点2时,您之前的群集节点未正确关闭。

相关问题