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

bedrock-kv / bedrock / 61a4dcd8c18adf906201889e2b8e99c534e06ac2 / 1
74%
develop: 66%

Build:
Build:
LAST BUILD BRANCH: codex/recover-shard-materializers-on-restart
DEFAULT BRANCH: develop
Ran 16 Mar 2026 05:59PM UTC
Files 216
Run time 7s
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

16 Mar 2026 05:58PM UTC coverage: 66.099% (+0.1%) from 65.965%
61a4dcd8c18adf906201889e2b8e99c534e06ac2.1

push

github

web-flow
fix: make consistent-hash recovery routing deterministic (#72)

Closes #68.

## Summary

This PR fixes the fresh-cluster consistent-hash routing bug by making
empty-descriptor routing deterministic and shared across
recovery/bootstrap paths.

This PR keeps scope intentionally narrow:
- adds a shared internal `LayoutRouting` helper for deterministic log
ordering and shard-to-log selection
- uses that helper in materializer bootstrap for empty-descriptor
layouts
- uses the same helper when recovery rebuilds commit-proxy routing data
and when live routing data adds/removes logs
- rejects mixed empty/non-empty log descriptor modes so routing
semantics are not ambiguous

It does **not** include the Olivine waitlist timeout hardening or the
persisted restart recovery investigation.

## Why

Fresh-cluster recovery stores log descriptors as empty lists under the
consistent-hashing model. The old bootstrap path still treated
descriptors like shard-tag filters, so materializers could be unlocked
with the wrong log set.

Separately, recovery-time topology reconstruction and live commit-proxy
routing were rebuilding log order independently. This PR makes those
paths agree on one deterministic routing model for empty-descriptor
layouts.

## Tests

- `mix test test/bedrock/internal/layout_routing_test.exs
test/bedrock/control_plane/director/recovery/materializer_bootstrap_phase_test.exs
test/bedrock/control_plane/director/recovery/topology_phase_test.exs
test/bedrock/control_plane/director/recovery/tsl_validation_phase_test.exs
test/bedrock/data_plane/commit_proxy/routing_data_test.exs`

5202 of 7870 relevant lines covered (66.1%)

971.64 hits per line

Source Files on job 61a4dcd8c18adf906201889e2b8e99c534e06ac2.1
  • Tree
  • List 216
  • Changed 9
  • Source Changed 0
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 61
  • 61a4dcd8 on github
  • Prev Job for on main (#81ef521344af7f98c7d078312a615eb154064c5e.2)
  • Next Job for on main (#b8cbbbe1a02d3df3e9a913472b0d11c3cd8575a6.2)
  • Delete
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