Skip to content

Fix tracker announce stalls with active scrapes#837

Open
szab100 wants to merge 1 commit into
rakshasa:masterfrom
szab100:fix_stale_announcements
Open

Fix tracker announce stalls with active scrapes#837
szab100 wants to merge 1 commit into
rakshasa:masterfrom
szab100:fix_stale_announcements

Conversation

@szab100

@szab100 szab100 commented Jul 16, 2026

Copy link
Copy Markdown

Fixes #836

rTorrent stops announcing to HTTP trackers while seeding, causing the tracker to eventually mark the torrent as stopped. Experienced through Socks5 proxy (socks5h://) via VPN.

Changes:

  • src/tracker/tracker_controller.cc: Use has_active_not_scrape() in receive_success() so the next announce is scheduled as soon as no announce is in flight, regardless of active scrapes
  • src/net/curl_stack.cc/h: Add ensure_timeout_scheduled() to guarantee the multi-socket timeout task is armed while any transfer is active, and call it from start_get(), receive_timeout(), and after socket events
  • test/torrent/test_tracker_controller.cc: Add regression test test_success_with_active_scrape_reschedules_timeout to verify announce timeout is queued when scrapes are active

Backwards compatibility:
No behavior change for healthy trackers or connections. Stalled HTTP requests through proxy/VPN now time out and retry on schedule, and announces are no longer dropped because of an active scrape.

Announcements work perfectly with the fix.

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.

Tracker announces stop with active scrapes

1 participant