Opened 11 years ago

Closed 11 years ago

#3937 closed Bug (fixed)

inactive webseeds are listed as active

Reported by: User294 Owned by: jordan
Priority: Low Milestone:
Component: Transmission Version: 2.13+
Severity: Minor Keywords:
Cc:

Description

To reproduce:

Try to use torrent with non-working web seeds. Example torrent attached.

Result:

GTK client lists torrent as active - "downloading from 3 of 3 connected peers". However, no any download happens but no any (web seed related) errors or statuses given either.

Expected:

Either download progresses and then some data should be obtained, or there should be some indication that web seed does not works. It's not a good idea to show status like if there is success and download will work when there is some failure actually and it never completes. For example it could be good to mark non-working web seeds with red color and/or or so like this happens for trackers.

Attachments (1)

Full Moon Archives - Full Moon Archives -- Jamendo - MP3 VBR 192k - 2009.07.09 [www.jamendo.com].torrent (12.2 KB) - added by User294 11 years ago.
Sample torrent with dead (?) web seeds.

Download all attachments as: .zip

Change History (3)

comment:1 Changed 11 years ago by jordan

  • Milestone None Set deleted
  • Owner set to jordan
  • Status changed from new to assigned

Thanks for spotting this!

comment:2 Changed 11 years ago by jordan

  • Resolution set to fixed
  • Status changed from assigned to closed
  • Summary changed from WebSeed: looks like web seed fails but this not reflected anywhere. to inactive webseeds are listed as active

r11754 webseed.c:

#3937 "inactive webseeds are listed as active" -- fixed.

This is caused by libtransmission using tr_webseedIsActive() in two ways: (1) webseed.c uses it to know if there are any pending requests, and (2) tr_torrentStat() uses it to set tr_stat.webseedsSendingToUs.

Having a queued task isn't enough to be "active" in use (2) -- it needs to know if the webseed is actually sending data. These two uses should be split into separate functions.

Note: See TracTickets for help on using tickets.