[OpenSIPS-Users] Possible clusterer edge condition - all nodes in "not synced"

Pete Kelly pkelly at gmail.com
Wed May 22 10:53:17 EDT 2019


I am using clusterer with usrloc on a cluster with 2 nodes and these
parameters on node 1

modparam("usrloc", "working_mode_preset", "full-sharing-cluster")
modparam("clusterer", "current_id", MY_NODE_ID)
modparam("clusterer", "db_mode", 0)
modparam("clusterer", "current_info", "cluster_id=1,url=bin:
198.19.0.255:5070,flags=seed")
modparam("clusterer", "neighbor_info", "cluster_id=1,node_id=2,url=bin:
198.19.0.253:5070")

these parameters on node 2:

modparam("usrloc", "working_mode_preset", "full-sharing-cluster")
modparam("clusterer", "current_id", MY_NODE_ID)
modparam("clusterer", "db_mode", 0)
modparam("clusterer", "current_info", "cluster_id=1,url=bin:
198.19.0.253:5070")
modparam("clusterer", "neighbor_info", "cluster_id=1,node_id=1,url=bin:
198.19.0.255:5070")

When I start both nodes up, they both report the following capability as
expected (in fact the seed node knows it is seed and does not try to sync
at this point):

Capability:: usrloc-contact-repl State=Ok

However I have found that if node 2 is stopped (or goes away) and a manual
ul_cluster_sync is issued on node 1 (the seed node), it will determine that
there is no neighbour available and will change its capability state to
"not synced".

It is then impossible to change the seed node out of this state, and the
neighbour nodes (when they come back online) also remain in a "not synced"
state as they cannot find a neighbour with an "Ok" state.

In fact, perhaps if the seed node can only find "not synced" nodes (or
indeed no other available nodes) in the cluster, then it should recognise
itself as the seed and therefore revert to "Ok" rather than "not synced"?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20190522/656b889c/attachment-0001.html>


More information about the Users mailing list