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

bedrock-kv / bedrock / c83f2765ca2547acf5d88eeddcc97800b3c9d7cd
73%

Build:
DEFAULT BRANCH: develop
Ran 14 Jul 2026 08:25PM UTC
Jobs 2
Files 215
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

14 Jul 2026 08:24PM UTC coverage: 70.158% (+0.7%) from 69.496%
c83f2765ca2547acf5d88eeddcc97800b3c9d7cd

push

github

web-flow
Add behavioral tests for Finalization resolver and reply edge cases (bedrock-9n6) (#87)

## Summary
- Adds `sharded_resolution_and_edge_cases_test.exs` (16 tests) for
`CommitProxy.Finalization` (coverage 95.3% → 99.5%), using the module's
own DI seams (`resolver_fn`, `async_stream_fn`, `batch_log_push_fn`,
`sequencer_notify_fn`) — no mocking libraries
- Contracts encoded: empty batches commit 0/0 with empty lists to every
resolver; aborted indices from multiple resolvers merge and each aborted
client gets `{:error, :aborted}`; any resolver error/exit fails the
whole plan and all pending clients are told; cross-shard `clear_range`
is split and clamped to shard boundaries (hand-verified against the
shard table); atomic mutations route by key incl. phash2 tag fallback;
log push failures counted, zero-log-services fails rather than vacuously
succeeding

## Bug found (audit-confirmed, ticket filed — client-reachable
commit-proxy crash)
`ShardRouter.lookup_shards_with_ranges/3` passes `:"$end_of_table"` to
`:ets.prev/2` (shard_router.ex:244) when a range starts at/beyond the
last shard boundary → `ArgumentError`. Client-side `Tx.clear_range` only
guards start >= end, and finalization runs in a task linked to the
commit proxy — so `clear_range(<<0xFF,0xFF>>, <<0xFF,0xFF,0>>)` from one
client crashes the proxy and kills every transaction in the batch. The
`{:storage_team_coverage_error, ...}` branch is dead code until this is
fixed. Audit reproduced it empirically.

## Audit
Independent review verified clamping expectations by hand, DI fake
fidelity against real call signatures, and determinism (3 seeds). One
fix committed: removed a moduledoc bullet claiming coverage-error tests
that can't honestly exist until the ShardRouter fix lands. Two more lib
findings ticketed: the log-push exit clause won't match real
`Task.async_stream` exit shapes, and the `sequencer_notify_fn` typespec
says arity-2 vs arity-4 call sites.

## Test plan
- 16/16 green at 3 seeds; ful... (continued)

5499 of 7838 relevant lines covered (70.16%)

1989.8 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
89.01
0.73% lib/bedrock/data_plane/transaction.ex
Jobs
ID Job ID Ran Files Coverage
1 c83f2765ca2547acf5d88eeddcc97800b3c9d7cd.1 14 Jul 2026 08:25PM UTC 215
70.16
GitHub Action Run
2 c83f2765ca2547acf5d88eeddcc97800b3c9d7cd.2 14 Jul 2026 08:25PM UTC 215
70.03
GitHub Action Run
Source Files on build c83f2765ca2547acf5d88eeddcc97800b3c9d7cd
  • Tree
  • List 215
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • c83f2765 on github
  • Prev Build on develop (#057DAC13...)
  • Next Build on develop (#D2001662...)
  • Delete
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