Ah, right I was looking on the server!
I'll give that a try

On Wed, Sep 30, 2020 at 9:39 PM Tsz Wo Sze <[email protected]> wrote:

> /** Send groupRemove request to the given server (not the raft service). */
> RaftClientReply groupRemove(RaftGroupId groupId, boolean deleteDirectory,
>     boolean renameDirectory, RaftPeerId server) throws IOException;
>
>
> There is also a groupRemove method in RaftClient.
>
> Tsz-Wo
>
>
> On Thu, Oct 1, 2020 at 9:30 AM Patrick Plenefisch <[email protected]>
> wrote:
>
>> > It seems that you have two groups instead of one so that there is a
>> leader per group.  You may check the log to see if they have the same group
>> ID.
>>
>> Sadly, they are the same:
>> 21:23.214 [main] INFO  c.EntryPoint - node1: leader=true,
>> group=group-CF4F33218115
>> 21:23.215 [main] INFO  c.EntryPoint - node2: leader=true,
>> group=group-CF4F33218115
>> 21:23.215 [main] INFO  c.EntryPoint - node3: leader=true,
>> group=group-CF4F33218115
>> from
>> logger.info("{}: leader={}, group={}", server.getId().toString(),
>> server.getImpl(gid).isLeader(), gid);
>>
>>
>> > If you want to start with two groups, you should remove one of them
>> before merging them.
>>
>> I see groupAdd(), but no groupRemove(). How can I do that?
>>
>> Thanks,
>> Patrick
>>
>> On Wed, Sep 30, 2020 at 9:18 PM Tsz Wo Sze <[email protected]> wrote:
>>
>>> > I end up with two leaders. Is there a way can I force a new
>>> term/revote?
>>>
>>> It seems that you have two groups instead of one so that there is a
>>> leader per group.  You may check the log to see if they have the same group
>>> ID.
>>>
>>> setConfiguration is to change the group configuration for an existing
>>> group. Use groupAdd(..) to add a new group.  You may try the following:
>>>
>>> 1) start node1 with group1 and peers node1
>>> 2) use group1 to create client and call setConfiguration(node1, node2)
>>>
>>> if (node2 is not yet started)
>>> 3) start node2 with group1 and peers node1 and node2
>>>
>>> if (node2 is already started)
>>> 3) use groupAdd to add group1 and peers node1 and node2 to node2
>>>
>>> If you want to start with two groups, you should remove one of them
>>> before merging them.
>>>
>>> BTW, please use an odd number of servers so that that vote won't tie.
>>>
>>> Hope it helps.
>>> Tsz-Wo
>>>
>>>
>>> On Thu, Oct 1, 2020 at 8:48 AM Patrick Plenefisch <[email protected]>
>>> wrote:
>>>
>>>> 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