On 3 Nov 2011, at 17:25, Tomeu Vizoso wrote:
> On Wed, Nov 2, 2011 at 08:46, Arjan Molenaar <[email protected]> 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 [email protected]
>> http://www.daa.com.au/mailman/listinfo/pygtk
>> Read the PyGTK FAQ: http://faq.pygtk.org/
>>
_______________________________________________
pygtk mailing list [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/