[
https://issues.apache.org/jira/browse/IGNITE-17064?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vyacheslav Koptilin reassigned IGNITE-17064:
--------------------------------------------
Assignee: Kirill Gusakov
> ItRaftGroupServiceTest#testTransferLeadership is flaky
> ------------------------------------------------------
>
> Key: IGNITE-17064
> URL: https://issues.apache.org/jira/browse/IGNITE-17064
> Project: Ignite
> Issue Type: Bug
> Reporter: Mirza Aliev
> Assignee: Kirill Gusakov
> Priority: Blocker
> Labels: ignite-3
> Fix For: 3.0.0-alpha5
>
>
> ItRaftGroupServiceTest#testTransferLeadership is flaky with
> {noformat}
> java.util.concurrent.ExecutionException: class
> org.apache.ignite.raft.jraft.rpc.impl.RaftException: EBUSY:Changing the
> configuration
> {noformat}
> There is a comment in {{NodeImpl#transferLeadershipTo}} about the situation
> when {{EBUSY:Changing the configuration}} is thrown:
>
> {noformat}
> if (this.confCtx.isBusy()) {
> // It's very messy to deal with the case when the |peer|
> received
> // TimeoutNowRequest and increase the term while somehow
> another leader
> // which was not replicated with the newest configuration has
> been
> // elected. If no add_peer with this very |peer| is to be
> invoked ever
> // after nor this peer is to be killed, this peer will spin
> in the voting
> // procedure and make the each new leader stepped down when
> the peer
> // reached vote timeout and it starts to vote (because it
> will increase
> // the term of the group)
> // To make things simple, refuse the operation and force
> users to
> // invoke transfer_leadership_to after configuration changing
> is
> // completed so that the peer's configuration is up-to-date
> when it
> // receives the TimeOutNowRequest.
> LOG.warn(
> "Node {} refused to transfer leadership to peer {} when
> the leader is changing the configuration.",
> getNodeId(), peer);
> return new Status(RaftError.EBUSY, "Changing the
> configuration");
> }
> {noformat}
> The current limitation must be investigated.
> Seems like the easiest way to fix test is to rewrite it and repeat transfer
> leadership invocation.
>
--
This message was sent by Atlassian Jira
(v8.20.7#820007)