slskd: a peer that has queued us is abandoned after 10 minutes, whatever its queue position #275

Open
opened 2026-09-27 01:58:36 +00:00 by yonlu · 1 comment
Owner

Since #263 a grab is abandoned when no bytes move for 10 minutes. On Soulseek the usual reason no bytes move is that the peer has queued us — Queued, Remotely — and a peer at position 2 is worth waiting for while one at position 400 is not. The timer cannot tell them apart.

slskd exposes the position: Transfer.placeInQueue, refreshed by GET /api/v0/transfers/downloads/{username}/{id}/position, which asks the peer.

Direction

While a wanted file is remotely queued, ask its position periodically. Abandon at once when the position is beyond what could clear in reasonable time; treat a position that has improved as progress, so the stall clock restarts; keep an overall ceiling so a queue that moves one place an hour does not hold the grab all day. The fallback from #263 then moves to the next peer.

Since #263 a grab is abandoned when no bytes move for 10 minutes. On Soulseek the usual reason no bytes move is that the peer has queued us — `Queued, Remotely` — and a peer at position 2 is worth waiting for while one at position 400 is not. The timer cannot tell them apart. slskd exposes the position: `Transfer.placeInQueue`, refreshed by `GET /api/v0/transfers/downloads/{username}/{id}/position`, which asks the peer. ## Direction While a wanted file is remotely queued, ask its position periodically. Abandon at once when the position is beyond what could clear in reasonable time; treat a position that has improved as progress, so the stall clock restarts; keep an overall ceiling so a queue that moves one place an hour does not hold the grab all day. The fallback from #263 then moves to the next peer.
yonlu added the Area/DownloadsPlatform/Desktop
Priority
Medium
3
Kind/Enhancement
labels 2026-09-27 01:58:36 +00:00
yonlu self-assigned this 2026-09-27 01:58:54 +00:00
yonlu added the
Status
In Progress
label 2026-09-27 01:58:54 +00:00
Author
Owner

Batch branch batch/274-276-slskd with #274-#276, one PR. See the issue body for the approach.

Batch branch batch/274-276-slskd with #274-#276, one PR. See the issue body for the approach.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: yonlu/yellowjacket#275