Repository navigation
fix(results): split mix partitions by a committed durations file - #152
Merged
Merged
Conversation
Each shard fetched durations from aster-srv while it ran and fell back to Mix's split on any error, so one shard that could not reach the server split differently from the rest and a file ran on two shards or none. Shards now read aster-durations.json from the checkout, which every shard of a commit shares, and `aster results durations` writes it from the server's medians for every partitioned suite in the workspace, to be committed on a schedule. Every fallback (no file, suite missing, broken file, ASTER_BALANCE_PARTITIONS=off) now applies to all shards alike. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merge order: independent of #148; merge either first. #148's guide section "Balanced partitions" is updated to describe this file, so merge this before or with #148.
Fixes the open risk in #149 (T24 of test tracking): a shard that could not reach aster-srv fell back to Mix's split while the others balanced, so files ran on two shards or none.
What changes
aster-durations.jsonat the workspace root, keyed by suite directory (services/platform). No network at run time;.aster/durations/cache and commit-day lookup removed.aster results durations [--url]finds everyMIX_TEST_PARTITION=K mix test --partitions Nsuite, fetches medians fromGET /v1/test-results/durations, writes the file sorted and pretty (clean diffs). Any fetch failure leaves the file unchanged and exits 1.ASTER_BALANCE_PARTITIONS=off→ Mix's own split on every shard.Verification
tests/test_results.rs::shards_split_by_the_committed_durations_file_without_a_server: real binary, fakemixon PATH and fake server. No file → Mix split;aster results durationswrites the file (asserts the request targets); then both shards run disjoint file lists with no server configured.-D warnings, rustdoc clean; workspace tests pass exceptdev_services::dynamic_port_bundles…, which fails locally onmaintoo.Rollout (firstlanding)
ASTER_VERSION.aster results durationsonce and commitaster-durations.json; add the scheduled refresh workflow.🤖 Generated with Claude Code