Skip to content

Conversation

@sublimator
Copy link
Contributor

The function was returning early without incrementing seq_++. OverlayImpl uses this sequence to identify/invalidate a cached TMManifests message which is exchanged with peers on connection. Depending on network size, startup sequencing, and topology, this could cause syncing issues.

The function was returning early without incrementing seq_++.
OverlayImpl uses this sequence to identify/invalidate a cached
TMManifests message which is exchanged with peers on connection.
Depending on network size, startup sequencing, and topology, this
could cause syncing issues.
@sublimator sublimator requested a review from a team as a code owner November 20, 2025 09:18
@bthomee bthomee requested review from vlntb and vvysokikh1 November 21, 2025 16:14

// Something has changed. Keep track of it.
seq_++;

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From: Xahau/xahaud#631

OverlayImpl::getManifestsMessage() caches manifest messages and only rebuilds
them when ManifestCache::sequence() changes. When accepting a new manifest,
the function returned early without incrementing seq_, causing the cache to
never invalidate. This meant peers were exchanging stale lists.

Now seq_++ is called for both new manifests and updates, ensuring the overlay
layer detects changes and sends complete validator lists to connecting peers.

I think this has been masked all these years by validator list (e.g. https://vl.ripple.com/) usage which bootstraps manifests

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