Hi,

I tried running gtk+ programs under valgrind.

(with crashable gtkrc-2.0)
$ valgrind gnumeric
~snip~
==10447== Invalid free() / delete / delete[]
==10447==    at 0x401D048: free (vg_replace_malloc.c:235)
==10447==    by 0x4B0715B: g_free (in /usr/lib/libglib-2.0.so.0.1000.2)
==10447==    by 0x69E3B69: (within /usr/lib/gtk-2.0/2.4.0/engines/libsmooth.so)
==10447==    by 0x69FAD57: (within /usr/lib/gtk-2.0/2.4.0/engines/libsmooth.so)
==10447==    by 0x69FADC3: (within /usr/lib/gtk-2.0/2.4.0/engines/libsmooth.so)
==10447==    by 0x4AAE227: g_object_unref (in 
/usr/lib/libgobject-2.0.so.0.1000.2)
==10447==    by 0x47A2084: gtk_rc_style_unref (in 
/usr/lib/libgtk-x11-2.0.so.0.800.16)
==10447==    by 0x47BE8E2: (within /usr/lib/libgtk-x11-2.0.so.0.800.16)
==10447==    by 0x4AAE2A2: g_object_unref (in 
/usr/lib/libgobject-2.0.so.0.1000.2)
==10447==    by 0x47A1DC1: (within /usr/lib/libgtk-x11-2.0.so.0.800.16)
==10447==    by 0x4AAE2A2: g_object_unref (in 
/usr/lib/libgobject-2.0.so.0.1000.2)
==10447==    by 0x47A2084: gtk_rc_style_unref (in 
/usr/lib/libgtk-x11-2.0.so.0.800.16)
==10447==  Address 0x5EF2BA0 is 0 bytes inside a block of size 56 free'd
==10447==    at 0x401D048: free (vg_replace_malloc.c:235)
==10447==    by 0x4B0715B: g_free (in /usr/lib/libglib-2.0.so.0.1000.2)
==10447==    by 0x69E3B69: (within /usr/lib/gtk-2.0/2.4.0/engines/libsmooth.so)
==10447==    by 0x69FAD57: (within /usr/lib/gtk-2.0/2.4.0/engines/libsmooth.so)
==10447==    by 0x69FADC3: (within /usr/lib/gtk-2.0/2.4.0/engines/libsmooth.so)
==10447==    by 0x4AAE227: g_object_unref (in 
/usr/lib/libgobject-2.0.so.0.1000.2)
==10447==    by 0x47A2084: gtk_rc_style_unref (in 
/usr/lib/libgtk-x11-2.0.so.0.800.16)
==10447==    by 0x47BE8E2: (within /usr/lib/libgtk-x11-2.0.so.0.800.16)
==10447==    by 0x4AAE2A2: g_object_unref (in 
/usr/lib/libgobject-2.0.so.0.1000.2)
==10447==    by 0x47A1DC1: (within /usr/lib/libgtk-x11-2.0.so.0.800.16)
==10447==    by 0x4AAE2A2: g_object_unref (in 
/usr/lib/libgobject-2.0.so.0.1000.2)
==10447==    by 0x47A2084: gtk_rc_style_unref (in 
/usr/lib/libgtk-x11-2.0.so.0.800.16)
~snip~

The above lines were not appeared in the report with safe gtkrc-2.0.

