Skip to content

fix(sync): retain backoff after partial progress failures#1952

Draft
branarakic wants to merge 1 commit into
testnet-canaryfrom
codex/rfc64-progress-failure-backoff
Draft

fix(sync): retain backoff after partial progress failures#1952
branarakic wants to merge 1 commit into
testnet-canaryfrom
codex/rfc64-progress-failure-backoff

Conversation

@branarakic

Copy link
Copy Markdown
Contributor

Summary

  • preserve useful sync progress from mixed progress-and-failure rounds
  • retain and grow the ordinary per-peer retry backoff when that same round hits transport or integrity pressure
  • prevent transient connection-open events from replaying the full subscribed graph scope after only the base catch-up cooldown

Live evidence

A testnet edge peer repeatedly replayed its full subscribed-user graph fanout every 1-3 minutes. The round successfully integrated verified triples, then hit a graph-scoped durable authorization deadline. Progress accounting cleared the peer failure history, so the next transient connection-open bypassed exponential retry damping and repeated the full scan.

Correctness boundaries

  • clean progress still clears backoff
  • pure local backpressure behavior is unchanged
  • mixed progress plus a real failure records progress without marking the peer fresh and grows peer-scoped backoff
  • topology or protocol probe changes can still bypass stale backoff
  • no timing constants or deployment configuration change

Validation

  • git diff --check
  • focused sync-on-connect churn and retry tests: 2 files, 69 passed
  • agent build: TypeScript, type tests, package-root tests passed
  • full agent unit lane: 139 files, 1,789 passed, 5 skipped, 0 failed

Integration note

This is a standalone patch based on exact testnet-canary commit 1dba8f5e7b12680a267356dae9e5eb944248436a. Draft only; no node was restarted or deployed.

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