quicksilver / Quicksilver

Quicksilver Project Source
http://qsapp.com
Apache License 2.0
2.74k stars 285 forks source link

iTunes Module Crash #702

Closed pjrobertson closed 12 years ago

pjrobertson commented 12 years ago

Not entirely sure what I was doing, but it appears QS crashed due to an NSInternalInconsistencyException

Attached (useful bits of) console log: P.S. ß65 (3921) is ß65 with #699 and #697 merged

Process:         Quicksilver [6060]
Path:            /Applications/Quicksilver.app/Contents/MacOS/Quicksilver
Identifier:      com.blacktree.Quicksilver
Version:         ß65 (3921)
Code Type:       X86 (Native)
Parent Process:  launchd [164]

Date/Time:       2012-02-18 15:00:06.657 +0000
OS Version:      Mac OS X 10.7.3 (11D50)
Report Version:  9

Crashed Thread:  9

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000

Application Specific Information:
objc[6060]: garbage collection is OFF
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '*** -[SBProxyByClass setName:]: object has not been added to a container yet; selector not recognized [self = 0x821e370]'
*** Call stack at first throw:
(
0   CoreFoundation                      0x9c2e6b67 __raiseError + 231
1   libobjc.A.dylib                     0x9c982149 objc_exception_throw + 155
2   CoreFoundation                      0x9c24e369 +[NSException raise:format:arguments:] + 137
3   CoreFoundation                      0x9c24e2d9 +[NSException raise:format:] + 57
4   ScriptingBridge                     0x922b4058 -[SBProxy doesNotRecognizeSelector:] + 93
5   CoreFoundation                      0x9c238da9 ___forwarding___ + 457
6   CoreFoundation                      0x9c238b72 _CF_forwarding_prep_0 + 50
7   iTunes Module                       0x007e63a0 QSiTunesDJ + 26548
)

Thread 0:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib          0x9c3a9c22 mach_msg_trap + 10
1   libsystem_kernel.dylib          0x9c3a91f6 mach_msg + 70
2   com.apple.CoreFoundation        0x9c1d3c7a __CFRunLoopServiceMachPort + 170
3   com.apple.CoreFoundation        0x9c1dcda4 __CFRunLoopRun + 1428
4   com.apple.CoreFoundation        0x9c1dc47c CFRunLoopRunSpecific + 332
5   com.apple.CoreFoundation        0x9c1dc328 CFRunLoopRunInMode + 120
6   com.apple.HIToolbox             0x9382f17f RunCurrentEventLoopInMode + 318
7   com.apple.HIToolbox             0x938364e7 ReceiveNextEventCommon + 381
8   com.apple.HIToolbox             0x93836356 BlockUntilNextEventMatchingListInMode + 88
9   com.apple.AppKit                0x91751a9c _DPSNextEvent + 678
10  com.apple.AppKit                0x91751306 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 113
11  com.apple.AppKit                0x9174d675 -[NSApplication run] + 911
12  com.apple.AppKit                0x919e1261 NSApplicationMain + 1054
13  com.blacktree.Quicksilver       0x0000287d 0x1000 + 6269

Thread 1:: Dispatch queue: com.apple.libdispatch-manager
0   libsystem_kernel.dylib          0x9c3ac90a kevent + 10
1   libdispatch.dylib               0x95b06c58 _dispatch_mgr_invoke + 969
2   libdispatch.dylib               0x95b056a7 _dispatch_mgr_thread + 53

Thread 9 Crashed:
0   com.apple.CoreFoundation        0x9c2e6a57 ___TERMINATING_DUE_TO_UNCAUGHT_EXCEPTION___ + 7
1   libobjc.A.dylib                 0x9c982149 objc_exception_throw + 155
2   com.apple.CoreFoundation        0x9c24e369 +[NSException raise:format:arguments:] + 137
3   com.apple.CoreFoundation        0x9c24e2d9 +[NSException raise:format:] + 57
4   com.apple.ScriptingBridge       0x922b4058 -[SBProxy doesNotRecognizeSelector:] + 93
5   com.apple.CoreFoundation        0x9c238da9 ___forwarding___ + 457
6   com.apple.CoreFoundation        0x9c238b72 _CF_forwarding_prep_0 + 50
7   com.blacktree.Quicksilver.QSiTunesPlugIn    0x007e63a0 0x7df000 + 29600

Thread 9 crashed with X86 Thread State (32-bit):
eax: 0x00000001  ebx: 0xad1af544  ecx: 0x00000001  edx: 0x00000000
edi: 0x082fa310  esi: 0x9c9820bf  ebp: 0xb01842a8  esp: 0xb01842a0
ss: 0x0000001f  efl: 0x00000286  eip: 0x9c2e6a57   cs: 0x00000017
ds: 0x0000001f   es: 0x0000001f   fs: 0x0000001f   gs: 0x00000037
cr2: 0x00744000
Logical CPU: 0
skurfer commented 12 years ago

Interesting. There’s only one Scripting Bridge related call to setName: and it’s immediately after the object should have been created. Those “object has not been added to a container yet” errors are pretty common with Scripting Bridge (believe me), but in my experience, it’s consistent. It either works or it doesn’t.

Any ideas how we can reproduce it? If not, it’s going to be pretty hard to narrow down.

pjrobertson commented 12 years ago

Unfortunately I'm really not sure how it happened. I'll try and reproduce it, but I didn't even realise QS had crashed until about 2-3 hours after it happened, so it's not going to be easy.

skurfer commented 12 years ago

Understood. Tell me this: Did you already have a playlist named “Quicksilver” when this happened? If no, did you have one after?

pjrobertson commented 12 years ago

I'm pretty sure I had one before, and I do have one after. I'll keep trying, but it's looking unlikely that I'll be able to reproduce. Feel free to close this until I can get something more concrete.

On 19 February 2012 13:21, Rob McBroom < reply@reply.github.com

wrote:

Understood. Tell me this: Did you already have a playlist named Quicksilver when this happened? If no, did you have one after?


Reply to this email directly or view it on GitHub: https://github.com/quicksilver/Quicksilver/issues/702#issuecomment-4041848

skurfer commented 12 years ago

I'm pretty sure I had one before, and I do have one after.

I suspect you did, in which case that setName: call should never be reached. Here’s my theory. objectWithName: didn’t get the playlist for some reason, so the plug-in tried to create a new one. Either the new empty playlist didn’t get created, or it did, but when trying to set the name, a playlist with that name already existed, so it complained.

Either way, the underlying problem is that the playlist wasn’t found, even though it exists. This is one of those weird things that can probably be fixed by calling get on the thing early on, but I’m hesitant to to make changes without being able to test whether or not they make a difference.

skurfer commented 12 years ago

Have to been able to reproduce this?

pjrobertson commented 12 years ago

Nope. I will keep monitoring it, and will re-open the issue accordingly