Hi,
I found ratis recently, and was exploring using it, but I can't figure out
how to add a new peer to a group for some simple cases. Notably, the code
typically hangs on RaftServer.setConfiguration().
If instead, I use the async version thusly:

start node1 with peers node1
start node2 with peers node2
node1.setConfigurationAsync(node1, node2)
node2.setConfigurationAsync(node1, node2)

I end up with two leaders. Is there a way can I force a new term/revote?
While messing around with the Counter example, I tried to do the same
setup, but instead I got constant exceptions about "n1@group-ABB3109A44C1
is not in [RUNNING]: current state is STARTING" and yet if I query
server.getLifeCycleState() it returns "RUNNING".
If I change the setup to be:

start node1 with peers node1
start node2 with peers node1, node2
node1.setConfigurationAsync(node1, node2)

It works! However, when I attempted:

start node1 with peers node1
start node2 with peers node2, nodeDNE
node1.setConfigurationAsync(node1, node2)
node2.setConfigurationAsync(node1, node2)

The configuration changes never make it in, and instead I get a constant
cycle of trying to connect to nodeDNE and re-voting, which appears to block
further configuration changes.

It appears if I include too few nodes, I have too many leaders, and if I
have too many nodes, I get an unrecoverable configuration. I assume I must
be missing something, but am unsure what. Or, Is there a way can I force a
new term and associated revote? Or, Is there a way to recover from a
re-voting loop blocking reconfiguration of a node?

Thanks,
Patrick

Reply via email to