rabbitmqrabbitmqctl

Reproduce RabbitMQ network partition scenario


I would like to reproduce the network partition scenario with all the three modes - ignore, autoheal and pause_minority. How can I achieve this? I tried stopping(/sbin/service reboot) one of the nodes of the cluster but this didn't cause any network partitioning. I also tried deleting the mnesia on one node to create inconsistent mnesia across the cluster but that also didn't help.


Solution

  • In order to simulate a network partition you can block the outgoing connections using iptables

    Suppose you have 3 nodes:

    node1 - ip : 10.10.0.1
    node2 - ip : 10.10.0.2
    node3 - ip : 10.10.0.3
    

    After creating the cluster, go to node 2 for example and

    iptables -A OUTPUT -d 10.10.0.1 -j DROP
    

    In this way you blocked the connections and the node will go in network partition.

    Then

    iptables -F
    

    to restore the network.