[Pyobjc-dev] strange problem using NSWorkspace/NSTask to start PyObjC apps
Brought to you by:
ronaldoussoren
From: Robert K. <rob...@gm...> - 2011-11-21 06:21:23
|
Hey all, I'm running into a strange problem with PyObjC-based apps. The situation: I'm working on a .mailbundle (a plug-in for Apple Mail). From that plug-in, I want to start a PyObjC-based application. No matter what, this fails: the application gets a SIGSEGV (I'll post some more information below). I've used pretty much all methods of starting the application (NSWorkspace, NSTask, even executing "open -a APP" from the Python subprocess module), and it keeps failing. Of course, the app works without problems when started manually. Starting the app from a Python-shell using [NSWorkspace launchApplication:] works, too. Just not from within the plug-in. Even the simplest 'app' fails: -snip- from Foundation import * class MyTestClass(NSObject): pass -snip- Same thing: SIGSEGV. Starting other apps (like Safari) isn't a problem, so it doesn't seem to be some sandbox-type blocking. Below is the relevant part of the crashlog. All I've been able to find out is that objc_msgSend_vtable3 is an Objective-C runtime shortcut for getting 'self'. It smells like a memory issue, but I'd be grateful if anyone could help me out. -snip- Process: App1 [797] Path: /Users/USER/*/App1.app/Contents/MacOS/App1 Identifier: name.klep.app1 Version: 0.0.0 (0.0.0) Code Type: X86-64 (Native) Parent Process: launchd [301] Date/Time: 2011-11-21 06:49:06.394 +0100 OS Version: Mac OS X 10.7.2 (11C74) Report Version: 9 Crashed Thread: 0 Dispatch queue: com.apple.main-thread Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x00007fc2dac50c60 VM Regions Near 0x7fc2dac50c60: MALLOC_TINY 0000000104e00000-0000000104f00000 [ 1024K] rw-/rwx SM=PRV --> STACK GUARD 00007fff5bc00000-00007fff5f400000 [ 56.0M] ---/rwx SM=NUL stack guard for thread 0 Application Specific Information: objc_msgSend() selector name: self objc[797]: garbage collection is OFF Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 libobjc.A.dylib 0x00007fff8c84c0cd objc_msgSend_vtable3 + 13 1 _objc.so 0x0000000101ba5a71 pythonify_c_value + 573 2 _objc.so 0x0000000101b9d92e 0x101b80000 + 121134 3 org.python.python 0x0000000101a87b58 PyEval_EvalFrameEx + 13318 4 org.python.python 0x0000000101a8acd8 PyEval_EvalCodeEx + 1996 5 org.python.python 0x0000000101a8ae6c PyEval_EvalCode + 341 6 org.python.python 0x0000000101a87e0a PyEval_EvalFrameEx + 14008 7 org.python.python 0x0000000101a8acd8 PyEval_EvalCodeEx + 1996 8 org.python.python 0x0000000101a28abf PyClassMethod_New + 1378 9 org.python.python 0x0000000101a07d32 PyObject_Call + 97 10 org.python.python 0x0000000101a83c40 PyEval_CallObjectWithKeywords + 180 11 _objc.so 0x0000000101ba0bd3 0x101b80000 + 134099 12 org.python.python 0x0000000101a4cafa PyType_Modified + 891 13 org.python.python 0x0000000101a07d32 PyObject_Call + 97 14 org.python.python 0x0000000101a07eed PyObject_CallFunctionObjArgs + 178 15 org.python.python 0x0000000101a8576b PyEval_EvalFrameEx + 4121 16 org.python.python 0x0000000101a8acd8 PyEval_EvalCodeEx + 1996 17 org.python.python 0x0000000101a8ad4d PyEval_EvalCode + 54 18 org.python.python 0x0000000101aa208f Py_CompileString + 62 19 org.python.python 0x0000000101aa214f PyRun_FileExFlags + 157 20 org.python.python 0x0000000101a801f6 _PyBuiltin_Init + 4630 21 org.python.python 0x0000000101a87d77 PyEval_EvalFrameEx + 13861 22 org.python.python 0x0000000101a8acd8 PyEval_EvalCodeEx + 1996 23 org.python.python 0x0000000101a8ae6c PyEval_EvalCode + 341 24 org.python.python 0x0000000101a87e0a PyEval_EvalFrameEx + 14008 25 org.python.python 0x0000000101a8acd8 PyEval_EvalCodeEx + 1996 26 org.python.python 0x0000000101a8ad4d PyEval_EvalCode + 54 27 org.python.python 0x0000000101aa208f Py_CompileString + 62 28 org.python.python 0x0000000101aa214f PyRun_FileExFlags + 157 29 org.python.python 0x0000000101aa32a2 PyRun_SimpleFileExFlags + 392 30 name.klep.app1 0x0000000100004476 start + 12854 31 name.klep.app1 0x0000000100004a96 main + 1465 32 name.klep.app1 0x0000000100001274 start + 52 -snip- -- robert |