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

prisma-risk / tsoracle / 26369003684
95%

Build:
DEFAULT BRANCH: main
Ran 24 May 2026 06:18PM UTC
Jobs 1
Files 75
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

24 May 2026 06:14PM UTC coverage: 94.896% (+0.06%) from 94.837%
26369003684

push

github

web-flow
feat(stress): detect non-overlapping cross-client real-time monotonicity (#135) (#297)

* feat(stress): detect non-overlapping cross-client real-time monotonicity (#135)

The supervisor enforced per-client monotonicity, cross-client uniqueness,
per-batch ordering, and (only in a chaos window's post-grace tail) fence
freshness. The strictly cross-client real-time case slipped through: client
A's RPC completes before client B's RPC starts, yet B receives a ts no
greater than A's. That is a real happens-before violation a monotonic TSO
must never exhibit, and a steady-state regression (e.g. a clean elective
failover that re-allocates a physical-ms window) would never correlate with
a ChaosKind window, so fence freshness could miss it entirely.

Add a fifth invariant in on_issued: track a single O(1) completed_high_water
tuple (highest ts seen, plus the recv_time of the RPC that produced it),
advanced only when ts strictly increases. A sample whose issued_at is at or
after that completion but whose ts does not advance past it is flagged as the
new CrossClientRealtimeMonotonicity violation kind.

The check keys off the per-sample issued_at/recv_time the client driver
records, not mpsc arrival order, so the existing tolerance of concurrent
arrival reordering still holds: overlapping RPCs never satisfy
issued_at >= prior.recv_time. Two gates keep the signal clean: a sample
already named by a per-client or uniqueness violation is not double-reported,
and the check is suppressed while a leadership-changing window is open, where
fence freshness is the authoritative cross-leadership check (failpoint
windows do not suppress, since real-time monotonicity must hold across them).

stress emits the new kind in its JSON output, so stress-auto-issue dedups it
under a distinct fingerprint with no workflow change.

monotonicity_tolerates_cross_client_arrival_reorder previously used
zero-duration, sequentially increasing instants that did not model the
concurrency it clai... (continued)

162 of 163 new or added lines in 3 files covered. (99.39%)

2 existing lines in 1 file now uncovered.

11267 of 11873 relevant lines covered (94.9%)

485264.13 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
75.4
1.87% crates/tsoracle-paxos-toolkit/src/lifecycle/mod.rs

Coverage Regressions

Lines Coverage ∆ File
2
84.37
-0.54% benchmarks/stress/src/topology/paxos.rs
Jobs
ID Job ID Ran Files Coverage
1 26369003684.1 24 May 2026 06:18PM UTC 75
94.9
GitHub Action Run
Source Files on build 26369003684
  • Tree
  • List 75
  • Changed 4
  • Source Changed 3
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26369003684
  • 5fd5b9a9 on github
  • Prev Build on main (#26368912159)
  • Next Build on main (#26369479220)
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