From ee83a2ac299fd1b8f69d3850ac107419fe6b6da1 Mon Sep 17 00:00:00 2001 From: Sagar Dhawan Date: Tue, 26 Feb 2019 11:59:04 -0800 Subject: [PATCH] Make stake sorting more deterministic for data plane --- src/cluster_info.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/cluster_info.rs b/src/cluster_info.rs index 610de4f76b..a884a00867 100644 --- a/src/cluster_info.rs +++ b/src/cluster_info.rs @@ -373,8 +373,14 @@ impl ClusterInfo { .iter() .map(|c| (*stakes.get(&c.id).unwrap_or(&0), c.clone())) .collect(); - peers_with_stakes.sort_unstable(); - peers_with_stakes.reverse(); + peers_with_stakes.sort_unstable_by(|(l_stake, l_info), (r_stake, r_info)| { + if r_stake == l_stake { + r_info.id.cmp(&l_info.id) + } else { + r_stake.cmp(&l_stake) + } + }); + peers_with_stakes.dedup(); peers_with_stakes }