You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The code of `migrate_leadership_to_existing_replica` previously assumed
that it can control the target node of a failover of mirrored queues.
While its sibling function `transfer_leadership` can do that (as it drops all
mirrors besides the one on the target node)
`migrate_leadership_to_existing_replica` tries to be less intrusive and
only tries to migrate the queue away for the current primary.
However it then used `wait_for_new_master` to wait for the queue to actually
transfer the primary to the specified target node. As the specified target
node might not ever become the primary of the queue (as this decission is
only made between the remaining mirrors) this can cause the migrate operation
to run into a timeout (10 sec per default).
As `migrate_leadership_to_existing_replica` is only used during
`transfer_leadership_of_classic_mirrored_queues` its only goal is to get the
primary away from the current node. Therefor we can just wait for the
queue to become active on some other node instead of expecting a specific
node to become the primary.
(cherry picked from commit fa0a8de)
0 commit comments