From 5522354aa2a2d9f1e602490cc24510b85141223b Mon Sep 17 00:00:00 2001 From: us Date: Sat, 18 Jul 2026 18:15:50 +0300 Subject: [PATCH] chore(renderer): temporary arm budget diagnostic Log remaining budget + hedge_done at the chrome_proxy arm gate to confirm whether the promoted (serial) path is budget-starved below the 8s floor. Reverted after one capture. --- crates/crw-renderer/src/lib.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/crates/crw-renderer/src/lib.rs b/crates/crw-renderer/src/lib.rs index 33d67536..441198db 100644 --- a/crates/crw-renderer/src/lib.rs +++ b/crates/crw-renderer/src/lib.rs @@ -2501,6 +2501,24 @@ impl FallbackRenderer { if let Some(arm) = auto_egress_arm { let kind = RendererKind::ChromeProxy; let arm_floor = std::time::Duration::from_millis(CHROME_PROXY_ARM_FLOOR_MS); + // TEMP DIAG (fix/arm-skip-promoted-host): measure the promoted (serial, + // hedge_done=false) vs hedged remaining budget at the arm to confirm or + // refute the budget-starvation root cause. Reverted after one capture. + { + let brk = self.breakers.host_for(&host, kind).await.is_open(); + tracing::warn!( + target: "arm_diag", + url, + hedge_done, + saw_hard_block, + saw_unrecoverable_wall, + remaining_ms = deadline.remaining().as_millis() as u64, + arm_floor_ms = arm_floor.as_millis() as u64, + breaker_open = brk, + chain_len = chain.len(), + "ARM_DIAG gate" + ); + } // chrome_proxy is default-Chrome + residential IP: it recovers // IP-reputation blocks (429 / IP-ban 403 / generic bot walls / CF // error-1020 / Wikimedia origin bans) but CANNOT clear a