continuous sync serial dial pass lets offline peers delay every theory #18
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Continuous sync awaits every theory/peer dial serially. An unreachable peer in one old theory therefore delays sync attempts for unrelated active theories.
ELEPHANT_SYNC_INTERVALis effectively "sleep after the entire serial pass", not the maximum retry interval for each peer.Reproduction from the two-machine run
The daemon was configured with
ELEPHANT_SYNC_INTERVAL=30. Relevant log times were:Subsequent
rc-liveattempts occurred at approximately 94-96 second intervals, despite the configured 30-second interval. The same pattern continued for the duration of the run.Cause
src/p2p/sync.rs::dial_onceloops over every local theory and roster peer and awaitsdial_sync,open_bi, and the whole sync session inline.run_with_endpointthen sleeps forintervalbefore invoking the next full pass. One or more transport timeouts are added directly to every peer's retry cadence.Impact
Expected / acceptance criteria
(theory, peer)independently, or execute a snapshot of due peers with bounded concurrency.Environment
Elephant 0.1.2, macOS, two-machine FLF run. The serial structure is also present on current
main(130a910).