Welcome to the MacNN Forums.

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

You are here: MacNN Forums > Our Archives > General Archives > Delicious Monster > CSI: Crash Signature Investigator

 
CSI: Crash Signature Investigator
Thread Tools
foodog
Fresh-Faced Recruit
Join Date: Jul 2006
Status: Offline
May 20, 2006, 09:40 PM
 
When any program crashes, it produces a crash report, which contains some information about your computer, most notably what it was doing when it crashed. If you look at the crash report, you'll see the type of error that caused the crash, and a list of threads followed by a numbered list of arcane commands, called a stack trace. One of these threads will say "Crashed," and its stack trace, together with the error name, could be considered your crash's signature.

Every crash has a signature, and the same crash on different computers will have basically the same signature. Theoretically, if you knew what to look for, you could get all CSI on your computer and know why it was crashing and maybe even fix it.

While crashes in Delicious Library are, honestly, quite rare, if you do crash, chances are you'll crash while loading something from Amazon, and that crash will have a signature very similar to this:

0 com.apple.CoreFoundation 0x907c7cf8 CFHash + 24
1 com.apple.CoreFoundation 0x907d4088 __CFSetFindBuckets2 + 148
2 com.apple.CoreFoundation 0x907d3bf8 CFSetAddValue + 220
3 com.apple.CoreFoundation 0x9081560c _inputStreamScanXMLName + 872
4 com.apple.CoreFoundation 0x90816230 parseTag + 52
5 com.apple.CoreFoundation 0x90816ca0 parseTagContent + 388
6 com.apple.CoreFoundation 0x908163f8 parseTag + 508
7 com.apple.CoreFoundation 0x90816ca0 parseTagContent + 388
8 com.apple.CoreFoundation 0x908163f8 parseTag + 508
9 com.apple.CoreFoundation 0x90816ca0 parseTagContent + 388
10 com.apple.CoreFoundation 0x908163f8 parseTag + 508
11 com.apple.CoreFoundation 0x90816ca0 parseTagContent + 388
12 com.apple.CoreFoundation 0x908163f8 parseTag + 508
13 com.apple.CoreFoundation 0x90814d04 parseXML + 300
14 com.apple.CoreFoundation 0x90814680 CFXMLParserParse + 444
15 com.apple.CoreFoundation 0x908500b8 CFXMLTreeCreateFromDataWithError + 100
16 com.delicious-monster.library 0x0008ce80 0x1000 + 573056
17 com.delicious-monster.library 0x0009871c 0x1000 + 620316
18 com.delicious-monster.library 0x0009319c 0x1000 + 598428
19 com.delicious-monster.library 0x00092e70 0x1000 + 597616
20 com.delicious-monster.library 0x000920cc 0x1000 + 594124
21 com.delicious-monster.library 0x0009988c 0x1000 + 624780
22 com.apple.Foundation 0x92932194 forkThreadForFunction + 108
23 libSystem.B.dylib 0x9002ba68 _pthread_body + 96

What does all that mean? Long story short, this is a bug in Apple's CoreFoundation XML parser, which Delicious Library uses to convert the raw data from Amazon into the items on your virtual shelves. Unfortunately, as this is in an Apple class, we can't really fix this, which is why it remains our most common crash.

The best option would be for us to use a different XML parser, but that means literally re-architecting our Amazon lookup engine. (This is not the sort of thing that happens in a point release, but is the sort of thing that will happen in Delicious Library 2.)

Some crashes are easier to fix, once we can track them down. If you're using an older version of Delicious Library, your most common crash is one that doesn't usually have any stack traces associated with it. Rather, the crash report is an almost completely blank page with the title "Exception thrown: NSArchiverArchiveInconsistency."

This crasher also had a non-crashing behavior, where something that was obviously on Amazon would nonetheless fail on lookup. Wil wrote a whole blog entry about this bug when we found it, which you can read for historical or educational purposes, but for now, if you're getting this, your best bet is to upgrade to the latest version of Delicious Library.

Other than the XML parser, crashers are so rare it's literally a three-way tie for second place.

The first has a signature that starts with this:
0 com.ioxperts.vdig.webcam.Logi 0x16cd9ab8 dyld_stub_exp + 381436064
1 com.ioxperts.vdig.webcam.Logi 0x16cd99d8 dyld_stub_exp + 381435840
2 com.ioxperts.vdig.webcam.Logi 0x16cd56fc dyld_stub_exp + 381418724
3 com.ioxperts.vdig.webcam.Logi 0x16cdb104 dyld_stub_exp + 381441772
4 com.ioxperts.vdig.webcam.Logi 0x16cf546c dyld_stub_exp + 381549140
5 com.ioxperts.vdig.webcam.Logi 0x16cd5dc0 dyld_stub_exp + 381420456
6 com.ioxperts.vdig.webcam.Logi 0x16ce6ea8 dyld_stub_exp + 381490320
7 com.ioxperts.vdig.webcam.Logi 0x16ce7c30 dyld_stub_exp + 381493784
8 com.ioxperts.vdig.webcam.Logi 0x16ce78e0 dyld_stub_exp + 381492936
9 com.ioxperts.vdig.webcam.Logi 0x16cffc50 VideoDigitizerEntry + 68

This is a crash in a third-party USB web cam driver by a company called IOExperts. If you're using this driver, you're prone to this crash.

