Sounds like you're inadvertently depending on the order of loading somehow. Are 
you setting up all your bindings in awakeFromNib:? Or do you have any bindings 
(set in IB) which refer to something the controller object may have to load 
first? Just a thought.

On Oct 3, 2011, at 8:29 PM, Seth Willits wrote:

> 
> I've been receiving reports of this rare but persistent crash over the past 
> few years, and I've never been able to reproduce it or figure out what's 
> causing it.
> 
> They often look exactly like the stack trace below, but sometimes it's 
> different, happening at a different time. The thing they all have in common 
> is it's a crash when notifying observers in a binding when loading a nib.
> 
> 
> 
> Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
> Exception Codes: KERN_INVALID_ADDRESS at 0x0000000008000028
> Crashed Thread:  0  Dispatch queue: com.apple.main-thread
> 
> Application Specific Information:
> objc_msgSend() selector name: respondsToSelector:
> 
> 
>       objc_msgSend_vtable5 + 16
>       NSKeyValueNotifyObserver + 76
>       -[NSObject(NSKeyValueObservingPrivate) 
> _notifyObserversForKeyPath:change:] + 991
>       -[NSController _notifyObserversForKeyPath:change:] + 218
>       -[NSObjectController setContent:] + 369
>       -[AQConnTabController awakeFromNib] + 976
>       -[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:] + 1515
>       -[NSNib instantiateNibWithExternalNameTable:] + 564
>       -[NSNib instantiateNibWithOwner:topLevelObjects:] + 233
>       -[NSViewController loadView] + 180
>       -[NSViewController view] + 38
>       -[AQConnTabController initWithNibName:bundle:windowController:] + 801
>       -[AQConnWindowController newTab:] + 56
>       -[NSWindowController _windowDidLoad] + 538
>       -[NSWindowController window] + 112
>       -[NSWindowController showWindow:] + 47
>       -[AQController newConnectionWindow:] + 72
>       -[AQController applicationOpenUntitledFile:] + 18
>       -[NSApplication _doOpenUntitled] + 211
>       -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] 
> + 101
>       -[NSAppleEventManager 
> dispatchRawAppleEvent:withRawReply:handlerRefCon:] + 360
>       _NSAppleEventManagerGenericHandler + 114
>       aeDispatchAppleEvent(AEDesc const*, AEDesc*, unsigned int, unsigned 
> char*) + 162
>       dispatchEventAndSendReply(AEDesc const*, AEDesc*) + 32
>       aeProcessAppleEvent + 210
>       AEProcessAppleEvent + 48
>       _DPSNextEvent + 1191
>       -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 155
>       -[NSApplication run] + 395
>       NSApplicationMain + 364
>       start + 52
> 
> 
> 
> In this case [AQConnTabController awakeFromNib] calls setContent: on a object 
> controller that AQConnTabController creates. The weird thing about that 
> leading to a crash is that the object controller isn't hooked up to 
> _anything_ yet.  I'm certain it has nothing to do with that specific object 
> controller. Other crashes have a similar trace at the top:
> 
> 
>       objc_msgSend_vtable5 + 24
>       NSKeyValueNotifyObserver + 61
>       -[NSObject(NSKeyValueObservingPrivate) 
> _notifyObserversForKeyPath:change:] + 756
>       -[NSController _notifyObserversForKeyPath:change:] + 206
>       -[NSObjectController setContent:] + 395
>       -[NSObjectDetailBinder refreshDetailContent] + 230
>       -[NSObject(NSKeyValueBindingCreation) 
> bind:toObject:withKeyPath:options:] + 591
>       -[NSIBObjectData nibInstantiateWithOwner:topLevelObjects:] + 1079
>       -[NSNib instantiateNibWithExternalNameTable:] + 606
>       -[NSNib instantiateNibWithOwner:topLevelObjects:] + 251
>       -[NSViewController loadView] + 186
> 
> 
> The thing they all have in common is that a nib is being loaded, which does 
> some stuff with bindings, and then there's a crash. The bindings aren't even 
> related in terms of what's connected to what. 
> 
> 
> What I believe is going on, is that somehow a deallocated object is still an 
> observer somewhere, and at any point when the KVO system needs to notify 
> somebody of any KVO message, it crashes when it tries to send a message to 
> that deallocated object. The trouble is, I have _no_ clue how to find this. 
> I've tried for endless hours over the years scouring my code for any whiff of 
> something being done wrong and I've never found it. I swear the code 
> everywhere I've looked is fine, the analyzer doesn't point out any mistakes, 
> Valgrind is fine, I'm confident I don't have any memory smashers etc.... What 
> can I do to figure this out? Anybody have any tricky ideas?
> 
> I'm hoping somebody has seen this stack trace before and knows what kind of 
> subtle bug causes it. :\
> 
> 
> 
> Thanks,
> 
> 
> --
> Seth Willits
> 
> 
> 
> _______________________________________________
> 
> Cocoa-dev mailing list ([email protected])
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/wsquires%40satx.rr.com
> 
> This email sent to [email protected]

_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to