Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 109498 - gvim crash after upgrade to gnome 2.12
Summary: gvim crash after upgrade to gnome 2.12
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal major
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-10-16 13:08 UTC by Evan Langlois
Modified: 2005-10-16 19:44 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Evan Langlois 2005-10-16 13:08:49 UTC
OK, after upgrading to Gnome 2.12, gvim started crashing immediately after
opening its window.  I tried changing USE flags and CFLAGS, but to no avail.  I
then put vim, gvim, and vim-core into package.keywords fearing I may need a
newer version for things to work right, and that didn't help, and I tried
various USE flag and CFLAG variations again.

If I can't get gvim working soon, I may break down and cry, so please help! 
Looks a bug in the program, but I'm guessing its doing something that was okay
on the older Gnome but now is causing some sort of 

The ERROR (from gdb, sorry I didn't turn on debug to get a good symbol table for
gdb - I can if you think it will help) ...

(vim:15936): GLib-CRITICAL **: g_key_file_add_group: assertion
`g_key_file_lookup_group_node (key_file, group_name) == NULL' failed

(vim:15936): GLib-CRITICAL **: g_key_file_add_group: assertion
`g_key_file_lookup_group_node (key_file, group_name) == NULL' failed

(vim:15936): Gtk-WARNING **: Theme directory  of theme CfG-Kids-for-Gnome-1.0.0
has no size field


Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1230858576 (LWP 15936)]
0xb71ddcc7 in free () from /lib/libc.so.6
(gdb)


The installed version is currently:
[ebuild   R   ] app-editors/gvim-6.4_beta  -acl +bash-completion +cscope +gnome
-gpm +gtk -motif -nls +perl +python +ruby 0 kB
[ebuild   R   ] app-editors/vim-6.4_beta  -acl* +bash-completion* +cscope -gpm*
-minimal -nls +perl +python +ruby -vim-with-x 0 kB
[ebuild   R   ] app-editors/vim-core-6.4_beta  -acl* +bash-completion* -livecd
-nls 0 kB

Libraries linked ...
taro ~ # ldd `which gvim`
        linux-gate.so.1 =>  (0xffffe000)
        libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb7bf7000)
        libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb7b56000)
        libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb7b3c000)
        libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb7b23000)
        libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb7b1c000)
        libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb7add000)
        libcairo.so.1 => /usr/local/lib/libcairo.so.1 (0xb7a96000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb7a56000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb7a52000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb79b7000)
        libgnomeui-2.so.0 => /usr/lib/libgnomeui-2.so.0 (0xb7924000)
        libbonoboui-2.so.0 => /usr/lib/libbonoboui-2.so.0 (0xb78c0000)
        libgnome-keyring.so.0 => /usr/lib/libgnome-keyring.so.0 (0xb78b4000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb772a000)
        libz.so.1 => /lib/libz.so.1 (0xb7717000)
        libgnomecanvas-2.so.0 => /usr/lib/libgnomecanvas-2.so.0 (0xb76e9000)
        libgnome-2.so.0 => /usr/lib/libgnome-2.so.0 (0xb76d5000)
        libpopt.so.0 => /usr/lib/libpopt.so.0 (0xb76cd000)
        libart_lgpl_2.so.2 => /usr/lib/libart_lgpl_2.so.2 (0xb76b5000)
        libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb767e000)
        libgnomevfs-2.so.0 => /usr/lib/libgnomevfs-2.so.0 (0xb7615000)
        libbonobo-2.so.0 => /usr/lib/libbonobo-2.so.0 (0xb75bb000)
        libgconf-2.so.4 => /usr/lib/libgconf-2.so.4 (0xb7586000)
        libbonobo-activation.so.4 => /usr/lib/libbonobo-activation.so.4 (0xb7571000)
        libORBit-2.so.0 => /usr/lib/libORBit-2.so.0 (0xb7518000)
        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb7512000)
        libXt.so.6 => /usr/lib/libXt.so.6 (0xb74b5000)
        libncurses.so.5 => /lib/libncurses.so.5 (0xb746f000)
        libperl.so.1 => /usr/lib/libperl.so.1 (0xb733d000)
        libutil.so.1 => /lib/libutil.so.1 (0xb7339000)
        libc.so.6 => /lib/libc.so.6 (0xb7221000)
        libruby18.so.1.8 => /usr/lib/libruby18.so.1.8 (0xb710f000)
        libm.so.6 => /lib/libm.so.6 (0xb70ec000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xb7014000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7010000)
        libSM.so.6 => /usr/lib/libSM.so.6 (0xb7007000)
        libICE.so.6 => /usr/lib/libICE.so.6 (0xb6ff0000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb6fdc000)
        libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb6f69000)
        libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb6f65000)
        libXi.so.6 => /usr/lib/libXi.so.6 (0xb6f5d000)
        libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb6f5a000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb6f2f000)
        libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb6f24000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb6f1c000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0xb6f0a000)
        libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb6f05000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb6e82000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb6e48000)
        libglitz.so.1 => /usr/local/lib/libglitz.so.1 (0xb6e22000)
        libpixman.so.1 => /usr/local/lib/libpixman.so.1 (0xb6e0c000)
        libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb6deb000)
        libpangoxft-1.0.so.0 => /usr/lib/libpangoxft-1.0.so.0 (0xb6de4000)
        libpangox-1.0.so.0 => /usr/lib/libpangox-1.0.so.0 (0xb6dd7000)
        libssl.so.0.9.7 => /usr/lib/libssl.so.0.9.7 (0xb6da6000)
        libcrypto.so.0.9.7 => /usr/lib/libcrypto.so.0.9.7 (0xb6ca8000)
        libhowl.so.0 => /usr/lib/libhowl.so.0 (0xb6b7e000)
        libresolv.so.2 => /lib/libresolv.so.2 (0xb6b6b000)
        librt.so.1 => /lib/librt.so.1 (0xb6b61000)
        libORBitCosNaming-2.so.0 => /usr/lib/libORBitCosNaming-2.so.0 (0xb6b5c000)
        libgpm.so.1 => /lib/libgpm.so.1 (0xb6b56000)
        libnsl.so.1 => /lib/libnsl.so.1 (0xb6b41000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0xb6b13000)
        /lib/ld-linux.so.2 (0xb7f96000)
        libexpat.so.0 => /usr/lib/libexpat.so.0 (0xb6ae5000)
        libXft.so.2 => /usr/lib/libXft.so.2 (0xb6ad1000)


