logo       

Pygtk2 and Vte segfault: msg#00161

gnome.gtk+.python

Subject: Pygtk2 and Vte segfault

Hi list,

I'm playing with pygtk2 and the gnome terminal emulator widget vte (its
python bindings) and I stumble upon a fully reproduceable segfault.
I basically append a terminal to a container, and afterwards I need to
"move" the terminal to a different container.
Going through the old archives of pygtk where this question has come up,
it's been stated that a remove() of the widget from the old container
and an add() on the new one should suffice. As

I'm fairly positive that this is a vte fault, but before whining on
bugzilla about it, I wanted to know if I'm doing something fundamentally
wrong from the python side.

I attach the test-case that segfaults (note that whenever I move _any_
other widget that is not a vte terminal everything is fine).
Below is the segfault I get.

So any tips from the pygtk folks, before I stare at vte's code?

thanks,
Michele

$ gdb --args python /home/michele/segfault.py
GNU gdb 6.3-debian
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-linux"...(no debugging symbols found)
Using host libthread_db library "/usr/lib/debug/libthread_db.so.1".

(gdb) run
Starting program: /usr/bin/python /home/michele/segfault.py
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 11745)]
Here we go BOOM
Info about Table <gtk.Table object (GtkTable) at 0xb73cc2d4> (parent is
<gtk.VBox object (GtkVBox) at 0xb73cc2ac>)
Child <vte.Terminal object (VteTerminal) at 0xb73cc284> has parent <gtk.Table
object (GtkTable) at 0xb73cc2d4>
Child <vte.Terminal object (VteTerminal) at 0xb73cc25c> has parent <gtk.Table
object (GtkTable) at 0xb73cc2d4>
Here we go BOOM

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 11745)]
0xb730bb6c in _vte_draw_set_text_font () from /usr/lib/libvte.so.4
(gdb) bt
#0 0xb730bb6c in _vte_draw_set_text_font () from /usr/lib/libvte.so.4
#1 0xb72fba61 in vte_terminal_set_font_full () from /usr/lib/libvte.so.4
#2 0xb72f7657 in vte_terminal_feed_child () from /usr/lib/libvte.so.4
#3 0xb7c6363b in IA__g_cclosure_marshal_VOID__OBJECT (closure=0x826a3d8,
return_value=0x0, n_param_values=2, param_values=0x826a3d8,
invocation_hint=0xbfffdc68, marshal_data=0x0) at gmarshal.c:636
#4 0xb7c52351 in IA__g_closure_invoke (closure=0x82f4d70, return_value=0x0,
n_param_values=0, param_values=0x0, invocation_hint=0x0) at gclosure.c:437
#5 0xb7c627e2 in signal_emit_unlocked_R (node=0x8267870, detail=0,
instance=0x826a3d8, emission_return=0x0, instance_and_params=0xbfffdd80) at
gsignal.c:2485
#6 0xb7c618f1 in IA__g_signal_emit_valist (instance=0x826a3d8, signal_id=0,
detail=0, var_args=0xbfffdf10
"\u0623&\b\230\uffff\033\b\uffff\uffff\231\uffffT\u07a5\uffff\u0623&\b") at
gsignal.c:2244
#7 0xb7c61b75 in IA__g_signal_emit (instance=0x0, signal_id=0, detail=0) at
gsignal.c:2288
#8 0xb799a39f in gtk_widget_set_style_internal (widget=0x826a3d8,
style=0x826ee08, initial_emission=0) at gtkwidget.c:4789
#9 0xb7999bf6 in gtk_widget_reset_rc_style (widget=0x826a3d8) at
gtkwidget.c:4471
#10 0xb799a7d6 in reset_rc_styles_recurse (widget=0x826a3d8, data=0x0) at
gtkwidget.c:4948
#11 0xb799a825 in IA__gtk_widget_reset_rc_styles (widget=0x826a3d8) at
gtkwidget.c:4961
#12 0xb79998c6 in IA__gtk_widget_set_parent (widget=0x826a3d8, parent=0x601) at
gtkwidget.c:4349
#13 0xb78d002e in IA__gtk_notebook_insert_page_menu (notebook=0x85275f0,
child=0x826a3d8, tab_label=0x852c6f0, menu_label=0x0, position=0) at
gtknotebook.c:4359
#14 0xb78cf96e in IA__gtk_notebook_append_page (notebook=0x85275f0,
child=0x826a3d8, tab_label=0x852c6f0) at gtknotebook.c:4128
#15 0xb7b004e4 in init_gtk () from
/usr/lib/python2.4/site-packages/gtk-2.0/gtk/_gtk.so
#16 0x080fff6f in PyCFunction_Call ()
#17 0x080aaaf4 in PyEval_CallObjectWithKeywords ()
#18 0x080a8e0a in PyEval_EvalFrame ()
#19 0x080a9890 in PyEval_EvalCodeEx ()
#20 0x080aac40 in PyEval_CallObjectWithKeywords ()
#21 0x080aa858 in PyEval_CallObjectWithKeywords ()
#22 0x080a8e0a in PyEval_EvalFrame ()
#23 0x080a9890 in PyEval_EvalCodeEx ()
#24 0x080ffacd in PyStaticMethod_New ()
#25 0x0805bead in PyObject_Call ()
#26 0x080625aa in PyMethod_Fini ()
#27 0x0805bead in PyObject_Call ()
#28 0x080aa6ef in PyEval_CallObjectWithKeywords ()
#29 0x0805be80 in PyObject_CallObject ()
#30 0xb7c9ba1f in initgobject () from
/usr/lib/python2.4/site-packages/gtk-2.0/gobject.so
#31 0xb7c52351 in IA__g_closure_invoke (closure=0x82da818, return_value=0x0,
n_param_values=0, param_values=0x0, invocation_hint=0x0) at gclosure.c:437
#32 0xb7c627e2 in signal_emit_unlocked_R (node=0x851ff50, detail=0,
instance=0x852bdd8, emission_return=0x0, instance_and_params=0xbfffe910) at
gsignal.c:2485
#33 0xb7c618f1 in IA__g_signal_emit_valist (instance=0x852bdd8, signal_id=111,
detail=0, var_args=0xbfffea9c
"\b\uffff\u01f7\b\uffff\u01f7\u063dR\b\uffff\uffff\uffff\uffff\222\uffff\177\uffff\u063dR\b

