Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 08 Jul 11:34
v0.2.0
1ae3738

This release fixes critical node leave, convergence, and cleanup issues found after v0.1.0.

In v0.1.0, if a node left the cluster without first being drained, the control plane could keep stale state for that node. Survivors could continue trying to reschedule or communicate with the missing node, networking state and eBPF maps could remain stale, and the load-balancer could still point at replicas hosted by the node that left.

v0.2.0 fixes those abrupt leave paths. Draining before leaving is still the cleaner path because the leaving node can remove its own remaining runtime state, but an undrained leave should no longer break control-plane convergence.

This release also includes a breaking Cap'n Proto session-bootstrap protocol change for typed ticket and credential rejection classification. Mixed v0.1.0 and v0.2.0 clusters are not supported.

Upgrade with a hard cutover to that new version, or use v0.2.0 directly if you are just getting started with Mantissa.

Breaking Changes

  • Changed peer session bootstrap RPCs to return typed accepted/rejected results instead of surfacing expected membership/authentication refusals as generic Cap'n Proto errors. Rejections now carry stable codes for unknown tickets, unregistered peers, inactive local membership, invalid credentials, issuer mismatches, and unknown issuers. 72103e4

Fixed

  • Made node leave convergence idempotent. Duplicate leave tombstones delivered through direct broadcast, gossip, or anti-entropy no longer rewrite peer rows or perturb peer MST roots, while still allowing metadata repair and sync wakeups. 41fa553

  • Stopped registry session bootstrap for peers that have converged to left membership. Stale tickets are evicted when peers reject them as unknown, unregistered, or inactive. a9fb0d3

  • Quiesced cached registry contact paths after peer leave. Survivors now drop cached sessions/capabilities for left peers, and nodes that left stop reusing cached capabilities to surviving peers. c9a331c

  • Added retry backoff for repeated rejected session bootstrap attempts, reducing post-leave session churn while preserving cross-view metadata probes needed for split/merge convergence. 773580e

  • Fixed stale cluster node-count metadata after split/leave flows by ensuring replacement count records sort after the observed row they replace. f13e369

  • Tightened same-millisecond cluster node-count conflict resolution so survivor leave-derived counts can beat stale counts from peers that left. 773580e

  • Retired stale service tasks owned by left peers so cleanup no longer retries impossible remote stops forever after clean leave. 25912c4

  • Rescheduled service replicas away from nodes that explicitly left the cluster. e0f7c40

  • Retired network runtime rows for left peers, including peer-state and attachment rows, so replicated network state no longer keeps left nodes active. 359406c

  • Pruned stale Linux VXLAN FDB entries after peer leave by reading bridge-family FDB state and deleting obsolete forwarding entries. 0fad2ef

  • Preserved secret master-key reconciliation wakeups so split/merge adoption does not stall when the final required key row arrives while the reconciler is already busy. ef6beaf

  • Preserved rollout diagnostics when stale readiness waiters observe a restored / previous service generation after rollback. 486af62

Performance and Convergence

  • Coalesced immediate topology sync wakeups so bursty join/leave events do not spawn overlapping one-shot sync tasks. Additional wakeups during an active pass are folded into at most one follow-up pass. 0afa25e

  • Reused cached peer snapshots for member-count computation and published node-count rows. 0afa25e

Install mantissa 0.2.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/MantissaLabs/mantissa/releases/download/v0.2.0/mantissa-installer.sh | sh

Download mantissa 0.2.0

File Platform Checksum
mantissa-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
mantissa-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo MantissaLabs/mantissa

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>