Re: Glib 1.102 (stable)




On Dec 15, 2005, at 8:53 AM, Sean Dague wrote:

On Mon, Nov 28, 2005 at 09:49:31PM +0100, Torsten Schoenfeld wrote:
On Mon, 2005-11-28 at 21:48 +0100, Torsten Schoenfeld wrote:

http://sourceforge.net/project/showfiles.php? group_id=64773&package_id=160888&release_id=353295

This should read

http://sourceforge.net/project/showfiles.php? group_id=64773&package_id=91217&release_id=374366

of course.

I'm getting a lot of users of perl-Glib 1.102 reporting segfaults (1.101 works fine for them.) The following is the backtrace I've managed to gather
from one of the users:

This looks like you have a perl-derived CellRenderer in your code. In frame #5, gtk_tree_view_column_cell_set_cell_data() is calling g_object_set_property() on something, most likely using an attribute set up when the TreeViewColumn was created.

The first red flag is the value of property_name in frame #4 -- is that a garbage string or a unicode string? I believe that most of the code assumes property names will be ASCII. This questionable value appears to have been mapped to a decent property id for the call to gperl_type_set_property(), which is in the vtable for perl- derived GObjects. When gperl_type_set_property() discovers there is no SET_PROPERTY() in the package and no sub registered as a set handler, it falls back to setting a key in the wrapper hash with the same name as the property. However, as you see in the trace, the name in frame #2 does not match the property_name in frame #4.

This could be one of two things --- an invalid property name in the attribute setup for your treeview, or memory corruption.

Have you been able to reproduce the crash with a subset of your code? At this point, code will be the most helpful thing you can provide.

#0  0x7f480514 in S_hv_fetch_flags ()
#1  0x7f480438 in Perl_hv_fetch ()
#2  0x004180b8 in _gperl_fetch_wrapper_key (object=0x1800200,
name=0x1bb92c0 "\001ºz\210", create=1) at GObject.xs:772
#3  0x00410ef4 in gperl_type_set_property (object=0x3bdf880,
property_id=28857897, value=0xbfffcf30, pspec=0x1af7e50) at GType.xs:1512
#4  0x0060d004 in g_object_set_property (object=0x3bdf880,
property_name=0x2976290 "\002\227X\220", value=0xbfffcfb0) at gobject.c:691
#5  0x04014e8c in gtk_tree_view_column_cell_set_cell_data
(tree_column=0x3bdf530, tree_model=0xbfffcfb0, iter=0x19569c8,
is_expander=1, is_expanded=1) at gtktreeviewcolumn.c:2547
#6  0x04001358 in validate_row (tree_view=0x3bdedf0, tree=0x3be2c50,
node=0x1b9d818, iter=0xbfffd0e0, path=0x0) at gtktreeview.c:4665
#7 0x040024f0 in do_validate_rows (tree_view=0x3bdedf0, queue_resize=0) at
gtktreeview.c:5225
#8  0x03ffc090 in gtk_tree_view_size_request (widget=0x1b9d818,
requisition=0x3be2c50) at gtktreeview.c:1806





--
To me, "hajime" means "the man standing opposite you is about to hit you with a stick".
  -- Ian Malpass, speaking of the Japanese word for "the beginning"




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]