\uffffR\b\uffff\uffff\uffff\uffff\232,\u01b7\u063dR\b\uffffp\030\b\210:Q\uffff\b\uffff\u01f7\020\uffff\uffff\uffff
\uffffR\b\b\uffff\uffff\uffff\uffff%\u0177 \uffffR\b") at gsignal.c:2244
#34 0xb7c61b75 in IA__g_signal_emit (instance=0x0, signal_id=0, detail=0) at
gsignal.c:2288
#35 0xb77fa4f2 in IA__gtk_button_clicked (button=0x852bdd8) at gtkbutton.c:782
#36 0xb77fb292 in gtk_real_button_released (button=0x852bdd8) at
gtkbutton.c:1294
#37 0xb7c62c9a in IA__g_cclosure_marshal_VOID__VOID (closure=0x852a320,
return_value=0x0, n_param_values=1, param_values=0x0,
invocation_hint=0xbfffebf8, marshal_data=0xb77fb258) at gmarshal.c:77
#38 0xb7c525bf in g_type_class_meta_marshal (closure=0x852a320,
return_value=0x0, n_param_values=0, param_values=0xbfffed10,
invocation_hint=0x0, marshal_data=0x0) at gclosure.c:514
#39 0xb7c52351 in IA__g_closure_invoke (closure=0x852a320, return_value=0x0,
n_param_values=0, param_values=0x0, invocation_hint=0x0) at gclosure.c:437
#40 0xb7c62080 in signal_emit_unlocked_R (node=0x8521180, detail=0,
instance=0x852bdd8, emission_return=0x0, instance_and_params=0xbfffed10) at
gsignal.c:2415
#41 0xb7c618f1 in IA__g_signal_emit_valist (instance=0x852bdd8, signal_id=110,
detail=0, var_args=0xbfffee9c
"\b\uffff\u01f7T\u07a5\uffff\uffff}&\b\uffff\uffff\uffff\uffffn\uffff\177\uffff\u063dR\b\uffff}&\b\uffff\uffff\uffff\uffffFj\213\uffff\u063dR\b\uffffkT\b\230\uffff\033\b\b\uffff\u01f7\u0623&\b\u0623&\b\u063dR\b\b\uffff\u01f7

