Repository navigation
Retry remote calls a proxy fails with 502, 503 or 504 - #50
Conversation
Auto-committed-on: macbook
…tinymold-remote/src/remote/test Auto-committed-on: macbook
Co-authored-by: Medulla <medulla@tinyhumans.ai>
Tiny Sweeper reviewTiny Sweeper completed its review; deterministic results follow. State: Ready for maintainer review Review snapshot
Completeness: Complete What changed`transient` now delegates the `INTERNAL`-status classification to a new `proxy_hiccup(message: &str) -> bool` helper in `crates/tinymold-remote/src/remote/mod.rs`. The helper preserves the existing `starts_with("h2 protocol error")` check and adds a `contains` match for u201cwhile receiving response with status: 502 ”, 503, or 504 (the trailing space is required). The comment on `transient` is reworded to reference [`proxy_hiccup`] and the connection-close explanation moves to the helper's doc comment. `docs/specs/remote.md` documents the new retry behavior, and `crates/tinymold-remote/src/remote/test.rs` gains `a_proxy_whose_server_is_restarting_is_retried` covering the 502/503/504 positives and a 400 negative. Features
Tests
FindingsNo active actionable findings. Before mergeNone. How this fits togetherflowchart LR
n0["a_connection_the_server_closed_is_retried<br/>changed"]:::changed
n1["new"]:::impacted
n2["remote"]:::impacted
n3["with"]:::impacted
n4["blob"]:::impacted
n5["configured"]:::impacted
n6["..._entry_whose_record_is_swapped_is_refused"]:::impacted
n0 -->|calls| n1
n0 -->|tests| n1
n2 -->|calls| n1
n5 -->|calls| n1
n6 -->|calls| n1
n6 -->|tests| n1
n6 -->|calls| n3
n6 -->|tests| n3
n6 -->|calls| n4
n6 -->|tests| n4
n6 -->|calls| n5
n6 -->|tests| n5
classDef changed fill:#0d4429,stroke:#238636,color:#e6edf3
classDef impacted fill:#161b22,stroke:#6e7681,color:#c9d1d9
classDef flagged fill:#5a1e02,stroke:#d93f0b,color:#ffffff
classDef blocking fill:#67060c,stroke:#f85149,color:#ffffff
Agent review detailscritique
security
tests
commits
description
Evidence and run details
|
|
Warning Review limit reached
This review includes 3 billable files and costs up to $0.75. Or wait 53 minutes for your next included review. View limit details
Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
tinysweeper found nothing blocking. Approving.
$0.0036 · 188,565 in / 20,569 out · 48,384 cached (26%) · ladder/vectors-oai3, deepseek-v4.1-flash · 199 embedded
critique: $0.0032 · 105,082 in / 17,619 out · 20,608 cached (20%) · deepseek-v4.1-flash
security: $0.0002 · 33,956 in / 760 out · 4,864 cached (14%) · deepseek-v4.1-flash
tests: $0.0000 · 32,152 in / 500 out · 15,488 cached (48%) · deepseek-v4.1-flash
description: $0.0000 · 14,399 in / 461 out · 7,424 cached (52%) · deepseek-v4.1-flash
A deploy restarted
tinymold servebehind nginx during chottu-core's save step. nginx answered the Write in flight with502 Bad Gatewayand an HTML body, which tonic reports as:pushtreated that as a refusal and gave up the whole push. A 502, 503 or 504 from a proxy now goes through the same 1/4/15 s retries asUNAVAILABLE. Together with the h2 GOAWAY case (#48), the check moves intoproxy_hiccup.Behavior change:
INTERNALstatuses carrying a proxy 502/503/504 are retried. Other HTTP statuses (e.g. 400) still fail at once.Validation
a_proxy_whose_server_is_restarting_is_retried(502/503/504 retried, 400 not) fails before the fix and passes after.cargo test -p tinymold-remote: 85 pass. Clippy on the crate andfmt --checkare clean.--all-targetsbuild.