• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

prisma-risk / tsoracle / 26380772761
95%

Build:
DEFAULT BRANCH: main
Ran 25 May 2026 03:00AM UTC
Jobs 1
Files 82
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

25 May 2026 02:55AM UTC coverage: 94.837% (-0.04%) from 94.872%
26380772761

push

github

web-flow
fix(client): bound leader-hint redirect chains with an absolute cap (#386)

Leader-hint redirects are deliberately not charged against `max_attempts`
(issue #340) so a legitimate failover chain can outlast the failure
budget. That left `overall_deadline` as the only ceiling on redirect
count: a malicious or persistently flapping peer that returns a fresh,
never-visited leader hint on every dial could drive the client through an
unbounded redirect chain — one outbound connection per hop — for the whole
deadline, weakening an availability guard.

Add `MAX_LEADER_REDIRECTS` (16), an absolute backstop on actionable
leader-hint pivots independent of `overall_deadline`. The cap sits far
above any real failover: legitimate hints point at a finite cluster and
dedup via the worklist visited-set, so a healthy chain is bounded by the
node count long before this bites, and only a pathological chain reaches
it. On hitting the cap the loop surfaces the redirect FAILED_PRECONDITION
rather than the misleading NoReachableEndpoints the worklist would
otherwise yield, and increments a new
tsoracle.client.leader_redirect_cap.total metric.

Only LeaderHint grows the worklist (StaleLeaderHint/HintRejected consume
existing entries; Err is already charged), so a single pivot counter
bounds the whole loop without disturbing the other arms.

115 of 123 new or added lines in 1 file covered. (93.5%)

3 existing lines in 2 files now uncovered.

12582 of 13267 relevant lines covered (94.84%)

398035.65 hits per line

Uncovered Changes

Lines Coverage ∆ File
8
89.64
0.72% crates/tsoracle-client/src/retry.rs

Coverage Regressions

Lines Coverage ∆ File
2
84.41
-0.54% benchmarks/stress/src/topology/paxos.rs
1
97.44
-0.32% benchmarks/stress/src/loadgen.rs
Jobs
ID Job ID Ran Files Coverage
1 26380772761.1 25 May 2026 03:00AM UTC 82
94.84
GitHub Action Run
Source Files on build 26380772761
  • Tree
  • List 82
  • Changed 4
  • Source Changed 2
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26380772761
  • b05e21d4 on github
  • Prev Build on main (#26380510018)
  • Next Build on main (#26380778519)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc