You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement the repair sweep itself: on each RepairSchedule tick, send one CheckNeighborOp per currently-populated table entry, and manage the task's lifecycle.
Details
See docs/protocol/concurrent-insert.md, Sections 6.1 and 6.4, for the sweep algorithm and lifecycle requirements.
Files
src/node/base_node.rs — sweep loop spawned via tokio::spawn against a child of the node's IrrevocableContext; JoinHandle stored and aborted on shutdown (RAII, no orphaned task).
Acceptance Criteria
Sweep is unconditional per entry (per Section 6.1) — no local staleness pre-guessing.
Task is cancelled if the node's parent context is cancelled, and can be cancelled independently.
Tick interval is abstracted behind a schedule trait, not a literal tokio::time::sleep/interval call in the task body, with a test-controlled implementation enabling deterministic single-tick triggering.
Test: one tick sends the expected probes for a populated table.
Test: task aborts cleanly on shutdown with no residual state.
Activity