[launchd-dev] launchd tool crashing

Damien Sorresso dsorresso at apple.com
Fri Aug 28 13:30:09 PDT 2009


NSConnection is a Foundation API. You should ask the Cocoa list.
--  
Damien Sorresso
BSD Engineering
Apple Inc.

On Aug 28, 2009, at 12:21 PM, Steve Gehrman wrote:
> 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
>
> _______________________________________________
> launchd-dev mailing list
> launchd-dev at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/launchd-dev


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2425 bytes
Desc: not available
URL: <http://lists.macosforge.org/pipermail/launchd-dev/attachments/20090828/95ad7b90/attachment.bin>


More information about the launchd-dev mailing list