Last of the strace output ...
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=8,
events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=11,
events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}], 6, 0) = 0
ioctl(3, FIONREAD, [0])                 = 0
ioctl(3, FIONREAD, [0])                 = 0
gettimeofday({1129492852, 816827}, NULL) = 0
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=8,
events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=11,
events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}], 6, 0) = 0
ioctl(3, FIONREAD, [0])                 = 0
gettimeofday({1129492852, 828768}, NULL) = 0
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=8,
events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=11,
events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}], 6, 0) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
write(3, "5\30\4\0R\0\300\1)\0\300\1\234\2\33\0\33\0\2\0\0\0\0\0"..., 24) = 24
write(3, " \30\2\0\0\0\0\0", 8)         = 8
write(3, "+\30\1\0", 4)                 = 4
read(3, "\1\2\10\5\0\0\0\0\4\0\300\1\0\0\0\0\0\0\0\0\1\0\0\0p\354"..., 32) = 32
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0xb6a476f8) = 15972
waitpid(15972,
(gnome_segv:15972): GLib-CRITICAL **: g_key_file_add_group: assertion
`g_key_file_lookup_group_node (key_file, group_name) == NULL' failed

(gnome_segv:15972): GLib-CRITICAL **: g_key_file_add_group: assertion
`g_key_file_lookup_group_node (key_file, group_name) == NULL' failed

(gnome_segv:15972): GLib-CRITICAL **: g_key_file_add_group: assertion
`g_key_file_lookup_group_node (key_file, group_name) == NULL' failed

(gnome_segv:15972): GLib-CRITICAL **: g_key_file_add_group: assertion
`g_key_file_lookup_group_node (key_file, group_name) == NULL' failed

(gnome_segv:15972): GLib-CRITICAL **: g_key_file_add_group: assertion
`g_key_file_lookup_group_node (key_file, group_name) == NULL' failed

(gnome_segv:15972): GLib-CRITICAL **: g_key_file_add_group: assertion
`g_key_file_lookup_group_node (key_file, group_name) == NULL' failed

(gnome_segv:15972): GLib-CRITICAL **: g_key_file_add_group: assertion
`g_key_file_lookup_group_node (key_file, group_name) == NULL' failed

(gnome_segv:15972): GLib-CRITICAL **: g_key_file_add_group: assertion
`g_key_file_lookup_group_node (key_file, group_name) == NULL' failed

(gnome_segv:15972): GLib-CRITICAL **: g_key_file_add_group: assertion
`g_key_file_lookup_group_node (key_file, group_name) == NULL' failed

(gnome_segv:15972): GLib-CRITICAL **: g_key_file_add_group: assertion
`g_key_file_lookup_group_node (key_file, group_name) == NULL' failed

(gnome_segv:15972): GLib-CRITICAL **: g_key_file_add_group: assertion
`g_key_file_lookup_group_node (key_file, group_name) == NULL' failed

(gnome_segv:15972): GLib-CRITICAL **: g_key_file_add_group: assertion
`g_key_file_lookup_group_node (key_file, group_name) == NULL' failed

(gnome_segv:15972): Gtk-WARNING **: Theme directory  of theme
CfG-Kids-for-Gnome-1.0.0 has no size field
Comment 1 John N. Laliberte (RETIRED) gentoo-dev 2005-10-16 17:32:45 UTC
see the last message here:

http://www.usenetlinux.com/archive/topic.php/t-482012.html

try a different theme, see if that fixes it and report back.

Thanks!
Comment 2 Evan Langlois 2005-10-16 18:34:26 UTC
OK, the theme in the WARNING wasn't the theme I was using, and I had tried this
under my user account and the root account which use different themes.  To be
sure, I then changed my user theme and tried again - same results.

Now .. removing all traces of the theme does get rid of all the errors and
warnings .. but it still crashes.

I recompiled without stripping symbols, but the error is buried in libraries
like I thought, so it didn't give me much.  It looks like a Cairo issue.  Here
is a backtrace ...

(gdb) run
Starting program: /usr/bin/gvim
[Thread debugging using libthread_db enabled]
[New Thread -1230017888 (LWP 5744)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1230017888 (LWP 5744)]
0xb72a7cc7 in free () from /lib/libc.so.6
(gdb) bt
#0  0xb72a7cc7 in free () from /lib/libc.so.6
#1  0xb72a9e8a in realloc () from /lib/libc.so.6
#2  0xb7ad2e0d in _cairo_array_grow_by () from /usr/local/lib/libcairo.so.1
#3  0x00000000 in ?? ()
#4  0x00000001 in ?? ()
#5  0x00000001 in ?? ()
#6  0xb7aee374 in ?? () from /usr/local/lib/libcairo.so.1
#7  0x085e0310 in ?? ()
#8  0x00000001 in ?? ()
#9  0xb7ad2f21 in _cairo_array_append () from /usr/local/lib/libcairo.so.1
#10 0x082ac720 in ?? ()
#11 0xb7fd0d4b in _dl_lookup_symbol_x () from /lib/ld-linux.so.2
Previous frame inner to this frame (corrupt stack?)
(gdb) quit

My cairo version is ...
[ebuild   R   ] x11-libs/cairo-1.0.2  +X -doc +glitz +png 0 kB

Do I need to downgrade cairo or something?  This is most puzzling.  I'm
re-emerging cairo now but I doubt it will make much of a difference.

Comment 3 John N. Laliberte (RETIRED) gentoo-dev 2005-10-16 18:44:50 UTC
Heres another Gentoo user having the same issue, he also switched themes and it
fixed the problem for him:

http://forums.gentoo.org/viewtopic-p-2194771.html?sid=e5ebf3027fb7f96c22bb9c0d67772df2

What theme(s) are you using to test this?

I cannot reproduce this on 2 different boxes with 2.12.
Comment 4 Evan Langlois 2005-10-16 19:00:32 UTC
Was he getting a segfault and a similar backtrace?  I tried a number of Themes,
including the most of the defaults and Clearlook.

You'll note in the last backtrace posted that no error messages or warnings are
being displayed at all .. you run it and it segfaults just after opening the
window with no text output in the terminal.

here is a new strace (last few lines) ...

write(3, "\22\0\n\0\3\0\300\1\16\1\0\0\16\1\0\0\10\0\30\0\20\0\0"..., 680) =
680ioctl(3, FIONREAD, [0])                 = 0
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=8,
events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=11,
events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}], 6, 0) = 0
ioctl(3, FIONREAD, [0])                 = 0
poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=8,
events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=11,
events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}], 6, 0) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
write(3, "5\30\4\0R\0\300\1O\0\300\1\20\0003\0\33\0\2\0\0\0\0\0", 24) = 24
write(3, " \30\2\0\0\0\0\0", 8)         = 8
write(3, "+\30\1\0", 4)                 = 4
read(3, 0xbfae960c, 32)                 = -1 EAGAIN (Resource temporarily
unavailable)
select(4, [3], NULL, NULL, NULL)        = 1 (in [3])
read(3, "\34Q\246\6\3\0\300\1\16\1\0\0\3552\373\5\0\0\300\1\20\0"..., 32) = 32
read(3, "\34Q\247\6\3\0\300\1\f\1\0\0\3552\373\5\0\4SC\0\0\0\0\355"..., 32) =
32read(3, "\23\0\270\6G\0\300\1G\0\300\1\0009\r\10@g\v\tG\0\300\1"..., 32) = 32
read(3, "\23\0\272\6H\0\300\1H\0\300\1\0009\r\10@g\v\tH\0\300\1"..., 32) = 32
read(3, "\26g\273\6I\0\300\1I\0\300\1Q\0\300\1\0\0\0\0\1\0\1\0\0"..., 32) = 32
read(3, "\23\0\274\6I\0\300\1I\0\300\1\0009\r\10@g\v\tI\0\300\1"..., 32) = 32
read(3, "\23\0\276\6P\0\300\1P\0\300\1\0g\v\tP\0\300\1`\r!\10xV"..., 32) = 32
read(3, "\26g\277\6O\0\300\1O\0\300\1I\0\300\1\0\0\0\0\20\0003\0"..., 32) = 32
read(3, "\23\0\300\6O\0\300\1O\0\300\1\0009\r\10@g\v\tO\0\300\1"..., 32) = 32
read(3, "\34Q\302\6\3\0\300\1#\0\0\0\3552\373\5\0\4SC\0\0\0\0\355"..., 32) = 32
read(3, "\1\2\311\6\0\0\0\0I\0\340\1\0\0\0\0\0\0\0\0\0\0\0\0\10"..., 32) = 32
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0xb6b37ae8) = 32487
waitpid(32487, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0) = 32487
--- SIGCHLD (Child exited) @ 0 (0) ---
exit_group(1)                           = ?

