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

prisma-risk / tsoracle / 26408960300
95%

Build:
DEFAULT BRANCH: main
Ran 25 May 2026 03:58PM UTC
Jobs 1
Files 67
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 03:53PM UTC coverage: 94.998% (-0.03%) from 95.024%
26408960300

push

github

web-flow
fix(server): make the clear-before-publish invariant unbypassable in the fence (#411)

The Leader arm of the leader watch published `NotServing` before clearing
the allocator, the inverse of invariant 2 (serving_core.rs), which every
other transition upholds. It was benign only because the published
`NotServing` closes the gate so `try_grant` is unreachable in the window
between the two calls — but a future edit that read the allocator without
the gate would turn it into a stale-epoch grant.

Rather than swap the two lines, remove the ability to get the order wrong:

- Add `ServingCore::enter_fencing()` (delegates to `step_down(None, None)`),
  named for the leadership-gain path where `step_down` reads backwards.
- Delete `clear_allocator()`. With no standalone clear primitive, `step_down`
  and `enter_fencing` become the only ways to clear the allocator, and both
  bake in clear-before-publish — so no call site can invert it. This makes
  invariant 2 enforced by construction, like invariant 1's `ExtensionSlot`.
- Collapse all three fence arms onto the encapsulated methods: Leader ->
  `enter_fencing()`, Unknown -> `step_down(None, None)` (a loss of certainty,
  not a gain), Follower -> `step_down(endpoint, epoch)`. The Follower/Unknown
  rewrites are byte-for-byte equivalent to their prior two-call bodies.

Updates invariant 2's doc to state it is enforced by construction.

18 of 21 new or added lines in 2 files covered. (85.71%)

9326 of 9817 relevant lines covered (95.0%)

495039.25 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
96.84
-1.78% crates/tsoracle-server/src/serving_core.rs
Jobs
ID Job ID Ran Files Coverage
1 26408960300.1 25 May 2026 03:58PM UTC 67
95.0
GitHub Action Run
Source Files on build 26408960300
  • Tree
  • List 67
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26408960300
  • a7f1fc35 on github
  • Prev Build on main (#26408577353)
  • Next Build on main (#26409571283)
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