Skip to content

fix(hosting): full nodes stop blocking copies, roomiest disks first, records survive restarts; v0.3.5 - #225

Merged
ralyodio merged 2 commits into
masterfrom
fix/hosting-placement-skip-full
Nov 9, 2026
Merged

ralyodio merged 2 commits into
masterfrom
fix/hosting-placement-skip-full

Conversation

@ralyodio

@ralyodio ralyodio commented Nov 9, 2026

Copy link
Copy Markdown
Collaborator

A site sat at 2/3 copies while the network had TBs free: dev2 (below its 50 GiB free floor) still advertised as a host, ranked first for some sites, failed every replicate (disk nearly full), and the rendezvous fill deferred to it forever.

Not compiled locally: dev2's disk is at 13 GiB free; CI builds and tests.

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

ThreatCrush Security Scan

13 finding(s)

HIGH/CRITICAL: 1 | MEDIUM: 8 | LOW: 4

Severity Rule Location
HIGH js-ssrf-outbound-request apps/web/public/sw.js:24
MEDIUM js-unescaped-html-sink apps/web/src/app/blog/[slug]/page.tsx:53
MEDIUM js-unescaped-html-sink apps/web/src/app/layout.tsx:89
MEDIUM sh-remote-script-execution scripts/dev-setup.sh:25
MEDIUM sh-eval-expansion scripts/dev-setup.sh:35
MEDIUM sh-remote-script-execution scripts/install.sh:181
MEDIUM sh-remote-script-execution scripts/install.sh:206
MEDIUM sh-remote-script-execution scripts/install.sh:399
MEDIUM sh-remote-script-execution scripts/install.sh:441
LOW py-ssrf-outbound-request examples/business-strategist-agent/chat.py:37
LOW py-ssrf-outbound-request examples/business-strategist-agent/train.py:54
LOW secret-generic-credential node/crates/c0mpute-core/src/webhook.rs:1171
LOW py-path-traversal node/crates/c0mpute-core/tests/fixtures/fake-infernet-text:29

Snippets are redacted; ThreatCrush never prints matched credential material.

@ralyodio ralyodio changed the title fix(hosting): a full node no longer blocks a site's copies; v0.3.5 fix(hosting): full nodes stop blocking copies; roomiest disks take copies first; v0.3.5 Nov 9, 2026
@ralyodio

ralyodio commented Nov 9, 2026

Copy link
Copy Markdown
Collaborator Author

Added: placement prefers the nodes with the most free disk (room_gib in Holding gossip, tiered by log2 so ~2x room = higher priority, rendezvous within a tier). Test: nodes_with_more_room_take_copies_first.

ralyodio and others added 2 commits November 9, 2026 12:55
The rendezvous fill ranks every live hosting peer. A node at its free-disk
floor (dev2: 13 GiB free of 1.8 TiB, floor 50 GiB) still advertised itself
as a host, ranked first for some sites, failed every replicate with
"disk nearly full", and every other node deferred to it, so the site sat
at 2/3 copies forever while the network had TBs free.

- Holding gossip gains `full` (serde default false; older nodes ignore it):
  disk at its floor (+256 MiB headroom) or hosting budget used up
- full peers are left out of the fill candidates (their copies still count)
- a full node never puts itself forward in repair_once
- test: a full peer that ranks first does not hold the slot

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Holding gossip gains room_gib (free disk above the floor, whole GiB; absent
from older nodes, treated as 64 GiB). The rendezvous fill now orders
candidates by space tier (bit length of free GiB: ~2x the room = one tier
up), then by rendezvous score inside a tier. Integer only, so every node
agrees; the biggest disks fill first while equals still share the load.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sh1pt-actions-fleet
sh1pt-actions-fleet Bot force-pushed the fix/hosting-placement-skip-full branch from 9d78379 to c28e399 Compare November 9, 2026 12:56
@ralyodio
ralyodio merged commit 48bfa3b into master Nov 9, 2026
14 checks passed
@ralyodio ralyodio changed the title fix(hosting): full nodes stop blocking copies; roomiest disks take copies first; v0.3.5 fix(hosting): full nodes stop blocking copies, roomiest disks first, records survive restarts; v0.3.5 Nov 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant