Skip to content

HydraCache 0.62.0

Choose a tag to compare

@github-actions github-actions released this 13 Jul 08:56
· 1015 commits to main since this release

HydraCache 0.62.0

0.62.0 ships the cluster-correctness hardening layer: deterministic raft
message filtering, failpoint crash-safety, real-process daemon harnesses,
membership-history checking, id/wire properties, golden vectors, and the two
minimal correctness fixes those harnesses exposed.

This is a test-infrastructure release, not a feature release. It does not add a
new consensus algorithm, consistency level, or embedded-cache fast-path behavior.

Highlights

  • Added deterministic raft message-filter coverage for asymmetric partitions,
    minority/majority commit behavior, duplicate/reordered messages, retired-peer
    rejection, and the missing stale-leader falsifiability case.
  • Added test-failpoints crash-safety coverage for torn raft storage windows,
    with canaries that prove the tests can turn red.
  • Added real-process daemon cluster gates that spawn hydracache-server
    children, kill/restart leaders, and assert durable rejoin behavior.
  • Reused the shipped 0.44 invariant/linearizability checker for recorded
    daemon membership histories.
  • Added id-mapping and wire-decode properties plus golden byte vectors for raft
    command envelopes, wire messages, ConfState, and snapshot ConfState.
  • Enabled raft pre_vote by default and documented the one-release mixed
    window in docs/COMPAT.md.
  • Tightened the server raft wire node-id mapping so integer-like node ids do not
    take a parse-first shortcut.
  • Hardened the operator kind partition probe so it uses a dedicated network
    probe pod, validates baseline reachability before applying NetworkPolicy,
    initializes rustls in the live harness, and waits for leader observation.

Verification

Focused gates run for this release:

cargo xtask verify
cargo xtask verify-no-test-features
cargo test -p hydracache-cluster-raft --features test-failpoints --test failpoints_crash_safety --locked -- --test-threads=1
$env:HYDRACACHE_RUN_NETWORKED_DAEMON_E2E='1'; cargo test -p hydracache-server --test grid_host multi_node --locked -- --nocapture
$env:HYDRACACHE_RUN_DAEMON_PROCESS_E2E='1'; cargo test -p hydracache-server --test daemon_process_cluster --locked -- --test-threads=1 --nocapture
$env:HYDRACACHE_RUN_DAEMON_PROCESS_E2E='1'; cargo test -p hydracache-server --test membership_history --locked -- --nocapture
$env:HYDRACACHE_RUN_PREVOTE_NIGHTLY_SOAK='1'; cargo test -p hydracache-cluster-raft --test prevote_nightly_soak --locked

Operator kind proof run on 2026-07-09:

$env:HYDRACACHE_OPERATOR_KIND='1'
$env:HYDRACACHE_OPERATOR_IMAGE='hydracache-server:td0011-0.61'
$env:HYDRACACHE_OPERATOR_NAMESPACE='default'
$env:HYDRACACHE_NETWORK_PROBE_IMAGE='busybox:1.36'
cargo test -p hydracache-operator --test soak_kind partition_probe_skips_loud_on_non_enforcing_cni --locked -- --nocapture
cargo test -p hydracache-operator --test soak_kind kind_partition_injection_isolates_and_heals --locked -- --ignored --nocapture

The ordinary kind run reported partition probe applied NetworkPolicy; healing
after the baseline check, so this local kindnet build enforced NetworkPolicy
rather than exercising the non-enforcing skip branch. The enforcing leg was then
proven on a fresh disableDefaultCNI kind cluster with Calico 3.32.1 Available.

Scope Boundary

The test-failpoints feature and fail dependency are test-only. They are
guarded by cargo xtask verify-no-test-features and must not enter default
release graphs. hydracache-cluster-testkit remains dev-only and
publish = false.

Release Status

Shipped in the release ledger after the local gates above and cargo xtask doc-check passed. Tag and push remain a human SSH action.