The balancer needs a consistent distlock id (we're using the clusterId) for recovery because we want the balancer to know if it already owns some locks (which we keep on stepdown for the balancer, rather than releasing).
However, right now in DistLockManager::unlock, we unlock by session ID. This presumes ALL locks have different session IDs. The Balancer needs to defy this presumption. It needs to unlock by session ID and _id (in this case a namespace)
- has to be done before
-
SERVER-24866 Balancer should be able to recover its state after CSRS primary stepdown/crash
- Closed
- related to
-
SERVER-25758 Add unit testing for new variation of distlock unlock function
- Closed