From 1e5b84c0edddf156818415d47abae3d3203b9623 Mon Sep 17 00:00:00 2001 From: Alexey <247128645+axkurcom@users.noreply.github.com> Date: Tue, 21 Apr 2026 11:21:58 +0300 Subject: [PATCH] Fairshare Disabled semantics fix --- src/transport/middle_proxy/fairness/scheduler.rs | 3 +++ src/transport/middle_proxy/reader.rs | 5 ++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/transport/middle_proxy/fairness/scheduler.rs b/src/transport/middle_proxy/fairness/scheduler.rs index 760d745..434bbcd 100644 --- a/src/transport/middle_proxy/fairness/scheduler.rs +++ b/src/transport/middle_proxy/fairness/scheduler.rs @@ -138,6 +138,9 @@ impl WorkerFairnessState { } pub(crate) fn set_backpressure_enabled(&mut self, enabled: bool) { + if self.config.backpressure_enabled == enabled { + return; + } self.config.backpressure_enabled = enabled; self.config.pressure.backpressure_enabled = enabled; self.evaluate_pressure(Instant::now(), true); diff --git a/src/transport/middle_proxy/reader.rs b/src/transport/middle_proxy/reader.rs index 51043aa..0d9e2fb 100644 --- a/src/transport/middle_proxy/reader.rs +++ b/src/transport/middle_proxy/reader.rs @@ -262,9 +262,8 @@ pub(crate) async fn reader_loop( let fairshare_enabled = route_fairshare_enabled.load(Ordering::Relaxed); fairness.set_backpressure_enabled(backpressure_enabled); let fairness_has_backlog = should_schedule_fairness_retry(&fairness_snapshot); - let fairshare_active = fairshare_enabled || fairness_has_backlog; let mut tmp = [0u8; 65_536]; - let backlog_retry_enabled = fairshare_active && fairness_has_backlog; + let backlog_retry_enabled = fairness_has_backlog; let backlog_retry_delay = fairness_retry_delay(reader_route_data_wait_ms.load(Ordering::Relaxed)); let mut retry_only = false; @@ -368,7 +367,7 @@ pub(crate) async fn reader_loop( let data = body.slice(12..); trace!(cid, flags, len = data.len(), "RPC_PROXY_ANS"); - if fairshare_active { + if fairshare_enabled { let admission = fairness.enqueue_data(cid, flags, data, Instant::now()); if !matches!(admission, AdmissionDecision::Admit) { stats.increment_me_route_drop_queue_full();