diff --git a/raft/fsm.hh b/raft/fsm.hh index b5ca4005fd..dc71fdc9d5 100644 --- a/raft/fsm.hh +++ b/raft/fsm.hh @@ -238,8 +238,6 @@ private: void become_candidate(bool is_prevote, bool is_leadership_transfer = false); - void become_follower(server_id leader); - // Controls whether the follower has been responsive recently, // so it makes sense to send more data to it. bool can_send_to(const follower_progress& progress); @@ -277,6 +275,9 @@ private: void send_timeout_now(server_id); protected: // For testing + + void become_follower(server_id leader); + leader& leader_state() { return std::get(_state); } diff --git a/test/raft/helpers.hh b/test/raft/helpers.hh index 83b120f6ce..a660c56277 100644 --- a/test/raft/helpers.hh +++ b/test/raft/helpers.hh @@ -92,6 +92,9 @@ raft::fsm_config fsm_cfg{.append_request_threshold = 1, .enable_prevoting = fals class fsm_debug : public raft::fsm { public: using raft::fsm::fsm; + void become_follower(server_id leader) { + raft::fsm::become_follower(leader); + } const raft::follower_progress& get_progress(server_id id) { raft::follower_progress* progress = leader_state().tracker.find(id); return *progress;