Comment 0 for bug 1537893

Revision history for this message
Jorge Niedbalski (niedbalski) wrote :

[Environment]

Trusty 14.04
OpenStack Kilo Release
RabbitMQ 3.4

[Description]

The ha-sync-mode is set to manual by default, resulting in no queue synchronization among the cluster.

Please review the official RMQ documentation https://www.rabbitmq.com/ha.html, it says:

"Explicit synchronisation can be triggered in two ways: manually or automatically. If a queue is set to automatically synchronise it will synchronise whenever a new slave joins - becoming unresponsive until it has done so.

Queues can be set to automatically synchronise by setting the ha-sync-mode policy key to automatic. ha-sync-mode can also be set to manual. If it is not set then manual is assumed."

So, by default the ha-sync-mode is set to manual , which means that queue synchronization depends
on explicit synchronization (e.g.: rabbitmqctl sync_queue ...).

The default mode that we are setting when configure a new cluster is 'all', which is described on the code as:

def set_ha_mode(vhost, mode, params=None, sync_mode='automatic'):
      * 'all': Queue is mirrored across all nodes in the cluster. When a new
         node is added to the cluster, the queue will be mirrored to that node.

So, I suggest to explicitly set the ha-sync-mode to True, on all of the 3 modes.