From 1111a8bd57f7567e5d8e1f822e3abd56cd131104 Mon Sep 17 00:00:00 2001 From: Weny Xu Date: Wed, 25 Dec 2024 10:38:47 +0800 Subject: [PATCH] chore: add log for converting region to follower (#5222) * chore: add log for converting region to follower * chore: apply suggestions from CR --- src/mito2/src/region.rs | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/mito2/src/region.rs b/src/mito2/src/region.rs index 41fb239a58..0a246b393f 100644 --- a/src/mito2/src/region.rs +++ b/src/mito2/src/region.rs @@ -447,7 +447,26 @@ impl ManifestContext { pub(crate) fn set_role(&self, next_role: RegionRole, region_id: RegionId) { match next_role { RegionRole::Follower => { - self.state.store(RegionRoleState::Follower); + match self.state.fetch_update(|state| { + if !matches!(state, RegionRoleState::Follower) { + Some(RegionRoleState::Follower) + } else { + None + } + }) { + Ok(state) => info!( + "Convert region {} to follower, previous role state: {:?}", + region_id, state + ), + Err(state) => { + if state != RegionRoleState::Follower { + warn!( + "Failed to convert region {} to follower, current role state: {:?}", + region_id, state + ) + } + } + } } RegionRole::Leader => { match self.state.fetch_update(|state| {