Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#2805 closed Bug (worksforme)

Hang in FileOutlineView

Reported by: Tali Owned by: livings124
Priority: Normal Milestone: None Set
Component: Mac Client Version: 1.76
Severity: Normal Keywords:
Cc:

Description

well, my Mac OSX Transmission GUI hung with 100% CPU usage. I could trigger this bug by going to the info window of the torrent, going to the files tab and then opening and closing a directory (with these triangular arrows). This only happened with one directory, other directories worked and were shown correctly. This directory contained some files with high priority which were not yet downloaded and one subdirectory with small files set to low priority but which were already downloaded completely. Otherwise that problematic directory should not be special in any way.

Only the GUI stops but in the background it is still working (downloading/verifying the torrent still works). It stops right after drawing the triangular arrow in the "collapsed" state, but the directory contents are still shown but not updated any more. It seems to hang inside [Torrent checkForFiles:], at least I could not step out of it, it just keeps looping over the indexes.

I collected some traces with versions 1.76, 1.81, 1.82 and a self-compiled build from Subversion r10008. You can get them at http://tali.admingilde.org/share/Transm ... ile.tar.gz My System is an Apple MacBook? with OS X 10.6.2.

Attachments (2)

Analyse von „Transmission“ R10008-1.txt (12.0 KB) - added by Tali 12 years ago.
Analyse von „Transmission“ R10008-2.txt (11.1 KB) - added by Tali 12 years ago.

Download all attachments as: .zip

Change History (25)

comment:2 follow-up: Changed 12 years ago by livings124

I'm not able to unarchive that file. It says I'm not permitted.

comment:3 in reply to: ↑ 2 Changed 12 years ago by Tali

Replying to livings124:

I'm not able to unarchive that file. It says I'm not permitted.

Hmm, works here? Were you able to download the tar.gz? (MD5 is cffcf278f243ab3e2b79774c37027b60) Maybe you tried to also restore username/permissions which does not work on your system. But that is only a warning. Should I attach the contents here?

comment:4 Changed 12 years ago by livings124

Yes, attach the contents here in code blocks.

comment:5 Changed 12 years ago by charles

  • Version changed from 1.76+ to 1.76

comment:6 Changed 12 years ago by Tali

I just updated to r10052 and can still reproduce this problem. Th e torrent is finished now but I still get the hang when I open and close my magic directory in the file list.

I'm not at all familiar with Objective-C but if I interpret the assembler right then then the [indexSet indexGreaterThanIndex: index] call (Torrent.m:1337) returns 0 because indexSet is 0.

comment:7 Changed 12 years ago by livings124

I sent you a message earlier on the forums requesting more information that you have not replied to. Your analysis of the code is incorrect - that code is how it should be (it returns NSNotFound when empty).

comment:8 Changed 12 years ago by Tali

What information do you need? I'm happy to provide more.

The last comment was not based on code analysis, but the result of a debug session. The code loopes forever in checkForFiles /because/ index stays 0. This is not because of a wrong indexGreaterThanIndex implementation but because the indexSet itself is 0. I couldn't find out yet why I got a 0 pointer here.

comment:9 follow-up: Changed 12 years ago by livings124

Can you try a nightly build and see what happens? http://transmission.xpjets.com/

comment:10 in reply to: ↑ 9 Changed 12 years ago by Tali

I'm now running r10067 and it triggers the assertion you added:

01.02.10 20:33:09 Transmission[21998] * Assertion failure in -[Torrent checkForFiles:], /Users/martin/src/Transmission/macosx/Torrent.m:1336[[BR]] 01.02.10 20:33:09 Transmission[21998] indexSet must not be nil

With that assertion the GUI no longer freezes completely but just for a short moment (up to about half a second).

comment:11 Changed 12 years ago by livings124

OK, now we're getting some where. Is there a crash log to go with it?

comment:12 Changed 12 years ago by livings124

Tali: ping

comment:13 Changed 12 years ago by Tali

With r10127 I get the following assertion:

07.02.10 10:57:53 Transmission[24964] * Assertion failure in -drawRow:clipRect:?, /Users/martin/src/Transmission/macosx/FileOutlineView.m:187 07.02.10 10:57:53 Transmission[24964] indexSet must not be nil - temp

comment:14 follow-up: Changed 12 years ago by livings124

I can't replicate this and can't see how this can happen with the current code. Can you remove the transfer, readd is, and see what happens when you try to trigger the bug?

comment:15 in reply to: ↑ 14 Changed 12 years ago by Tali

Well, I'd only want to do this if we are sure that it actually helps us find the bug. If I can't reproduce it any more then I guess we don't have a chance to actually track it down.

Where does Transmission store its persistent information about the transfers? Maybe that got corrupt somehow?

comment:17 Changed 12 years ago by Tali

This error is reproducible even after removing the torrent and adding it again.

comment:18 Changed 12 years ago by livings124

What about after dumping all the config files, restarting, and adding the transfer?

comment:19 Changed 12 years ago by livings124

Tali: ping

comment:20 Changed 12 years ago by livings124

  • Resolution set to worksforme
  • Status changed from new to closed

I cannot replicate this, the code does not shed light on the issue, no one else has reported a similar issue, and Tali has stopped responding. Please reopen if more information is available.

comment:21 Changed 12 years ago by Tali

Is there anything more I can do to help tracking down this issue?

comment:22 Changed 12 years ago by livings124

What about after dumping all the config files, restarting, and adding the transfer?

comment:23 Changed 12 years ago by Tali

I already did this (see http://trac.transmissionbt.com/ticket/2805#comment:17 above).

I also sent you a link to a copy of my config files via a PN in the forum - hope that helps to reproduce the problem.

Note: See TracTickets for help on using tickets.