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

prisma-risk / tsoracle / 26368912159
95%

Build:
DEFAULT BRANCH: main
Ran 24 May 2026 06:14PM 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:10PM UTC coverage: 94.837% (-0.002%) from 94.839%
26368912159

push

github

web-flow
fix(client): distinguish fanned-out transport failures from NoReachableEndpoints (#241) (#300)

* fix(client): distinguish fanned-out transport failures from NoReachableEndpoints (#241)

`clone_client_error` fans one RPC failure out to every sibling waiter in a
coalesced request chunk. Because `tonic::transport::Error` is not `Clone`, a
single endpoint's `Transport` failure was reconstructed as
`NoReachableEndpoints` — a distinct meaning ("the whole cluster is
unreachable"). Tracing and alerting on the receiving side drew the wrong
conclusion for every sibling waiter in the batch.

Add a `ClientError::TransportFanout(String)` variant carrying the original
error's `Display` text. The value itself still cannot be duplicated, but the
failure stays semantically a single-endpoint transport failure, distinct from
`NoReachableEndpoints`.

- `clone_client_error` maps `Transport(e)` -> `TransportFanout(e.to_string())`,
  and re-clones an already-fanned-out `TransportFanout` faithfully (the
  multi-chunk fail-fast path in `run_chunks` clones the stored error again for
  each subsequent chunk).
- `is_transport_failure` groups `TransportFanout` with `Transport` (same
  transport-failure semantics), keeping the single source of truth shared by
  `should_backoff` and channel eviction honest.
- The two benchmark `is_transient` copies are updated identically.

`ClientError` is a pre-1.0 `pub` enum without `#[non_exhaustive]`, so adding a
variant is a breaking change for exhaustive downstream matchers.

* test(client): recognize TransportFanout in TLS integration assertions (#241)

The coalescing driver applies `clone_client_error` to every waiter — even a
lone one — so a `get_ts()` whose RPC fails with `Transport` now reaches the
caller as `TransportFanout`, never the raw `Transport`. Two TLS integration
assertions and the tls-mtls example matched only `Transport(_)` after a
`get_ts()` and so broke (these are runtime matches the workspace build cannot
catch; only `ca... (continued)

19 of 21 new or added lines in 3 files covered. (90.48%)

11113 of 11718 relevant lines covered (94.84%)

514045.81 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
97.44
0.0% benchmarks/stress/src/loadgen.rs
1
96.49
-0.1% crates/tsoracle-client/src/driver.rs
Jobs
ID Job ID Ran Files Coverage
1 26368912159.1 24 May 2026 06:14PM UTC 75
94.84
GitHub Action Run
Source Files on build 26368912159
  • Tree
  • List 75
  • Changed 4
  • Source Changed 4
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26368912159
  • 89b76cf3 on github
  • Prev Build on main (#26368837491)
  • Next Build on main (#26369003684)
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