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
{{ message }}
Repository navigation
Replication send loop: each send-range repair resends every relayed origin's retained history from its session-start floor #1072
#815 repairs a stopped send range by rebuilding it in place. The rebuild tracks one named origin's own start bound. Any other origin sharing the merged range (for example a relayed origin) restarts from its session-start floor, or from zero when it is absent from startByLog (core starts a log missing from startByLog at zero). Each granted repair therefore resends that origin's retained history.
Repairs are paced at one per 30 s for a torn tail and one per 30 min for a mid-log break, and receivers absorb the duplicates, so this wastes bandwidth and CPU rather than losing data. The cost has not been measured. It grows with the relayed origin's retained history and write rate while a torn tail persists.
A three-node relay regression test (origin A relayed through B to C, tear on B's session serving C) should land with it; a QA scenario for that shape is queued on #815.
Activity
kriszyp commentedon Oct 26, 2026
Moot after Recover a replication send leg stopped at a torn transaction-log frame (harper-pro#815) (merged as 3889753): the in-place send-range rebuild that resent relayed origins' history was removed. Recovery now reconnects, and the peer's durable and per-origin cursors position the new range.
— Claude Opus 5.5