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

prisma-risk / tsoracle / 26300061678
95%

Build:
DEFAULT BRANCH: main
Ran 22 May 2026 04:41PM UTC
Jobs 1
Files 53
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

22 May 2026 04:38PM UTC coverage: 96.017% (+0.1%) from 95.922%
26300061678

push

github

web-flow
fix(client): bound coalescing driver waiters and stream chunk delivery (#115)

* fix(client): bound coalescing driver waiters and stream chunk delivery

The driver's secondary VecDeque<Waiter> was unbounded: the in-flight
select! drained rx.recv() into it without backpressure, so the documented
4096-entry waiter bound did not hold under a slow server. run_chunks also
accumulated every chunk's Vec<Timestamp> before any delivery, so a slow
first chunk amplified retained memory and tail latency.

Split QUEUE_CAPACITY evenly between the mpsc buffer and the secondary
VecDeque, gating rx.recv() on queue.len() < QUEUE_CAPACITY/2 in both
select sites that pull from rx. Move deliver() inside run_chunks so each
chunk's outcome streams to its waiters before the next chunk's RPC
starts; the only state crossing chunk boundaries is the Option<ClientError>
used for fail-fast. Update the per-waiter footprint estimate (~256 bytes,
~1 MB at the bound) to account for oneshot heap allocations.

* test(client,server,tests): cover driver backpressure end-to-end

Three layers of additional coverage for the coalescing driver fix:

- `StallableDriver` test fixture in `tsoracle-server::test_fakes` wraps
  `InMemoryDriver` with an indexed stall knob on `persist_high_water`,
  so integration tests can simulate a slow consensus driver mid-flight.
  Stalled calls bump their persist target to `now + 60 s` on resume so
  the allocator's post-extension window check still serves the in-flight
  GetTs — what a real driver recovering from a transient slowdown would
  do.
- Integration tests in `tsoracle-tests/tests/client_backpressure.rs`
  exercise the driver through the real gRPC stack: an 8192-caller smoke
  test for the new `select!` gates, a per-chunk delivery test that
  stalls the second chunk's persist and asserts the first response
  arrives without waiting, and an `#[ignore]`-tagged soak that mixes
  count distributions over 512 concurrent tasks × 200 iterations.
- proptest in... (continued)

183 of 185 new or added lines in 2 files covered. (98.92%)

2 existing lines in 1 file now uncovered.

7088 of 7382 relevant lines covered (96.02%)

684437.23 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
96.69
1.91% crates/tsoracle-client/src/driver.rs
1
99.02
-0.98% crates/tsoracle-server/src/test_fakes.rs

Coverage Regressions

Lines Coverage ∆ File
2
96.64
-0.75% benchmarks/stress/src/loadgen.rs
Jobs
ID Job ID Ran Files Coverage
1 26300061678.1 22 May 2026 04:41PM UTC 53
96.02
GitHub Action Run
Source Files on build 26300061678
  • Tree
  • List 53
  • Changed 3
  • Source Changed 2
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26300061678
  • e5c67b0f on github
  • Prev Build on main (#26299467786)
  • Next Build on main (#26301598829)
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