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

prisma-risk / tsoracle / 26379927360
95%

Build:
DEFAULT BRANCH: main
Ran 25 May 2026 02:28AM 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:23AM UTC coverage: 94.881% (+0.003%) from 94.878%
26379927360

push

github

web-flow
fix(client): reject off-list epoch-less leader hint over a fresh known-epoch leader (#381)

`compare_and_set_leader`'s monotone-forward gate collapsed three cases
into one `_ => true` arm. Two are intentional (the cache itself holds no
epoch — the bootstrap / old-server path), but the third let a hint
carrying *no* epoch replace a fresh, known-epoch cached leader. A
mixed-version peer (some nodes emit an epoch, some don't) or a
misbehaving redirect source could thereby regress routing away from a
leader the client had just confirmed at a known epoch.

Split the `(Some cached, None hint)` case out of the catch-all: with no
epoch to rank, accept the hint only when it names a configured endpoint
— one we would dial in round-robin regardless, and that a later
successful RPC could confirm. An off-list epoch-less hint can no longer
downgrade the confirmed leader. The known-vs-known monotone gate and the
unknown-epoch-cache (absent/expired/bootstrap) paths are unchanged, and
`record_success` still seats any endpoint a real RPC confirms.

Matching is exact-string equality against the configured list, the same
identity `iter_round_robin` uses for dedup; when config and hint strings
disagree the carve-out simply does not fire, degrading to the safe
reject rather than the previous accept.

The caller's `StaleLeaderHint` warning is reworded — it previously
claimed the hint's epoch was "behind the cached leader's epoch", which
is inaccurate for the new epoch-less rejection.

Closes #357

46 of 50 new or added lines in 2 files covered. (92.0%)

12345 of 13011 relevant lines covered (94.88%)

417328.4 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
88.92
-0.14% crates/tsoracle-client/src/retry.rs
1
98.42
-0.06% crates/tsoracle-client/src/leader_resolved.rs
Jobs
ID Job ID Ran Files Coverage
1 26379927360.1 25 May 2026 02:28AM UTC 82
94.88
GitHub Action Run
Source Files on build 26379927360
  • Tree
  • List 82
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26379927360
  • da6dece5 on github
  • Prev Build on main (#26379921763)
  • Next Build on main (#26380163659)
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