[ 
https://issues.apache.org/jira/browse/HDDS-17125?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chia-Chuan Ho reassigned HDDS-17125:
------------------------------------

    Assignee: Chia-Chuan Ho

> OM transferLeadership is not idempotent under client failover retry
> -------------------------------------------------------------------
>
>                 Key: HDDS-17125
>                 URL: https://issues.apache.org/jira/browse/HDDS-17125
>             Project: Apache Ozone
>          Issue Type: Sub-task
>          Components: OM HA
>            Reporter: Siyao Meng
>            Assignee: Chia-Chuan Ho
>            Priority: Major
>
> If the {{transferLeadership}} admin RPC takes longer than 
> {{ozone.om.client.rpc.timeout}} (see HDDS-17124 for why it can take 4-13 s), 
> the OM client fails over and sends the same request to the next OM. After a 
> successful transfer that is the *new* leader, which then runs a second 
> set-priority / transfer / reset-priority cycle while the first one is still 
> resetting priorities.
> Observed in a 5-node test (5 s client RPC timeout):
> * 17.52 omNode-1 starts transfer to omNode-2; 22.52 client 
> SocketTimeoutException and failover.
> * 24.21 transfer to omNode-2 succeeds; 24.55 the retried request arrives at 
> omNode-2: "Start transferring leadership to omNode-2" (to itself).
> * 29.83 / 30.10 both handlers reset priorities; 31.60 omNode-2 steps down and 
> omNode-4 is elected. That is an extra leader change nobody asked for.
> * Client fails with "Could not determine or connect to OM Leader" after 10 
> failovers.
> *Proposal:* treat "target is already the leader" as success without touching 
> priorities, and/or do not retry {{transferLeadership}} on a different OM 
> after a timeout.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to