upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/sync/mod.rs
diff options
context:
space:
mode:
authorDanConwayDev <DanConwayDev@protonmail.com>2026-01-10 02:46:30 +0000
committerDanConwayDev <DanConwayDev@protonmail.com>2026-01-10 02:46:30 +0000
commit3d5c6102e39e881edf056dc69cdc0dcb9b6d281b (patch)
tree71d8ef86b0e29fc536a5bfb55d811d5b247c8f3d /src/sync/mod.rs
parent6dbe167a1c8f9a59538e76f6322424eee93994df (diff)
fix: document relay behavior in negentropy retry zero-event scenario
Add comprehensive comment explaining why some relays (azzamo.net, snort.social) return zero events during negentropy retry even when they have the events. Documents infinite loop prevention logic and suggests future REQ+EOSE fallback strategy.
Diffstat (limited to 'src/sync/mod.rs')
-rw-r--r--src/sync/mod.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/sync/mod.rs b/src/sync/mod.rs
index d8c2d4f..e2d55bd 100644
--- a/src/sync/mod.rs
+++ b/src/sync/mod.rs
@@ -851,6 +851,14 @@ impl SyncManager {
851 851
852 // Check if we made any progress (received ANY events we requested) 852 // Check if we made any progress (received ANY events we requested)
853 // If received_count is 0, relay returned nothing useful - abort retry 853 // If received_count is 0, relay returned nothing useful - abort retry
854 //
855 // NOTE: Some relays (e.g., azzamo.net, snort.social) have been observed
856 // returning zero events during negentropy retry even though manual queries
857 // (REQ by ID) show they DO have these events. This appears to be relay-
858 // specific behavior where the relay refuses to serve events via negentropy
859 // retry for unknown reasons (rate limiting, negentropy implementation bugs,
860 // or other internal logic). We abort here to prevent infinite loops, but
861 // future enhancement could fall back to REQ+EOSE when retry returns zero.
854 if retry_count > 0 && received_count == 0 { 862 if retry_count > 0 && received_count == 0 {
855 tracing::error!( 863 tracing::error!(
856 relay = %relay_url, 864 relay = %relay_url,