Opened 14 years ago

Closed 14 years ago

Last modified 14 years ago

#593 closed Bug (fixed)

1.00 and 1.01 freeze for 20 seconds or more

Reported by: charles Owned by: charles
Priority: High Milestone: 1.02
Component: libtransmission Version: 1.00
Severity: Major Keywords:
Cc:

Description

Attachments (1)

crashlog72124.txt (174.8 KB) - added by charles 14 years ago.
morpe's crashlog from the forums

Download all attachments as: .zip

Change History (12)

Changed 14 years ago by charles

morpe's crashlog from the forums

comment:1 Changed 14 years ago by charles

  • Owner set to charles
  • Severity changed from Normal to Major
  • Status changed from new to assigned

here's what I'm looking at that I think is relevant in crashlog72124.txt:

lines 11-14 say that the process froze for 19.21 seconds, in 76 steps

lines 41-58 say the GUI thread froze for those 76 steps waiting for tr_torrentStat() to get a mutex lock so it could safely populate the tr_stat struct.

lines 60-133 say the libtransmission thread isn't letting go of the mutext lock because it's using all that time creating the Allowed Set for the fastpeers extension. It appears there's a bug in that code because it shouldn't take 1/100th that long to generate that set.

If we can't fix the bug quickly, I recommend we disable the fastpeers extension for 1.01 so that this stops biting users.

comment:2 Changed 14 years ago by charles

test fix trunk r4526, 1.0x r4527

It looks like the problem might not be in the Allowed Set generation -- I compared our code to the reference implementation at bittorrent.org, and it looks okay -- but rather in generating a lot of allowed sets all at once when we connect to a lot of peers.

in r4526 and r4527 I've added "lazy" generation of the allowed sets. This should prevent the set from being generated for most peers (anyone with more than MAX_FAST_ALLOWED_COUNT pieces) and, for the peers that do need it, generation should be staggered out a bit rather than all at once.

comment:3 Changed 14 years ago by charles

  • Component changed from Transmission to libtransmission

comment:4 Changed 14 years ago by charles

  • Resolution set to fixed
  • Status changed from assigned to closed

Fix confirmed by the forum OP

comment:5 Changed 14 years ago by charles

  • Summary changed from 1.00 "frezed transmission 1.0" to 1.00 freezes for 20 seconds or more

comment:6 follow-up: Changed 14 years ago by persept

  • Resolution fixed deleted
  • Status changed from closed to reopened

I think this is somewhat the same issue, http://img244.imageshack.us/my.php?image=picture45sr5.png Sometimes the global up/down and all the per torrent up/down values will turn to zero for about 5-10 seconds, while my menu bar shows there is still data transfer, as well as the inspector showing traffic

comment:7 in reply to: ↑ 6 Changed 14 years ago by Waldorf

As what Persept says, i've been seeing this for some time now. However, I'm not sure wether there is actually any trafic going. All speed values will freeze when this happens however the global, and per torrent, speeds will jump to 0 after a sec.

I'm not sure wether this is related to the original bug posted here...

comment:8 Changed 14 years ago by charles

  • Resolution set to fixed
  • Status changed from reopened to closed

Did you just get as far as the word "freezes" and stop reading? The OP was talking about the entire application hanging, frozen, unresponsive, unclickable, etc ... not transfer speeds. We can talk about your issue, but not in this ticket.

Also: please attach pictures to the trac ticket, rather than posting links to imageshack. Thanks.

comment:9 Changed 14 years ago by Waldorf

  • Resolution fixed deleted
  • Status changed from closed to reopened

comment:10 Changed 14 years ago by charles

  • Resolution set to fixed
  • Status changed from reopened to closed

1.0x: r4649 trunk: r4648

Looks like the change in 1.01 caused the issue in that new thread.

comment:11 Changed 14 years ago by charles

  • Milestone changed from 1.01 to 1.02
  • Summary changed from 1.00 freezes for 20 seconds or more to 1.00 and 1.01 freeze for 20 seconds or more
Note: See TracTickets for help on using tickets.