From 13ac4d5048058dbfcde92a247fcec729efc15cbd Mon Sep 17 00:00:00 2001 From: Weny Xu Date: Mon, 28 Apr 2025 14:08:02 +0800 Subject: [PATCH] fix: only consider the datanode that reports the failure (#6004) * fix: only consider the datanode that reports the failure * chore: fix clippy --- src/meta-srv/src/region/supervisor.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/meta-srv/src/region/supervisor.rs b/src/meta-srv/src/region/supervisor.rs index 26be72fa5e..0573d9fdc6 100644 --- a/src/meta-srv/src/region/supervisor.rs +++ b/src/meta-srv/src/region/supervisor.rs @@ -395,12 +395,15 @@ impl RegionSupervisor { .push(region_id); } - let failed_datanodes = grouped_regions.keys().cloned().collect::>(); for (datanode_id, regions) in grouped_regions { warn!( "Detects region failures on datanode: {}, regions: {:?}", datanode_id, regions ); + // We can't use `grouped_regions.keys().cloned().collect::>()` here + // because there may be false positives in failure detection on the datanode. + // So we only consider the datanode that reports the failure. + let failed_datanodes = [datanode_id]; match self .generate_failover_tasks(datanode_id, ®ions, &failed_datanodes) .await