Closing connections nicely when DO server crashes
Closing connections nicely when DO server crashes
- Subject: Closing connections nicely when DO server crashes
- From: Gideon King <email@hidden>
- Date: Sat, 04 Aug 2012 16:41:47 +1000
Hi, I am trying to implement LinkBack in my application, and it creates a Distributed Objects connection to send the info to and fro.
It all works fine, but if the server application crashes, I get a crash in my application with this backtrace:
* thread #1: tid = 0x2203, 0x00007fff8aed5b3e CoreFoundation`___forwarding___ + 158, stop reason = EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)
frame #0: 0x00007fff8aed5b3e CoreFoundation`___forwarding___ + 158
frame #1: 0x00007fff8aed5a28 CoreFoundation`_CF_forwarding_prep_0 + 232
frame #2: 0x00007fff8809b8e1 Foundation`-[NSDistantObjectTableEntry dealloc] + 41
frame #3: 0x00007fff8ae5cf9a CoreFoundation`CFRelease + 170
frame #4: 0x00007fff8ae84770 CoreFoundation`-[__NSArrayM removeObjectAtIndex:] + 400
frame #5: 0x00007fff8aedb12f CoreFoundation`-[NSMutableArray removeObjectsInRange:] + 111
frame #6: 0x00007fff8aedb09f CoreFoundation`-[NSMutableArray removeObjectsAtIndexes:] + 527
frame #7: 0x00007fff880158f0 Foundation`invalidateConnection + 675
frame #8: 0x00007fff88015532 Foundation`-[NSConnection invalidate] + 945
frame #9: 0x00007fff880adedd Foundation`+[NSConnection _portInvalidated:] + 831
frame #10: 0x00007fff8ae99b8a CoreFoundation`_CFXNotificationPost + 2554
frame #11: 0x00007fff8802fa76 Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 64
frame #12: 0x00007fff88051237 Foundation`_NSPortDeathNotify + 80
frame #13: 0x00007fff8af4139a CoreFoundation`____CFMachPortChecker_block_invoke_0 + 202
frame #14: 0x00007fff912acf3d libdispatch.dylib`_dispatch_call_block_and_release + 15
frame #15: 0x00007fff912a90fa libdispatch.dylib`_dispatch_client_callout + 8
frame #16: 0x00007fff912ae104 libdispatch.dylib`_dispatch_main_queue_callback_4CF + 275
frame #17: 0x00007fff8ae8981e CoreFoundation`__CFRunLoopRun + 1614
frame #18: 0x00007fff8ae88dd2 CoreFoundation`CFRunLoopRunSpecific + 290
frame #19: 0x00007fff9296f774 HIToolbox`RunCurrentEventLoopInMode + 209
frame #20: 0x00007fff9296f512 HIToolbox`ReceiveNextEventCommon + 356
frame #21: 0x00007fff9296f3a3 HIToolbox`BlockUntilNextEventMatchingListInMode + 62
frame #22: 0x00007fff869e91d3 AppKit`_DPSNextEvent + 685
frame #23: 0x00007fff869e8a92 AppKit`-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128
frame #24: 0x00007fff869dfe33 AppKit`-[NSApplication run] + 517
frame #25: 0x00000001007acbff OmniAppKit`-[OAApplication run] + 127
frame #26: 0x00007fff86984886 AppKit`NSApplicationMain + 869
frame #27: 0x00000001000019d2 NovaMind5`main + 34 at main.m:11
frame #28: 0x00000001000019a4 NovaMind5`start + 52
Which in turn causes my application to crash. I have been doing similar tests in the other direction with OmniGraffle, and when I force quit my application, OmniGraffle will crash in the same way, so I'm pretty sure it's not something I'm doing in my code. If the client application crashes, everything is cleaned up nicely, but if the server application crashes, this crash results.
Is there some way I can make my application robust to a situation like this? I'm not really sure where to start with this...
Thanks
Gideon
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden