On 3 Nov 2011, at 17:25, Tomeu Vizoso wrote: > On Wed, Nov 2, 2011 at 08:46, Arjan Molenaar <gap...@gmail.com> wrote: >> Hi, >> >> I'm working on porting my projects to Gtk3 and PyGobject3. However, I run >> into a nasty issue. >> >> I subclass Gtk.DrawingArea in order to provide view functionality for a >> Gaphas canvas. For this I override some signals. Here's a minimal example >> that crashes on OS X: > > Well, but the example is not so minimal because uses gaphas.GtkView. > Do you think you could reproduce it without importing external code? >
Whoops, I should have put a little more effort in preparing the example. Without the Gaphas dependency the code looks like this: from gi.repository import Gtk class MyDrawingArea(Gtk.DrawingArea): def do_realize(self): Gtk.DrawingArea.do_realize(self) def main(): win = Gtk.Window() view = MyDrawingArea() win.add(view) win.show() view.show() win.connect('destroy', Gtk.main_quit) Gtk.main() if __name__ == '__main__': main() But the results are the same, SIGBUS error with an identical stack trace: 0 ??? 0x00007fbac94d82e0 0 + 140440217944800 1 libgobject-2.0.0.dylib 0x000000010505135c signal_emit_unlocked_R + 1276 2 libgobject-2.0.0.dylib 0x000000010505238b g_signal_emit_valist + 1627 3 libgobject-2.0.0.dylib 0x00000001050529c4 g_signal_emit + 116 4 libgtk-3.0.dylib 0x0000000105926576 gtk_widget_realize + 230 5 libgtk-3.0.dylib 0x000000010592a221 gtk_widget_map + 49 6 libgobject-2.0.0.dylib 0x0000000105041ad2 g_closure_invoke + 290 7 libgobject-2.0.0.dylib 0x000000010505135c signal_emit_unlocked_R + 1276 8 libgobject-2.0.0.dylib 0x000000010505238b g_signal_emit_valist + 1627 9 libgobject-2.0.0.dylib 0x00000001050529c4 g_signal_emit + 116 10 libgtk-3.0.dylib 0x0000000105929e4a gtk_widget_show + 202 11 libffi.5.dylib 0x0000000105038404 ffi_call_unix64 + 76 12 libffi.5.dylib 0x000000010503831d ffi_call + 717 13 libgirepository-1.0.1.dylib 0x0000000104ff9ed2 _g_callable_info_invoke + 1058 14 libgirepository-1.0.1.dylib 0x0000000104ffb0d6 g_function_info_invoke + 326 15 _gi.so 0x0000000104fddfa4 _wrap_g_callable_info_invoke + 2420 16 org.python.python 0x0000000104d4d5d8 PyEval_EvalFrameEx + 16006 17 org.python.python 0x0000000104d4fcd8 PyEval_EvalCodeEx + 1996 18 org.python.python 0x0000000104d4fe6c 0x104cc5000 + 568940 19 org.python.python 0x0000000104d4ce0a PyEval_EvalFrameEx + 14008 20 org.python.python 0x0000000104d4fdf7 0x104cc5000 + 568823 21 org.python.python 0x0000000104d4ce0a PyEval_EvalFrameEx + 14008 22 org.python.python 0x0000000104d4fcd8 PyEval_EvalCodeEx + 1996 23 org.python.python 0x0000000104d4fd4d PyEval_EvalCode + 54 24 org.python.python 0x0000000104d6708f 0x104cc5000 + 663695 25 org.python.python 0x0000000104d6714f PyRun_FileExFlags + 157 26 org.python.python 0x0000000104d682a2 PyRun_SimpleFileExFlags + 392 27 org.python.python 0x0000000104d782af Py_Main + 2715 28 org.python.python 0x0000000104cbde88 0x104cbd000 + 3720 Regards, Arjan > Regards, > > Tomeu > >> from gi.repository import Gtk >> from gaphas import Canvas, GtkView, View >> >> >> class MyDrawingArea(Gtk.DrawingArea): >> >> def do_realize(self): >> Gtk.DrawingArea.do_realize(self) >> >> def main(): >> win = Gtk.Window() >> view = GtkView() >> win.add(view) >> win.show() >> view.show() >> win.connect('destroy', Gtk.main_quit) >> >> Gtk.main() >> >> if __name__ == '__main__': >> main() >> >> >> Below I passed the information that OS X provides after a crash. Notice the >> topmost stack frame. It points to an address that is quite bigger than any >> of the other frames. >> >> Is this some simple 32 bit vs 64 bit incompatibility? >> >> I compiled the sources using Homebrew >> (https://github.com/amolenaar/homebrew/tree/pygtk). As far as I know there >> is no Gtk3/PyGobject3 configuration in jhbuild yet. >> >> I want to look into this issue myself, only I need a starting point. >> >> Any suggestions? >> >> Regards, >> >> Arjan >> >> >> >> >> Process: Python [46884] >> Path: >> /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python >> Identifier: Python >> Version: ??? (???) >> Code Type: X86-64 (Native) >> Parent Process: bash [41954] >> >> Date/Time: 2011-11-02 07:12:09.064 +0100 >> OS Version: Mac OS X 10.7.2 (11C74) >> Report Version: 9 >> >> Interval Since Last Report: 146762 sec >> Crashes Since Last Report: 10 >> Per-App Crashes Since Last Report: 10 >> Anonymous UUID: 683FB58C-57DC-4A8D-BECB-528046EC9C0C >> >> Crashed Thread: 0 Dispatch queue: com.apple.main-thread >> >> Exception Type: EXC_BAD_ACCESS (SIGBUS) >> Exception Codes: KERN_PROTECTION_FAILURE at 0x00007fc25404d810 >> >> VM Regions Near 0x7fc25404d810: >> MALLOC_SMALL 00007fc253800000-00007fc254000000 [ 8192K] rw-/rwx >> SM=PRV >> --> MALLOC_TINY 00007fc254000000-00007fc254100000 [ 1024K] >> rw-/rwx SM=COW >> STACK GUARD 00007fff5d663000-00007fff60e63000 [ 56.0M] ---/rwx >> SM=NUL stack guard for thread 0 >> >> Application Specific Information: >> objc[46884]: garbage collection is OFF >> >> Thread 0 Crashed:: Dispatch queue: com.apple.main-thread >> 0 ??? 0x00007fc25404d810 0 + >> 140472609986576 >> 1 libgobject-2.0.0.dylib 0x0000000101df3597 >> signal_emit_unlocked_R + 1239 >> 2 libgobject-2.0.0.dylib 0x0000000101df4474 >> g_signal_emit_valist + 1460 >> 3 libgobject-2.0.0.dylib 0x0000000101df4a34 g_signal_emit + >> 116 >> 4 libgtk-3.0.dylib 0x00000001026539ae >> gtk_widget_size_allocate + 766 >> 5 libgtk-3.0.dylib 0x000000010266549a >> gtk_window_size_allocate + 250 >> 6 libgobject-2.0.0.dylib 0x0000000101de7e9b g_closure_invoke >> + 299 >> 7 libgobject-2.0.0.dylib 0x0000000101df3597 >> signal_emit_unlocked_R + 1239 >> 8 libgobject-2.0.0.dylib 0x0000000101df4474 >> g_signal_emit_valist + 1460 >> 9 libgobject-2.0.0.dylib 0x0000000101df4a34 g_signal_emit + >> 116 >> 10 libgtk-3.0.dylib 0x00000001026539ae >> gtk_widget_size_allocate + 766 >> 11 libgtk-3.0.dylib 0x00000001024cab68 >> gtk_container_resize_children + 40 >> 12 libgtk-3.0.dylib 0x0000000102666345 >> gtk_window_check_resize + 1781 >> 13 libgobject-2.0.0.dylib 0x0000000101de7e9b g_closure_invoke >> + 299 >> 14 libgobject-2.0.0.dylib 0x0000000101df3a75 >> signal_emit_unlocked_R + 2485 >> 15 libgobject-2.0.0.dylib 0x0000000101df4474 >> g_signal_emit_valist + 1460 >> 16 libgobject-2.0.0.dylib 0x0000000101df4a34 g_signal_emit + >> 116 >> 17 libgtk-3.0.dylib 0x00000001024cabcf >> gtk_container_idle_sizer + 79 >> 18 libgdk-3.0.dylib 0x0000000102899155 >> gdk_threads_dispatch + 53 >> 19 libglib-2.0.0.dylib 0x0000000101e52585 >> g_main_context_dispatch + 661 >> 20 libglib-2.0.0.dylib 0x0000000101e546d7 >> g_main_context_iterate + 983 >> 21 libglib-2.0.0.dylib 0x0000000101e55aa2 g_main_loop_run + >> 530 >> 22 libgtk-3.0.dylib 0x000000010254762d gtk_main + 77 >> 23 libffi.5.dylib 0x0000000101ddf404 ffi_call_unix64 + >> 76 >> 24 libffi.5.dylib 0x0000000101ddf31d ffi_call + 717 >> 25 libgirepository-1.0.1.dylib 0x0000000101da0ed2 >> _g_callable_info_invoke + 1058 >> 26 libgirepository-1.0.1.dylib 0x0000000101da20d6 >> g_function_info_invoke + 326 >> 27 _gi.so 0x0000000101d84fa4 >> _wrap_g_callable_info_invoke + 2420 >> 28 org.python.python 0x0000000101af65d8 >> PyEval_EvalFrameEx + 16006 >> 29 org.python.python 0x0000000101af8cd8 PyEval_EvalCodeEx >> + 1996 >> 30 org.python.python 0x0000000101af8e6c 0x101a6e000 + >> 568940 >> 31 org.python.python 0x0000000101af5e0a >> PyEval_EvalFrameEx + 14008 >> 32 org.python.python 0x0000000101af8df7 0x101a6e000 + >> 568823 >> 33 org.python.python 0x0000000101af5e0a >> PyEval_EvalFrameEx + 14008 >> 34 org.python.python 0x0000000101af8cd8 PyEval_EvalCodeEx >> + 1996 >> 35 org.python.python 0x0000000101af8d4d PyEval_EvalCode + >> 54 >> 36 org.python.python 0x0000000101b1008f 0x101a6e000 + >> 663695 >> 37 org.python.python 0x0000000101b1014f PyRun_FileExFlags >> + 157 >> 38 org.python.python 0x0000000101b112a2 >> PyRun_SimpleFileExFlags + 392 >> 39 org.python.python 0x0000000101b212af Py_Main + 2715 >> 40 org.python.python 0x0000000101a63e88 0x101a63000 + 3720 >> >> _______________________________________________ >> pygtk mailing list pygtk@daa.com.au >> http://www.daa.com.au/mailman/listinfo/pygtk >> Read the PyGTK FAQ: http://faq.pygtk.org/ >> _______________________________________________ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/