From 800ef4faf27abebbce8a553763d6e60662fde997 Mon Sep 17 00:00:00 2001 From: tv Date: Sun, 8 Nov 2026 09:49:26 +0000 Subject: sync: a member refused as a whole, synced with again once it changed document A node refusing a member as a whole sent it nothing, and lifted that only when a change of the member's was taken again. But a member that dropped what was refused (REFUSALS) starts its sync sessions over, and a fresh session sends no changes until the other side answers: the two waited for each other, and the member stayed refused. The refusal now notes the member's run and epoch_seq when it began; a member with another document since (it dropped what was refused, or rejoined) is synced with again. --- docs/access.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'docs/access.md') diff --git a/docs/access.md b/docs/access.md index f533c5f..43cd326 100644 --- a/docs/access.md +++ b/docs/access.md @@ -259,8 +259,9 @@ it its own) is refused as a whole: every node sends it nothing more, as all it c from then on builds on what was refused, and logs it once. It shows in `GET /peers` (`refused`, with the change and why), in `/admin/stats` (`sync.refusedPeers`) and on the dashboard. A node that only passed a refused change on isn't: the committer is, whoever -brought it. It lasts until a change of the member's is taken again (it rejoined and -writes anew), or the epoch changes; forgetting or banning it is the operators'. +brought it. It lasts until the member has another document (it dropped what was +refused, or rejoined), a change of its is taken again, or the epoch changes; forgetting +or banning it is the operators'. A node takes a change the others refuse only if it didn't judge it as they do: under a policy it didn't know yet (it receives without judging then), or before the policy -- cgit v1.3.1