From c991e1db53decec2654f002bef56555a9e5f66d5 Mon Sep 17 00:00:00 2001 From: Yaroslav Dynnikov <yaroslav.dynnikov@gmail.com> Date: Fri, 1 Jul 2022 15:13:34 +0300 Subject: [PATCH] fix: cluster deployment Joint state latch was mistakenly dropped, and conf_change_loop couldn't receive a notification. Also assert it's not overridden by mistake. --- src/traft/node.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/traft/node.rs b/src/traft/node.rs index 375a892ff1..f746454c03 100644 --- a/src/traft/node.rs +++ b/src/traft/node.rs @@ -429,8 +429,8 @@ fn handle_committed_normal_entry( let e = RaftError::ConfChangeError("rolled back".into()); latch.notify.notify_err(e); + *joint_state_latch = None; } - *joint_state_latch = None; } } @@ -710,6 +710,8 @@ fn raft_main_loop( let last_index = raw_node.raft.raft_log.last_index(); assert_eq!(last_index, prev_index + 1); + assert!(joint_state_latch.is_none()); + joint_state_latch = Some(JointStateLatch { index: last_index, notify, -- GitLab