diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2026-01-10 02:46:30 +0000 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2026-01-10 02:46:30 +0000 |
| commit | 3d5c6102e39e881edf056dc69cdc0dcb9b6d281b (patch) | |
| tree | 71d8ef86b0e29fc536a5bfb55d811d5b247c8f3d /src/sync/mod.rs | |
| parent | 6dbe167a1c8f9a59538e76f6322424eee93994df (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.rs | 8 |
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, |