From 3ce99939a348a7651e89c348f01a953b4ae0c3b6 Mon Sep 17 00:00:00 2001 From: weisd Date: Tue, 6 Jan 2026 23:59:08 +0800 Subject: [PATCH] fix: improve memory ordering for disk health tracker (#1412) --- crates/ecstore/src/disk/disk_store.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/ecstore/src/disk/disk_store.rs b/crates/ecstore/src/disk/disk_store.rs index baab323f6..bc736bb17 100644 --- a/crates/ecstore/src/disk/disk_store.rs +++ b/crates/ecstore/src/disk/disk_store.rs @@ -95,22 +95,22 @@ impl DiskHealthTracker { /// Check if disk is faulty pub fn is_faulty(&self) -> bool { - self.status.load(Ordering::Relaxed) == DISK_HEALTH_FAULTY + self.status.load(Ordering::Acquire) == DISK_HEALTH_FAULTY } /// Set disk as faulty pub fn set_faulty(&self) { - self.status.store(DISK_HEALTH_FAULTY, Ordering::Relaxed); + self.status.store(DISK_HEALTH_FAULTY, Ordering::Release); } /// Set disk as OK pub fn set_ok(&self) { - self.status.store(DISK_HEALTH_OK, Ordering::Relaxed); + self.status.store(DISK_HEALTH_OK, Ordering::Release); } pub fn swap_ok_to_faulty(&self) -> bool { self.status - .compare_exchange(DISK_HEALTH_OK, DISK_HEALTH_FAULTY, Ordering::Relaxed, Ordering::Relaxed) + .compare_exchange(DISK_HEALTH_OK, DISK_HEALTH_FAULTY, Ordering::AcqRel, Ordering::Relaxed) .is_ok() } @@ -131,7 +131,7 @@ impl DiskHealthTracker { /// Get last success timestamp pub fn last_success(&self) -> i64 { - self.last_success.load(Ordering::Relaxed) + self.last_success.load(Ordering::Acquire) } }