\uffff\uffff\uffff\uffff}&\b\030\uffff\uffff\uffff\uffff%\u0177\uffff}&\b\uffff\uffff\uffff\uffff\002")
at gsignal.c:2244
#42 0xb7c61b75 in IA__g_signal_emit (instance=0x0, signal_id=0, detail=0) at
gsignal.c:2288
#43 0xb77fa46d in IA__gtk_button_released (button=0x852bdd8) at gtkbutton.c:774
#44 0xb77fb16e in gtk_button_button_release (widget=0x0, event=0x0) at
gtkbutton.c:1210
#45 0xb78b6a46 in _gtk_marshal_BOOLEAN__BOXED (closure=0x8267da0,
return_value=0xbfffefe0, n_param_values=2, param_values=0xbffff120,
invocation_hint=0xbffff008, marshal_data=0xb77fb14b) at gtkmarshalers.c:83
#46 0xb7c525bf in g_type_class_meta_marshal (closure=0x8267da0,
return_value=0x0, n_param_values=0, param_values=0xbffff120,
invocation_hint=0x0, marshal_data=0x0) at gclosure.c:514
#47 0xb7c52351 in IA__g_closure_invoke (closure=0x8267da0, return_value=0x0,
n_param_values=0, param_values=0x0, invocation_hint=0x0) at gclosure.c:437
#48 0xb7c62270 in signal_emit_unlocked_R (node=0x8267638, detail=0,
instance=0x852bdd8, emission_return=0xbffff0b0, instance_and_params=0xbffff120)
at gsignal.c:2523
#49 0xb7c616ef in IA__g_signal_emit_valist (instance=0x852bdd8, signal_id=0,
detail=0, var_args=0xbffff2b0
"\uffff\uffff\uffff\uffff\uffff\uffff\uffff\uffff") at gsignal.c:2254
#50 0xb7c61b75 in IA__g_signal_emit (instance=0x0, signal_id=0, detail=0) at
gsignal.c:2288
#51 0xb7998724 in gtk_widget_event_internal (widget=0x852bdd8, event=0x8546bf8)
at gtkwidget.c:3626
#52 0xb78b565a in IA__gtk_propagate_event (widget=0x852bdd8, event=0x8546bf8)
at gtkmain.c:2145
#53 0xb78b4637 in IA__gtk_main_do_event (event=0x8546bf8) at gtkmain.c:1383
#54 0xb7770b73 in gdk_event_dispatch (source=0x0, callback=0, user_data=0x0) at
gdkevents-x11.c:2220
#55 0xb7bebce7 in g_main_dispatch (context=0x81f6d10) at gmain.c:1947
#56 0xb7becc8d in IA__g_main_context_dispatch (context=0x81f6d10) at
gmain.c:2497
#57 0xb7becfaf in g_main_context_iterate (context=0x81f6d10, block=1,
dispatch=1, self=0x8273ef8) at gmain.c:2578
#58 0xb7bed4f6 in IA__g_main_loop_run (loop=0x851f858) at gmain.c:2782
#59 0xb78b3f8b in IA__gtk_main () at gtkmain.c:963
#60 0xb7b6279e in init_gtk () from
/usr/lib/python2.4/site-packages/gtk-2.0/gtk/_gtk.so
#61 0x080aa8f9 in PyEval_CallObjectWithKeywords ()
#62 0x080a8e0a in PyEval_EvalFrame ()
#63 0x080aacca in PyEval_CallObjectWithKeywords ()
#64 0x080aa858 in PyEval_CallObjectWithKeywords ()
#65 0x080a8e0a in PyEval_EvalFrame ()
#66 0x080a9890 in PyEval_EvalCodeEx ()
#67 0x080ac43e in PyEval_EvalCode ()
#68 0x080d98de in PyRun_FileExFlags ()
#69 0x080d90af in PyRun_SimpleFileExFlags ()
#70 0x0805547a in Py_Main ()
#71 0x08054eef in main ()
(gdb)

Attachment: segfault.py
Description: Text Data

Attachment: signature.asc
Description: Digital signature

_______________________________________________
pygtk mailing list pygtk@xxxxxxxxxx
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/
<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise