[
https://issues.apache.org/jira/browse/PHOENIX-7966?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew Kyle Purtell updated PHOENIX-7966:
-----------------------------------------
Fix Version/s: PHOENIX-7562-feature
5.4.0
> Fix flaky HA IT transitClusterRole: expect the settled peer role
> ----------------------------------------------------------------
>
> Key: PHOENIX-7966
> URL: https://issues.apache.org/jira/browse/PHOENIX-7966
> Project: Phoenix
> Issue Type: Sub-task
> Reporter: Lokesh Khurana
> Assignee: Lokesh Khurana
> Priority: Major
> Fix For: PHOENIX-7562-feature, 5.4.0
>
>
> Several HA integration tests intermittently time out (~1 in 5 runs) in
> transitClusterRole when transitioning a group under the FAILOVER policy with
> both clusters live.
> The test helper HighAvailabilityTestingUtility.transitClusterRole builds the
> expected ClusterRoleRecord from the role arguments and writes that record to
> both clusters, then waits for the client's refreshed record to equal it.
> Callers requested the peer role STANDBY. But when the local cluster moves to
> ACTIVE_TO_STANDBY (→ ACTIVE_IN_SYNC_TO_STANDBY), the peer's
> failover-management listener autonomously advances as STANDBY peer to
> STANDBY_TO_ACTIVE. The equality wait therefore races that autonomous
> transition: if the advance lands first, the observed record
> \{ACTIVE_TO_STANDBY, STANDBY_TO_ACTIVE} never equals the requested
> \{ACTIVE_TO_STANDBY, STANDBY}, and the wait times out.
> Fix: pass the role each cluster settles at. Naming the peer role
> STANDBY_TO_ACTIVE — a fixed point in the peer/local transition maps — makes
> the helper write the resting state directly, so the refreshed record matches
> on the first poll regardless of listener timing. Deterministic, not
> timing-dependent.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)