Skip to content

fix(renderer): give the chrome_proxy recovery arm time to finish - #510

Merged
us merged 1 commit into
mainfrom
fix/chrome-proxy-arm-budget
Sep 8, 2026
Merged

fix(renderer): give the chrome_proxy recovery arm time to finish#510
us merged 1 commit into
mainfrom
fix/chrome-proxy-arm-budget

Conversation

@us

@us us commented Sep 8, 2026

Copy link
Copy Markdown
Owner

What changed

  • CHROME_PROXY_ARM_BUDGET_MS 12 s to 20 s in crates/crw-renderer/src/lib.rs.
  • The chrome_proxy tier's navigation budget is chrome_nav_budget_ms.max(CHROME_PROXY_ARM_BUDGET_MS), since the effective render budget is the smaller of the two. The direct chrome tier keeps chrome_nav_budget_ms.

Why

Measured 2026-09-08 against www.carfax.ca (Azure Front Door 403 on every datacenter IP): the engine already classifies the page as a hard block and fires the residential recovery arm, but a residential Chrome render of that page takes 12.3 to 16.3 s end to end. With a 12 s arm the auto path succeeded on 2 of 11 attempts; with chrome_proxy pinned and a larger budget it succeeded 6 of 6 (7.7k characters of real markdown).

Effect

  • Non-blocked traffic: none. The arm only runs when the ladder already failed with a hard block.
  • Hard-blocked requests that the arm now clears return content at ~20 to 23 s wall instead of a 403 at ~15 s. A caller timeout below that returns 504 as before.
  • chrome_proxy pool permits are held up to 20 s instead of 12 s on those requests. Watch render_route_decision_total{tier="chromeProxy",decision="armShed"} after deploy.

ref #189

The arm ran with a 12 s budget while a residential Chrome render of a page
behind Azure Front Door measures 12.3 to 16.3 s end to end (www.carfax.ca,
2026-09-08). The arm therefore timed out on 9 of 11 attempts and the caller got
the direct tier's 403 shell, although the same page cleared 6 of 6 times when
chrome_proxy was pinned with a larger budget.

CHROME_PROXY_ARM_BUDGET_MS is 20 s, and the chrome_proxy tier's nav budget is
raised to at least that, since the effective render budget is the smaller of
the two. The direct chrome tier keeps chrome_nav_budget_ms, so the hot path is
unchanged; only hard-blocked requests, which already failed the ladder, pay
the extra time.
@us
us merged commit 595a3c5 into main Sep 8, 2026
10 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 8, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant