Project

General

Profile

Bug #4858

Updated by Greg Farnum about 11 years ago

We need to call Monitor::reset() at some point Monitor::bootstrap() all over the place. However, it turns out that nothing guarantees we call it on a non-leader during an election in order to guarantee consistency. However, we don't. It's mostly called via bootstrap(), cycle — the *triggering* monitor will call it (and thus reset()); the election winner will call reset(); but the other monitors won't call reset() or bootstrap() unless their timeouts trigger quickly enough! (It looks like maybe "quickly enough" is only called if a lease or whatever times out, or if it notices a consistency issue later on. 
 This means that it's possible that only "before the monitor initiating an election calls reset(), which is generally bad. finishes", but I might be missing something.) 

 This applies to both Bobtail and Cuttlefish, and is the underlying cause of the troubles with #4747.

Back