[launchd-dev] launchd tool crashing
Steve Gehrman
sgehrman at mac.com
Fri Aug 28 12:21:49 PDT 2009
I got a launchd tool working using ServiceManagement framework. It
runs as root.
The tool is setup to run for a few seconds after the last request and
it will keep alive as long as requests are coming in using MachServices.
When idle, the tool exits.
If I try to run the tool a second time, it crashes. I found out the
problem was on the application side I was using an NSConnection that
connected to the tool that has already died. I didn't get any
NSConnectionDied notifications or anything, so there's no way for me
to know on the application side when the connection has gone down. If
I try to use that connection, I get crashes, and I'm afraid there
since this launchd stuff is so crash prone that it won't be reliable.
I'm also sending an object "byRef" using DO from the application to my
tool so the tool can talk back to my application. I'm using the same
connection I get from connectionWithRegisteredName.
My application does this to connect to the tool:
NSConnection* connection = [NSConnection connectionWithRegisteredName:
[self hostServerName] host:nil];
Do I need to invalidate the NSConnection before the tool dies? I
think I just delete it.
The crash is 100% repeatable. If I don't reuse the NSConnection on
the app side for the next incoming request, it works fine. Should I
always tear down the NSConnection and get it fresh for every call I
make to my tool?
// the crash
Process: com.cocoatech.pathfinder.SMHelper [36457]
Path: /Library/PrivilegedHelperTools/
com.cocoatech.pathfinder.SMHelper
Identifier: com.cocoatech.pathfinder.SMHelper
Version: ??? (???)
Code Type: X86 (Native)
Parent Process: launchd [1]
Date/Time: 2009-08-28 00:25:47.754 -0700
OS Version: Mac OS X 10.6 (10A432)
Report Version: 6
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Application Specific Information:
*** Terminating app due to uncaught exception
'NSInternalInconsistencyException', reason: '*** -[NSConcretePortCoder
decodeInvocation]: no local target'
*** Call stack at first throw:
(
0 CoreFoundation 0x9447b58a __raiseError + 410
1 libobjc.A.dylib 0x94304f49
objc_exception_throw + 56
2 CoreFoundation 0x9447b2b8 +[NSException
raise:format:arguments:] + 136
3 CoreFoundation 0x9447b22a +[NSException
raise:format:] + 58
4 Foundation 0x9352619f -
[NSConcretePortCoder decodeInvocation] + 130
5 Foundation 0x935207ae -
[NSConcretePortCoder decodeRetainedObject] + 794
6 Foundation 0x934ff805 _NSWalkData2 + 1098
7 Foundation 0x93525aa9 -[NSConnection
handleRequest:sequence:] + 76
8 Foundation 0x9351fdfe -[NSConnection
handlePortCoder:] + 951
9 Foundation 0x9351fa2d -
[NSConcretePortCoder dispatch] + 160
10 Foundation 0x93507039 __NSFireMachPort +
325
11 CoreFoundation 0x943eadf2
__CFMachPortPerform + 338
12 CoreFoundation 0x943eab8e
__CFRunLoopDoSource1 + 366
13 CoreFoundation 0x943e69e9 __CFRunLoopRun +
5561
14 CoreFoundation 0x943e4d34
CFRunLoopRunSpecific + 452
15 CoreFoundation 0x943e4b61 CFRunLoopRunInMode
+ 97
16 Foundation 0x934df3e4 -[NSRunLoop
(NSRunLoop) runMode:beforeDate:] + 279
17 Foundation 0x935343c8 -[NSRunLoop
(NSRunLoop) runUntilDate:] + 79
18 com.cocoatech.pathfinder.SMHelper 0x00002bb6 -
[NTSMHelperToolConnection(Private) startRunloop] + 198
19 com.cocoatech.pathfinder.SMHelper 0x00002633 +
[NTSMHelperToolConnection connect] + 179
20 com.cocoatech.pathfinder.SMHelper 0x00002556 main + 102
21 com.cocoatech.pathfinder.SMHelper 0x000024e5 start + 53
)
Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 com.apple.CoreFoundation 0x944c5b07
___TERMINATING_DUE_TO_UNCAUGHT_EXCEPTION___ + 7
1 libobjc.A.dylib 0x94304f49 objc_exception_throw + 56
2 com.apple.CoreFoundation 0x943e4fbc CFRunLoopRunSpecific +
1100
3 com.apple.CoreFoundation 0x943e4b61 CFRunLoopRunInMode + 97
4 com.apple.Foundation 0x934df3e4 -[NSRunLoop(NSRunLoop)
runMode:beforeDate:] + 279
5 com.apple.Foundation 0x935343c8 -[NSRunLoop(NSRunLoop)
runUntilDate:] + 79
6 ...coatech.pathfinder.SMHelper 0x00002bb6 -
[NTSMHelperToolConnection(Private) startRunloop] + 198
7 ...coatech.pathfinder.SMHelper 0x00002633 +
[NTSMHelperToolConnection connect] + 179
8 ...coatech.pathfinder.SMHelper 0x00002556 main + 102
(NTSMHelperTool.m:19)
9 ...coatech.pathfinder.SMHelper 0x000024e5 start + 53
Thread 1: Dispatch queue: com.apple.libdispatch-manager
0 libSystem.B.dylib 0x9634b10a kevent + 10
1 libSystem.B.dylib 0x9634b824 _dispatch_mgr_invoke + 215
2 libSystem.B.dylib 0x9634ace1 _dispatch_queue_invoke +
163
3 libSystem.B.dylib 0x9634aa86 _dispatch_worker_thread2
+ 234
4 libSystem.B.dylib 0x9634a511 _pthread_wqthread + 390
5 libSystem.B.dylib 0x9634a356 start_wqthread + 30
Thread 2:
0 libSystem.B.dylib 0x9634a1a2 __workq_kernreturn + 10
1 libSystem.B.dylib 0x9634a738 _pthread_wqthread + 941
2 libSystem.B.dylib 0x9634a356 start_wqthread + 30
Thread 0 crashed with X86 Thread State (32-bit):
eax: 0x00000000 ebx: 0x94304f25 ecx: 0xa06ef500 edx: 0x0000003b
edi: 0xa046eab0 esi: 0x00201a90 ebp: 0xbffffb18 esp: 0xbffffb00
ss: 0x0000001f efl: 0x00000286 eip: 0x944c5b07 cs: 0x00000017
ds: 0x0000001f es: 0x0000001f fs: 0x00000000 gs: 0x00000037
cr2: 0x00032000
Binary Images:
0x1000 - 0x3ff7 +com.cocoatech.pathfinder.SMHelper ??? (???)
<361D2609-7597-AD42-0EFC-50122CD7183B> /Library/PrivilegedHelperTools/
com.cocoatech.pathfinder.SMHelper
0x8fe00000 - 0x8fe4162b dyld 132.1 (???) <211AF0DD-42D9-79C8-
BB6A-1F4BEEF4B4AB> /usr/lib/dyld
0x90003000 - 0x90083feb com.apple.SearchKit 1.3.0 (1.3.0) <9E18AEA5-
F4B4-8BE5-EEA9-818FC4F46FD9> /System/Library/Frameworks/
CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/
Versions/A/SearchKit
0x90206000 - 0x9022eff7 libxslt.1.dylib ??? (???) <769EF4B2-C1AD-73D5-
AAAD-1564DAEA77AF> /usr/lib/libxslt.1.dylib
0x90388000 - 0x90425ff3 com.apple.LaunchServices 360.3 (360.3)
<C8590D53-E46A-F58A-7CF2-03A8159D8569> /System/Library/Frameworks/
CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/
Versions/A/LaunchServices
0x90426000 - 0x90688ff3 com.apple.security 6.0 (36910) <F045B57C-054F-
F06F-EF7E-EABEC2700274> /System/Library/Frameworks/Security.framework/
Versions/A/Security
0x90d12000 - 0x90d4fff7 com.apple.SystemConfiguration 1.10 (1.10)
<897AEEAF-CF5D-2843-C33B-31A0A7C98A6A> /System/Library/Frameworks/
SystemConfiguration.framework/Versions/A/SystemConfiguration
0x91118000 - 0x91121ff7 com.apple.DiskArbitration 2.3 (2.3) <E9C40767-
DA6A-6CCB-8B00-2D5706753000> /System/Library/Frameworks/
DiskArbitration.framework/Versions/A/DiskArbitration
0x91508000 - 0x91609fe7 libxml2.2.dylib ??? (???)
<C242A74D-280A-90C3-3F79-891624AA45D2> /usr/lib/libxml2.2.dylib
0x91cc0000 - 0x91d06ff7 libauto.dylib ??? (???) <FAB17F30-A28B-
E33D-6E21-C7119C9C83ED> /usr/lib/libauto.dylib
0x91d54000 - 0x91ed6fe7 libicucore.A.dylib ??? (???) <FBB66376-
CBA9-8149-A1AA-10AB8578C3B3> /usr/lib/libicucore.A.dylib
0x91ff5000 - 0x92028ff7 com.apple.AE 496 (496) <B638FDD4-7322-F0E4-
ACEB-777D8A1399E1> /System/Library/Frameworks/CoreServices.framework/
Versions/A/Frameworks/AE.framework/Versions/A/AE
0x92e58000 - 0x92f11fe7 libsqlite3.dylib ??? (???)
<16CEF8E8-8C9A-94CD-EF5D-05477844C005> /usr/lib/libsqlite3.dylib
0x9306d000 - 0x9307aff7 com.apple.NetFS 3.2 (3.2) <E6FD80B0-0238-0C42-
A3EC-EBDEC107A1C3> /System/Library/Frameworks/NetFS.framework/Versions/
A/NetFS
0x9348f000 - 0x936ffffb com.apple.Foundation 6.6 (751)
<A61B645E-1A15-5BCA-3043-C8AB85C6AD30> /System/Library/Frameworks/
Foundation.framework/Versions/C/Foundation
0x9383d000 - 0x938e4fe7 com.apple.CFNetwork 454.4 (454.4)
<7C563385-9893-3B48-8607-5BC81DA2C4CF> /System/Library/Frameworks/
CoreServices.framework/Versions/A/Frameworks/CFNetwork.framework/
Versions/A/CFNetwork
0x93a2f000 - 0x93a3bff7 libkxld.dylib ??? (???)
<152C8DBB-0149-5827-3240-E57CA85CFE5F> /usr/lib/system/libkxld.dylib
0x93e68000 - 0x93e68ff7 com.apple.CoreServices 44 (44)
<AC35D112-5FB9-9C8C-6189-5F5945072375> /System/Library/Frameworks/
CoreServices.framework/Versions/A/CoreServices
0x94038000 - 0x94092ff7 com.apple.framework.IOKit 2.0 (???)
<7618DDEC-2E3B-9C6E-FDC9-15169E24B4FB> /System/Library/Frameworks/
IOKit.framework/Versions/A/IOKit
0x942fb000 - 0x943a8fe7 libobjc.A.dylib ??? (???) <410DD065-A18F-
F054-0457-65525F4D1039> /usr/lib/libobjc.A.dylib
0x943a9000 - 0x94520fef com.apple.CoreFoundation 6.6 (550)
<193E33D6-2E92-3452-773B-60A1A9CCC573> /System/Library/Frameworks/
CoreFoundation.framework/Versions/A/CoreFoundation
0x94760000 - 0x94774fe7 libbsm.0.dylib ??? (???) <14CB053A-7C47-96DA-
E415-0906BA1B78C9> /usr/lib/libbsm.0.dylib
0x95f48000 - 0x96267fe7 com.apple.CoreServices.CarbonCore 859.1
(859.1) <2E72AF56-4BE6-294A-7372-19C360688B8B> /System/Library/
Frameworks/CoreServices.framework/Versions/A/Frameworks/
CarbonCore.framework/Versions/A/CarbonCore
0x962d0000 - 0x962defe7 libz.1.dylib ??? (???) <7B7A02AB-
DA99-6180-880E-D28E4F9AA8EB> /usr/lib/libz.1.dylib
0x962df000 - 0x96323fe7 com.apple.Metadata 10.6.0 (507.1)
<CBD1B22B-5F10-C784-03A2-35106B97DF3F> /System/Library/Frameworks/
CoreServices.framework/Versions/A/Frameworks/Metadata.framework/
Versions/A/Metadata
0x96324000 - 0x964c8feb libSystem.B.dylib ??? (???) <068CC3F2-F867-
A231-A16C-CC01C29A9816> /usr/lib/libSystem.B.dylib
0x9688a000 - 0x968f4fe7 libstdc++.6.dylib ??? (???) <411D87F4-
B7E1-44EB-F201-F8B4F9227213> /usr/lib/libstdc++.6.dylib
0x969d4000 - 0x969d7fe7 libmathCommon.A.dylib ??? (???)
<1622A54F-1A98-2CBE-B6A4-2122981A500E> /usr/lib/system/
libmathCommon.A.dylib
0x97343000 - 0x97369fff com.apple.DictionaryServices 1.1 (1.1)
<07694B30-56A9-5C98-B8BC-DA0628715FA8> /System/Library/Frameworks/
CoreServices.framework/Versions/A/Frameworks/
DictionaryServices.framework/Versions/A/DictionaryServices
0x98c75000 - 0x98d3ffef com.apple.CoreServices.OSServices 352 (352)
<D9F21CA4-EED0-705F-8F3C-F1322D114B52> /System/Library/Frameworks/
CoreServices.framework/Versions/A/Frameworks/OSServices.framework/
Versions/A/OSServices
0xffff0000 - 0xffff1fff libSystem.B.dylib ??? (???) <068CC3F2-F867-
A231-A16C-CC01C29A9816> /usr/lib/libSystem.B.dylib
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/launchd-dev/attachments/20090828/fb2cc51c/attachment-0001.html>
More information about the launchd-dev
mailing list