The child its waiting on at the end after the segfault is the Gnome "you
segfaulted, would you like me to restart the app" dialog.

and the latest backtrace after re-emerging cairo and glitz

Starting program: /usr/bin/gvim
[Thread debugging using libthread_db enabled]
[New Thread -1230538080 (LWP 32466)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1230538080 (LWP 32466)]
0xb71f5cc7 in free () from /lib/libc.so.6
(gdb) bt
#0  0xb71f5cc7 in free () from /lib/libc.so.6
#1  0xb71f7e8a in realloc () from /lib/libc.so.6
#2  0xb7a20e0d in _cairo_array_grow_by () from /usr/local/lib/libcairo.so.1
#3  0x00000000 in ?? ()
#4  0x00000001 in ?? ()
#5  0x00000001 in ?? ()
#6  0xb7a3c374 in ?? () from /usr/local/lib/libcairo.so.1
#7  0x085f16a8 in ?? ()
#8  0x00000001 in ?? ()
#9  0xb7a20f21 in _cairo_array_append () from /usr/local/lib/libcairo.so.1
#10 0xb6f2ca7d in cairo_test_xlib_disable_render () from /usr/lib/libcairo.so.2
#11 0xb7f1ed4b in _dl_lookup_symbol_x () from /lib/ld-linux.so.2
Previous frame inner to this frame (corrupt stack?)
(gdb)
Comment 5 Daniel Gryniewicz (RETIRED) gentoo-dev 2005-10-16 19:12:14 UTC
Have you tried re-emerging gvim?  I can't reproduce either, but I'm using the
vim 7 snapshots.
Comment 6 Evan Langlois 2005-10-16 19:44:05 UTC
Yeah - multiple times, and two versions (x86 and ~x86)

I don't see the ebuild for vim 7 .. I'll try it to get gvim working!  It really
looks like a Cairo issue.

Hmm ... I think I found a problem!

ekl@taro ~ $ ldd `which gvim` | grep cairo
        libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb7abd000)
        libcairo.so.1 => /usr/local/lib/libcairo.so.1 (0xb7a37000)
        libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb6f30000)

Two versions of Cairo!!!

testing ...
taro ekl #  rm /usr/local/lib/libcairo.*
taro ekl # ldd `which gvim` | grep cairo         libpangocairo-1.0.so.0 =>
/usr/lib/libpangocairo-1.0.so.0 (0xb7abf000)
        libcairo.so.1 => not found
        libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb6f58000)
taro ekl # emerge gvim
... << emerge output deleted >> ...
taro ekl # gvim

YAY!  HAPPINESS!
It Works!  Marking bug invalid.  Thanks for the feedback.