Adium

Opened 11 years ago

Closed 11 years ago

#10866 closed crash (fixed)

Crash when searching in the Transcript Viewer

Reported by: Robby Owned by: nobody
Milestone: Adium 1.3.1 Component: Adium Core
Version: Severity: normal
Keywords: Cc:
Patch Status:

Description (last modified by Robert)

I'm getting crashes when searching in the Transcript Viewer and then clicking one of the results. Happens with the 1.3 release as well as well as in the 1.3 branch ([24990]). I can reproduce it every time, no matter whether I'm online or not.
This is on 10.4.11 as you all know. :P

Attachments (3)

Transcript Viewer Crash.txt (4.7 KB) - added by Robert 11 years ago.
Crash at [25050].txt (5.3 KB) - added by Robert 11 years ago.
Debug log at [25051].txt (490 bytes) - added by Robert 11 years ago.
Debug logging before crash with [25051]

Download all attachments as: .zip

Change History (14)

comment:1 Changed 11 years ago by Evan Schoenberg

And can you reproduce it in 1.2.7?

comment:2 Changed 11 years ago by Robert

Description: modified (diff)

Changed 11 years ago by Robert

Attachment: Transcript Viewer Crash.txt added

comment:3 Changed 11 years ago by Robert

I search transcripts a lot and I already did so when I still used 1.2.x but I never experienced the crash until today. Do you want me download and test 1.2.7 nonetheless?

comment:4 Changed 11 years ago by Evan Schoenberg

Well, is known in the code:

        for (i = 0; ((i < foundCount) && (searchID == activeSearchID)) ; i++) {
			SKDocumentRef	document = foundDocRefs[i];
			CFURLRef		url = SKDocumentCopyURL(document);
			/*
			 * Nasty implementation note: As of 10.4.7 and all previous versions, a path longer than 1024 bytes (PATH_MAX)
			 * will cause CFURLCopyFileSystemPath() to crash [ultimately in CFGetAllocator()].  This is the case for all
			 * Cocoa applications...
			 */
			CFStringRef		logPath = CFURLCopyFileSystemPath(url, kCFURLPOSIXPathStyle);

so it'd be good to know if this is, in fact, the same known issue.

comment:5 Changed 11 years ago by Robert

Description: modified (diff)

comment:6 Changed 11 years ago by Ryan Govostes

In [25016], evands changed the code above to use -[NSURL path] instead of CFURLCopyFileSystemPath. However, in 10.5 the former simply wraps a call to the latter. It's basically:

CFURLRef url = [self _cfurl];
CFStringRef str = CFURLCopyFileSystemPath(...);
CFMakeCollectable(str);

comment:7 Changed 11 years ago by Evan Schoenberg

But is that the case on 10.4, as well?

comment:8 Changed 11 years ago by Robert

It appears that, since that change, searching doesn't work at all anymore. Entering any search term doesn't return any result.
This is probably a problem exclusive to 10.4.

comment:9 Changed 11 years ago by Robert

Update:
Searching works on and off. I got a crash again in [25050]. I think it's the same, will attach it though for you to make sure.

Changed 11 years ago by Robert

Attachment: Crash at [25050].txt added

comment:10 Changed 11 years ago by Thomas

This is what I got in my console:

** (process:1564): CRITICAL **: purple_presence_set_status_active: assertion `status != NULL' failed

** (process:1564): CRITICAL **: purple_presence_set_status_active: assertion `status != NULL' failed
2008-08-30 01:35:33.628 Adium[1564] SourceArray is 1543; rows is 1537
2008-08-30 01:35:37.652 Adium[1564] SourceArray is 5591; rows is 5580
2008-08-30 01:35:43.535 Adium[1564] *** Assertion failure in -[AIAlternatingRowTableView arrayOfSelectedItemsUsingSourceArray:], /Users/Ashe/adium-1.3/Frameworks/AIUtilities Framework/Source/AITableViewAdditions.m:26
2008-08-30 01:35:43.535 Adium[1564] *** NSRunLoop ignoring exception 'Invalid parameter not satisfying: [sourceArray count] >= [self numberOfRows]' that raised during posting of delayed perform with target 19fd4ca0 and selector 'tableViewSelectionDidChangeDelayed'

(process:1564): GLib-CRITICAL **: g_queue_pop_head: assertion `queue != NULL' failed

(process:1564): GLib-CRITICAL **: g_hash_table_remove_all: assertion `hash_table != NULL' failed

(process:1564): GLib-CRITICAL **: g_queue_pop_head: assertion `queue != NULL' failed

(process:1564): GLib-CRITICAL **: g_hash_table_remove_all: assertion `hash_table != NULL' failed

The first time I opened the transcript viewer and searched it was successful. After I cleared the search window and typed in a new search that's when I received 0 results. I closed the viewer opened it again and searched, and it worked just fine. I'm using [25050] on 10.4.11

Changed 11 years ago by Robert

Attachment: Debug log at [25051].txt added

Debug logging before crash with [25051]

comment:11 Changed 11 years ago by Robert

Resolution: fixed
Status: newclosed

No more crashing since [25052] (trunk) and [25053] (1.3 branch)! :)
Ashe, if searching continues not to work please file a new ticket.

Note: See TracTickets for help on using tickets.