summaryrefslogtreecommitdiff
path: root/scripts/rabbitmq-server.bat
diff options
context:
space:
mode:
authorDmitry Mescheryakov <dmescheryakov@mirantis.com>2016-08-22 14:22:21 +0300
committerDmitry Mescheryakov <dmescheryakov@mirantis.com>2016-08-22 14:27:40 +0300
commitbe86bf4e207cb9cb00f786d9476ef3dc58ced72c (patch)
tree29fe8a883c50c58d36873abb5be3c2b9cf34cd1c /scripts/rabbitmq-server.bat
parent5a6f61c423b19b33e36f0be0f995a1636b310873 (diff)
downloadrabbitmq-server-git-be86bf4e207cb9cb00f786d9476ef3dc58ced72c.tar.gz
[OCF HA] Enhance split-brain detection logic
Previous split brain logic worked as follows: each slave checked that it is connected to master. If check fails, slave restarts. The ultimate flaw in that logic is that there is little guarantee that master is alive at the moment. Moreover, if master dies, it is very probable that during the next monitor check slaves will detect its death and restart, causing complete RabbitMQ cluster downtime. With the new approach master node checks that slaves are connected to it and orders them to restart if they are not. The check is performed after master node health check, meaning that at least that node survives. Also, orders expire in one minute and freshly started node ignores orders to restart for three minutes to give cluster time to stabilize. Also corrected the problem, when node starts and is already clustered. In that case OCF script forgot to start the RabbitMQ app, causing subsequent restart. Now we ensure that RabbitMQ app is running. The two introduced attributes rabbit-start-phase-1-time and rabbit-ordered-to-restart are made private. In order to allow master to set node's order to restart, both ocf_update_private_attr and ocf_get_private_attr signatures are expanded to allow passing node name. Finally, a bug is fixed in ocf_get_private_attr. Unlike crm_attribute, attrd_updater returns empty string instead of "(null)", when an attribute is not defined on needed node, but is defined on some other node. Correspondingly changed code to expect empty string, not a "(null)". This fix is a fix for Fuel bugs https://bugs.launchpad.net/fuel/+bug/1559136 https://bugs.launchpad.net/mos/+bug/1561894
Diffstat (limited to 'scripts/rabbitmq-server.bat')
0 files changed, 0 insertions, 0 deletions