The second starts with a statement like this:
NSInvalidUnarchiveOperationException - *** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (BXLayout)

This happens when you are trying to import a Booxter library. We don't know what a BXLayout is, so we don't know why some Booxter libraries crash like this, and the way Booxter stores its data is such that we can't do anything about this on our end. If you're getting this crash and you figure out what in your Booxter library you can change to make it not crash on import, we'd like to know. Otherwise, your best bet is to export your Booxter library into a tab-delimited text file and import that into Delicious Library.

The third is really more like a crash cluster. There are a bunch of different signatures, but they all point to the same thing: the video channel. You don't even need to read crash reports to know that if you're using a video capture device, be it an EyeTV plugged in your USB port or a full-blown Kona video capture card, this will conflict with Delicious Library and crash.

After those three, the remaining crashers are basically random, but that speaks to the importance of sending those crash reports along. While we don't usually respond to them, we do read and file every single one of them. After time, patterns form, investigations are launched, bugs are found and hopefully fixed.

Then, there's a second, entirely different, class of crasher. That is, a crasher you get all the time, but nobody else gets. If you're crashing a lot, that's probably what it is. We can help you with those, but we need some information from you. Namely, we need you to mess with it enough to figure out what you do to make it crash. Ideally, you should be able to crash it at will. Then, send us three things.

1) A detailed narrative of what you do to make it crash. The key word here is detailed. Sometimes what you think is happening is only peripheral to what's really happening, so knowing everything really helps.
2) Any Delicious Library crash logs. You can find these in your home folder under ~/Library/Logs/CrashReporter/
3) The most recent console log. This is found in the main folder under /Library/Logs/Console/501/ and should be named console.log.

Any crasher is frustrating, but with knowledge, science, and luck most crashers can be tracked down and sent to that big bug report in the sky.

Mike Lee, Major-domo
Delicious Monster Software, LLC
     
Tesseract_
Fresh-Faced Recruit
Join Date: Jul 2006
Status: Offline
Jul 11, 2006, 11:56 PM
 
I'm getting a variant of the XML parser crash quite frequently when importing items. The weird thing is that even though I get the Apple crash reporter window telling me that DL has crashed, DL itself keeps running and is seemingly OK apart from using all available CPU time. I'm using DL 1.6.2 and OS X 10.4.7. Here's the relevant backtrace:

Thread 12 Crashed:
0 com.apple.CoreFoundation 0x907c81a4 __CFStringHash + 996
1 com.apple.CoreFoundation 0x907d9ca8 __CFSetFindBuckets1b + 140
2 com.apple.CoreFoundation 0x90808404 CFSetGetValueIfPresent + 212
3 com.apple.CoreFoundation 0x908155e8 _inputStreamScanXMLName + 836
4 com.apple.CoreFoundation 0x90817120 parseCloseTag + 92
5 com.apple.CoreFoundation 0x9081640c parseTag + 528
6 com.apple.CoreFoundation 0x90816ca0 parseTagContent + 388
7 com.apple.CoreFoundation 0x908163f8 parseTag + 508
8 com.apple.CoreFoundation 0x90816ca0 parseTagContent + 388
9 com.apple.CoreFoundation 0x908163f8 parseTag + 508
10 com.apple.CoreFoundation 0x90816ca0 parseTagContent + 388
11 com.apple.CoreFoundation 0x908163f8 parseTag + 508
12 com.apple.CoreFoundation 0x90816ca0 parseTagContent + 388
13 com.apple.CoreFoundation 0x908163f8 parseTag + 508
14 com.apple.CoreFoundation 0x90816ca0 parseTagContent + 388
15 com.apple.CoreFoundation 0x908163f8 parseTag + 508
16 com.apple.CoreFoundation 0x90816ca0 parseTagContent + 388
17 com.apple.CoreFoundation 0x908163f8 parseTag + 508
18 com.apple.CoreFoundation 0x90814d04 parseXML + 300
19 com.apple.CoreFoundation 0x90814680 CFXMLParserParse + 444
20 com.apple.CoreFoundation 0x908500b8 CFXMLTreeCreateFromDataWithError + 100
21 com.delicious-monster.library 0x0008ce80 0x1000 + 573056
22 com.delicious-monster.library 0x0009871c 0x1000 + 620316
23 com.delicious-monster.library 0x00093178 0x1000 + 598392
24 com.delicious-monster.library 0x00092e70 0x1000 + 597616
25 com.delicious-monster.library 0x000920cc 0x1000 + 594124
26 com.delicious-monster.library 0x0009988c 0x1000 + 624780
27 com.apple.Foundation 0x92940194 forkThreadForFunction + 108
28 libSystem.B.dylib 0x9002bc28 _pthread_body + 96

If, when I launch DL, this problem had occurred last time I used it, it will sometimes (but not always) offer to send feedback about the crash.

I also have the problem where an item is looked up and there is only one matching choice, but when I click the "+" button it says "lookup failed". Trying again a few times usually gets it to work. Is this supposed to have been fixed?
     
 
   
Thread Tools
 
Forum Links
Forum Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Top
Privacy Policy
All times are GMT -4. The time now is 05:46 AM.
All contents of these forums © 1995-2017 MacNN. All rights reserved.
Branding + Design: www.gesamtbild.com
vBulletin v.3.8.8 © 2000-2017, Jelsoft Enterprises Ltd.,