summaryrefslogtreecommitdiffstats
path: root/src/remake/switch.rs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-10-24 22:08:31 +0200
committertv <tv@krebsco.de>2026-10-24 22:08:31 +0200
commite6cb4be03510f0c7db88e4e16a3df62964bcd067 (patch)
treeac31374ad1bac549a6cf41cc132ee64242b2c91b /src/remake/switch.rs
parentc301f7f3805b21fe811ee5201f8fe817274c33bb (diff)
allow superseding expired remakes
Diffstat (limited to 'src/remake/switch.rs')
-rw-r--r--src/remake/switch.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/remake/switch.rs b/src/remake/switch.rs
index e4644fb..cf5ea75 100644
--- a/src/remake/switch.rs
+++ b/src/remake/switch.rs
@@ -105,6 +105,10 @@ async fn check<H: Host>(host: &H) {
let (id, record) = match committed.as_slice() {
// Nothing committed here; maybe peers moved on without us.
[] => return catchup::check(host).await,
+ [(id, record)] if record.contested => {
+ error!(remake = %id, "Decisions on this remake disagree; not switching on my own");
+ return catchup::check(host).await;
+ }
[(id, record)] => (id.clone(), record.clone()),
several => {
// Majority voting prevents this; never guess which one is right. Peers