Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
The detection/contention workflow in Master currently works like this:
MasterContender::contend -> Master::contended -> MasterDetector::detect -> Master::detected
-> Master::lostCandidacy -> MasterContender::contend -> Master::contended -> MasterDetector::detect -> Master::detected
They are not formulated as two separate loops
contend -> contended -> lostCandidacy -> contend
detect -> detected -> detect
so that it's possible for contended() to produce more detect -> detected -> detect loops when there are existing such loops running.
They should be modeled as two independent closed loops.