fdf78bdbbc
Last night we hit a rare case of failed convergence. f was out of sync with the rest of the world. f: upi=[b,g,f] repairing=[a,c] The "rest of the world" used a larger chain at: *: upi=[c,b,g,a], repairing=[f] And f refused to join the larger chain because of the way that IsRelevantToMe_p was being calculated before this commit. Hrrrm, though, I'm not convinced that this particular problem is fixed 100% by this patch. What if the chain lengths were the same but also UPI incompatible? e.g. if I remove 'a' from the "real world (in the partition simulator)" example above: f: upi=[b,g,f] repairing=[c] *: upi=[c,b,g], repairing=[f] Hrmmmmm, I may need to reintroduce the my-recent-adopted-projection- flapping-like-counter thingie to try to break this kind of incompatible deadlock. |
||
---|---|---|
.. | ||
legacy | ||
pulse_util | ||
machi_admin_util_test.erl | ||
machi_chain_manager1_converge_demo.erl | ||
machi_chain_manager1_pulse.erl | ||
machi_chain_manager1_test.erl | ||
machi_cr_client_test.erl | ||
machi_flu1_test.erl | ||
machi_flu_psup_test.erl | ||
machi_partition_simulator.erl | ||
machi_pb_high_client_test.erl | ||
machi_pb_test.erl | ||
machi_projection_store_test.erl | ||
machi_projection_test.erl | ||
machi_proxy_flu1_client_test.erl |