High Availability

Dear Team,

I am checking the HA examples at ha/dummy started with make start(all 3 nodes has status is none).
1)When I tried to make node1 or node2 as master always node0 is becoming master.
Command I tried ./ctrl master node2 (verified from status node 0 master.node1 and node2 none)

  1. Due to above 1) be slave not working
    ./ctrl slave node0 node1 127.0.0.1
    ctrl: ctrl.c:144: beslave: Assertion `(confd_ha_beslave(s, &nodeid, &m, 1)) == 0’ failed.
    Aborted (core dumped)

How to make either node1 or node 2 as master.Is in code by default selecting node0 master?

Thanks and Regards
Prabhudev

If you look into the README you will find that you address the command to a port. I.e. node0 has port 4565, which is the node you will address with your command if you don’t specify a port number.
If you want to address node1 use port 4575, node2 use port 4585.
So for example, your “./ctrl master node2” told node0 that node0 should be master with node ID set to “node2”.
You can verify this by doing something like:

$ ./ctrl -d -d ha_status
TRACE Connected (ha) to ConfD
master 2 slaves node2 node1
$ ./ctrl -p 4575 -d -d ha_status
TRACE Connected (ha) to ConfD
slave master: node0
$ ./ctrl -p 4585 -d -d ha_status
TRACE Connected (ha) to ConfD
slave master: node0

Instead, to set node2 to master:

$ ./ctrl -d -d none
TRACE Connected (ha) to ConfD
$ ./ctrl -d -d ha_status
TRACE Connected (ha) to ConfD
none
$ ./ctrl -d -d -p 4575 ha_status
TRACE Connected (ha) to ConfD
none
$ ./ctrl -d -d -p 4585 ha_status
TRACE Connected (ha) to ConfD
none
$ ./ctrl -d -d -p 4585 master node2
TRACE Connected (ha) to ConfD
$ ./ctrl -d -d -p 4575 slave node1 node2 127.0.0.1
TRACE Connected (ha) to ConfD
$ ./ctrl -d -d -d slave node0 node2 127.0.0.1
TRACE Connected (ha) to ConfD
$ ./ctrl -d -d -p 4585 ha_status
TRACE Connected (ha) to ConfD
master 2 slaves node0 node1
$ ./ctrl -d -d -p 4575 ha_status
TRACE Connected (ha) to ConfD
slave master: node2
$ ./ctrl -d -d ha_status
TRACE Connected (ha) to ConfD
slave master: node2

Thank you Conny Ohult !!!