Skip to content

Commit

Permalink
dmq: attempt to re-initialize if node becomes detatched from cluster
Browse files Browse the repository at this point in the history
- issue reported by José Seabra on sr-users mailing list
  • Loading branch information
charlesrchance committed Mar 28, 2017
1 parent 5247136 commit 666ebb6
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion src/modules/dmq/dmq_funcs.c
Expand Up @@ -459,12 +459,28 @@ void ping_servers(unsigned int ticks, void *param) {
str* body;
int ret;
LM_DBG("ping_servers\n");

if (!node_list->nodes || (node_list->nodes->local && !node_list->nodes->next)) {
LM_DBG("node list is empty - attempt to rebuild from notification address\n");
*dmq_init_callback_done = 0;
if(dmq_notification_address.s) {
notification_node = add_server_and_notify(&dmq_notification_address);
if(!notification_node) {
LM_ERR("cannot retrieve initial nodelist from %.*s\n",
STR_FMT(&dmq_notification_address));
}
} else {
LM_ERR("no notification address");
}
return;
}

body = build_notification_body();
if (!body) {
LM_ERR("could not build notification body\n");
return;
}
ret = bcast_dmq_message(dmq_notification_peer, body, notification_node,
ret = bcast_dmq_message(dmq_notification_peer, body, NULL,
&notification_callback, 1, &notification_content_type);
pkg_free(body->s);
pkg_free(body);
Expand Down

0 comments on commit 666ebb6

Please sign in to comment.