Also,
(with crashable gtkrc-2.0)
$ valgrind epiphany
~snip~
==10211== Invalid free() / delete / delete[]
==10211==    at 0x401D048: free (vg_replace_malloc.c:235)
==10211==    by 0x4FB315B: g_free (in /usr/lib/libglib-2.0.so.0.1000.2)
==10211==    by 0x7716B69: (within /usr/lib/gtk-2.0/2.4.0/engines/libsmooth.so)
==10211==    by 0x772DD57: (within /usr/lib/gtk-2.0/2.4.0/engines/libsmooth.so)
==10211==    by 0x772DDC3: (within /usr/lib/gtk-2.0/2.4.0/engines/libsmooth.so)
==10211==    by 0x4F5A227: g_object_unref (in 
/usr/lib/libgobject-2.0.so.0.1000.2)
==10211==    by 0x4947084: gtk_rc_style_unref (in 
/usr/lib/libgtk-x11-2.0.so.0.800.16)
==10211==    by 0x49638E2: (within /usr/lib/libgtk-x11-2.0.so.0.800.16)
==10211==    by 0x4F5A2A2: g_object_unref (in 
/usr/lib/libgobject-2.0.so.0.1000.2)
==10211==    by 0x4A0455F: (within /usr/lib/libgtk-x11-2.0.so.0.800.16)
==10211==    by 0x4A04B28: (within /usr/lib/libgtk-x11-2.0.so.0.800.16)
==10211==    by 0x80F4754: ephy_location_entry_set_secure (in /usr/bin/epiphany)
==10211==  Address 0x76E9128 is 0 bytes inside a block of size 12 free'd
==10211==    at 0x401D048: free (vg_replace_malloc.c:235)
==10211==    by 0x4C3CBC8: _cairo_pixman_region_destroy (in 
/usr/lib/libcairo.so.2.2.4)
==10211==    by 0x4C21361: (within /usr/lib/libcairo.so.2.2.4)
==10211==    by 0x4C235FB: (within /usr/lib/libcairo.so.2.2.4)
==10211==    by 0x4C1D9E8: cairo_restore (in /usr/lib/libcairo.so.2.2.4)
==10211==    by 0x4B884B4: (within /usr/lib/libpangocairo-1.0.so.0.1200.1)
==10211==    by 0x4BFD174: pango_renderer_draw_glyphs (in 
/usr/lib/libpango-1.0.so.0.1200.1)
==10211==    by 0x4B88B5C: pango_cairo_show_glyph_string (in 
/usr/lib/libpangocairo-1.0.so.0.1200.1)
==10211==    by 0x4AF0FEF: (within /usr/lib/libgdk-x11-2.0.so.0.800.16)
==10211==    by 0x4BFD174: pango_renderer_draw_glyphs (in 
/usr/lib/libpango-1.0.so.0.1200.1)
==10211==    by 0x4BFE41C: pango_renderer_draw_layout_line (in 
/usr/lib/libpango-1.0.so.0.1200.1)
==10211==    by 0x4BFE80A: pango_renderer_draw_layout (in 
/usr/lib/libpango-1.0.so.0.1200.1)
~snip~

I cannot tell the exact difference, since valgrind reported flood of 
possibilities of memleaks.

Inkscape does crash actually under valgrind, with segmentation error,
though gnumeric and epiphany don't.
Without valgrind, gnumeric crashes on exit (File->Quit), epiphany crashes 
during startup.
Dia also crashes if I reopens the layer window twice. (Diagram->Layer)

Tested on KDE, Nuvola gtk-theme.

ii  gnumeric                          1.6.3-2
ii  gnumeric-common                   1.6.3-2
ii  gnumeric-plugins-extra            1.6.3-2
ii  epiphany-browser                  2.14.1-3
ii  epiphany-extensions               2.14.1-1
ii  inkscape                          0.43-4
ii  dia-common                        0.95.0-3
ii  dia-gnome                         0.95.0-3
ii  dia-libs                          0.95.0-3


> 1. Is it gtk2-engines-gtk-qt which writes config files causing random
>    applications to crash
> 2. or is it a bug somewhere in gtk2 which fails to cope with certain
>    combinations of configuration options causing applications to randomly
>    crash
> 3. or is it a problem of the applications using gtk theming in an
>    inappropriate way?

I cannot say for certain but, duplicated theme inclusion causes crash
on smooth theme engine in some condition?

> include "/usr/share/themes/Nuvola/gtk-2.0/gtkrc"
> include "/usr/share/themes/Nuvola/gtk-2.0/gtkrc"
causes crash,

> include "/usr/share/themes/Lush/gtk-2.0/gtkrc"
> include "/usr/share/themes/Lush/gtk-2.0/gtkrc"
causes crash too,

> include "/usr/share/themes/Nuvola/gtk-2.0/gtkrc"
> include "/usr/share/themes/Lush/gtk-2.0/gtkrc"
also does.

but,
> include "/usr/share/themes/Crux/gtk-2.0/gtkrc"
> include "/usr/share/themes/Crux/gtk-2.0/gtkrc"
or
> include "/usr/share/themes/Crux/gtk-2.0/gtkrc"
> include "/usr/share/themes/Nuvola/gtk-2.0/gtkrc"
doesn't.


Yuya.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to