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/

Reply via email to