• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In
Warning: This build has drifted.
The coverage report for this pull request build may be inaccurate because its base commit is no longer the HEAD of its target branch.
This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

    • Learn more: For more information on this, see Tracking coverage changes for pull request builds.
    • Fix now: For a quick fix, rebase this PR at GitHub. Your next report should be accurate.
    • Prevent going forward: To avoid this issue with future PRs, see these Recommended CI Configurations.
New Repo Setting:
INCLUDE COVERAGE % WITH WARNINGS ABOUT DRIFTED BUILDS?

Enabling this setting will include a (potentially inaccurate) coverage % with warning messages in status updates for drifted builds.

Adjust setting

thanos / rheo / 615f5f94667e2ba25245b222e138fd210bd32939-PR-155
89%
main: 89%

Build:
Build:
LAST BUILD BRANCH: v0.12.0/cleanup-stablize_api
DEFAULT BRANCH: main
Ran 20 Sep 2026 03:56PM UTC
Jobs 1
Files 56
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

20 Sep 2026 03:43PM UTC coverage: 88.838% (+0.4%) from 88.427%
615f5f94667e2ba25245b222e138fd210bd32939-PR-155

Pull #155

github

thanos
C3 residual — the real outstanding bug. Two separate quadratic paths, both in the ETS/Mnesia claim/read hot path:
1. TableEngine.events_from_sequence/5 and read_partition/5 used a guarded select/2 then Enum.sort_by then Enum.take(limit). On an ordered_set that traverses and materialises every later event to keep limit of them. Replaced with an ordered key walk from a probe key, which needed a new next_key/2 on the Table.Store behaviour (:ets.next / :mnesia.dirty_next).
2. claim_one/7 restarted the scan from the head of open_deliveries on every lease, so claiming N leases re-walked the growing already-leased prefix. Replaced with claim_batch/8, a single ordered pass that carries its position across claims. This also deleted the duplicated claim_many/claim_loop/claim_one trio from both ets.ex and mnesia.ex (−38 lines each), continuing the M1 de-duplication.
Measured, same mix rheo.bench:
events	v0.11.0	v0.11.1 committed	now
1,000	655/s	21,980/s	70,681/s
6,000	—	11,846/s	72,863/s
24,000	—	—	60, to 24k instead of decaying ~4× between 1k and 12k.
fetch(limit: N), before/after on the same machine (µs per lease):
limit	committed HEAD	now
100	63.6	14.3
1,000	539.1	9.7
2,000	1,119.2	10.6
4,000	5 s timeout → {:error, :backend_unavailable}	~11
That last row was a latent production bug, not just slowness: a single large fetch exceeded the 5 s ets_call_timeout. The documented max_demand: 100 example was already paying 6× the necessary cost.
Also fixed
- L12 — Rheo.Producer.drain/2 now returns {:error, :already_draining} instead of silently overwriting a pending drain's caller, matching Rheo.Group.drain/2. Spec and doc updated.
- M8 — Rheo.LiveDashboard.Page uses the stateful row_fetcher form ({&fetch_health/3, nil}) with a 2 s TTL cache, so re-sorting or re-paging no longer replays the list_streams + N×list_groups + M×group_info walk.
- H5 — new test/rheo/telemetry_metrics_test.exs and test/mix/tasks/rheo_bench_test.exs. No file is at 0% coverage any more. The Met... (continued)
Pull Request #155: V0.11.1/review fixes

454 of 549 new or added lines in 24 files covered. (82.7%)

9 existing lines in 5 files now uncovered.

3295 of 3709 relevant lines covered (88.84%)

1108.88 hits per line

Uncovered Changes

Lines Coverage ∆ File
24
82.73
lib/rheo/backend/table_engine.ex
19
84.0
-1.3% lib/rheo/backend/mongo.ex
18
90.1
-1.96% lib/rheo/backend/ecto.ex
8
95.12
-1.21% lib/rheo/backend/mnesia.ex
5
81.89
0.04% lib/rheo/backend/redis.ex
4
77.27
-16.84% lib/rheo/clock/frozen.ex
3
85.71
85.71% lib/mix/tasks/rheo.bench.ex
3
63.64
-36.36% lib/rheo/instance.ex
2
97.42
0.26% lib/rheo/backend/ets.ex
2
84.62
-15.38% lib/rheo/backend/mongo/client/driver.ex
2
81.08
81.08% lib/rheo/live_dashboard/page.ex
2
91.67
0.0% lib/rheo/query.ex
1
85.12
6.49% lib/rheo.ex
1
92.08
-0.81% lib/rheo/group.ex
1
86.15
-0.67% lib/rheo/producer.ex

Coverage Regressions

Lines Coverage ∆ File
3
81.89
0.04% lib/rheo/backend/redis.ex
2
84.0
-1.3% lib/rheo/backend/mongo.ex
2
92.08
-0.81% lib/rheo/group.ex
1
90.1
-1.96% lib/rheo/backend/ecto.ex
1
63.64
-36.36% lib/rheo/instance.ex
Jobs
ID Job ID Ran Files Coverage
1 615f5f94667e2ba25245b222e138fd210bd32939-PR-155.1 20 Sep 2026 03:56PM UTC 56
88.84
GitHub Action Run
Source Files on build 615f5f94667e2ba25245b222e138fd210bd32939-PR-155
  • Tree
  • List 56
  • Changed 25
  • Source Changed 0
  • Coverage Changed 25
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #155
  • PR Base - main (#BB4AA9F7...)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc