From cc1228739b18b9c8aa18b05bf3ba086b9e439270 Mon Sep 17 00:00:00 2001 From: Yaroslav Dynnikov <yaroslav.dynnikov@gmail.com> Date: Wed, 9 Nov 2022 15:28:57 +0300 Subject: [PATCH] fix: potential panic in postjoin No assumptions should be made on `traft::node::Status.leader_id`. It can be set to `None` at any time due to a re-election. --- src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index dbea1fbb60..1a69af698e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -953,7 +953,7 @@ fn postjoin(args: &args::Run, storage: Storage) { .with_target_grade(TargetGrade::Online) .with_failure_domain(args.failure_domain()); - let leader_id = node.status().leader_id.expect("leader_id deinitialized"); + let leader_id = unwrap_some_or!(node.status().leader_id, continue); let leader = storage.peers.get(&leader_id).unwrap(); // It's necessary to call `proc_update_peer` remotely on a -- GitLab