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
Controller endlessly creates best possible nodes under certain circumstances due handlehandleDelayedRebalanceMinActiveReplica modifying the same underlying ResourceAssignments that are used for the in memory bestPossibleAssignment. This causes us to persist a best possible assignment to ZK and cache, then handleDelayedRebalanceMinActiveReplica causes the cache'd mapping to change. This causes the isBestPossibleChanged call in doPartialRebalance to evaluate to true because the cached map has been changed. Partial rebalance persists its calculated assignment to memory and updates the _bestPossibleVersion. The next emergencyRebalance run then will calculate the same assignment as is stored in memory, but because _bestPossibleVersion was incremented, it will still persist the mapping to ZK even though the assignments are identical.
Describe the bug
Controller endlessly creates best possible nodes under certain circumstances due handle
handleDelayedRebalanceMinActiveReplica
modifying the same underlying ResourceAssignments that are used for the in memory bestPossibleAssignment. This causes us to persist a best possible assignment to ZK and cache, thenhandleDelayedRebalanceMinActiveReplica
causes the cache'd mapping to change. This causes theisBestPossibleChanged
call indoPartialRebalance
to evaluate to true because the cached map has been changed. Partial rebalance persists its calculated assignment to memory and updates the_bestPossibleVersion
. The next emergencyRebalance run then will calculate the same assignment as is stored in memory, but because _bestPossibleVersion was incremented, it will still persist the mapping to ZK even though the assignments are identical.To Reproduce
#2970
Expected behavior
Should not endlessly create nodes
The text was updated successfully, but these errors were encountered: