! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
xfdesktop segfaults with gtk-2.8 and gnome-2.11
Status:
RESOLVED: FIXED
Severity:
critical
Product:
Xfdesktop
Component:
General

Comments

Description Joshua Nichols 2005-09-03 01:03:10 CEST
I'm using several of the gnome-2.11 libraries, and have been experiencing
several problems with xfce in general.

This particular problem is that xfdesktop fails to load. I get several screens
of '*** attempt to put segment in horiz list twice', and eventually it segfaults.

I'm not sure what information would be useful, so please let me know what I can
provide to help.

Reproducible: Always
Steps to Reproduce:
1. run 'xfdesktop'

Actual Results:  
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
<snip>
*** attempt to put segment in horiz list twice
Segmentation fault


Expected Results:  
xfdesktop to launch

gtk+-2.8.3
eel-2.11.92
gconf-2.11.92
gnome-desktop-2.11.92
gnome-icon-theme-2.11.92
gnome-media-2.11.91
gnome-menus-2.11.92
gnome-panel-2.11.92
gnome-terminal-2.11.3
gnome-themes-2.11.92
gnome-utils-2.11.92
gnome-vfs-2.11.92
iptables-1.2.11-r3
java-config-1.2.11-r1
libgnome-2.11.3
libgnomecanvas-2.11.2
libgnomeprint-2.11.0
libgnomeprintui-2.11.0
libgnomeui-2.11.3
libgtop-2.11.92
libwnck-2.11.92
log4j-1.2.11
nautilus-2.11.92
Comment 1 Brian J. Tarricone (not reading bugmail) 2005-09-03 01:18:13 CEST
That message is a librsvg bug; shouldn't cause crashes.  I think I might know
what the problem is (though I don't really have a solution), but it would help
if you could recompile xfdesktop with --enable-debug, and get a backtrace. 
Generic backtrace instructions:
http://gaim.sf.net/gdb.php
Comment 2 Joshua Nichols 2005-09-03 01:46:23 CEST
Alright, I got a backtrace, but it doesn't look particularly useful:
#0  0xb77d77a9 in g_hash_table_insert () from /usr/lib/libglib-2.0.so.0
#1  0x430b1fb5 in ?? ()
#2  0x080b95c0 in ?? ()
#3  0x080b5f78 in ?? ()
#4  0x00000008 in ?? ()
#5  0xb7566523 in desktop_menu_file_parse ()
   from /usr/lib/xfce4/modules/xfce4_desktop_menu.so
#6  0x0819f8e0 in ?? ()

Looks like I don't have debugging info enabled xfdesktop's dependencies. I can
try re-compiling them with debuggin info.
Comment 3 graphic23 2005-09-19 02:56:07 CEST
Hi, I had the same problems, here is my gdb/backtrace. Stuff. 

(gdb) handle SIGPIPE nostop
Signal        Stop      Print   Pass to program Description
SIGPIPE       No        Yes     Yes             Broken pipe
(gdb) run
Starting program: /usr/bin/xfdesktop
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 11747)]
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 11747)]
0xb785f8c9 in g_hash_table_insert () from /usr/lib/libglib-2.0.so.0
(gdb) bt
#0  0xb785f8c9 in g_hash_table_insert () from /usr/lib/libglib-2.0.so.0
#1  0x432d9432 in ?? ()
#2  0xbfbe13c0 in ?? ()
#3  0x08167ae0 in ?? ()
#4  0x0807b388 in ?? ()
#5  0xb7119a31 in desktop_menu_file_parse ()
   from /usr/lib/xfce4/modules/xfce4_desktop_menu.so
#6  0x0833a978 in ?? ()


Hopefully this helps. 
Comment 4 Nick Schermer editbugs 2005-09-19 09:48:41 CEST
I'm also having problems with xfdesktop (gtk-2.8), xfce4-panel craches when
adding Xfce Menu. Here is the gdb info from xfce4-panel:

	[Thread debugging using libthread_db enabled]
	[New Thread -1217890624 (LWP 26799)]
	TRACE[desktop-menu-file.c:656] desktop_menu_file_need_update(): dummy
	TRACE[desktop-menu-cache.c:283] desktop_menu_cache_is_valid(): exiting - failed
	TRACE[desktop-menu-dentry.c:604] desktop_menu_dentry_parse_files(): base: /
	
	Program received signal SIGSEGV, Segmentation fault.
	[Switching to Thread -1217890624 (LWP 26799)]
	0xb791d889 in g_hash_table_insert () from /usr/lib/libglib-2.0.so.0
	(gdb) backtrace
	#0  0xb791d889 in g_hash_table_insert () from /usr/lib/libglib-2.0.so.0
	#1  0x432e85f8 in ?? ()
	#2  0x082ce058 in ?? ()
	#3  0x082ce530 in ?? ()
	#4  0xbf9ec088 in ?? ()
	#5  0xb725e986 in desktop_menu_file_parse ()
	   from /opt/xfce4/lib/xfce4/modules/xfce4_desktop_menu.so
	Previous frame inner to this frame (corrupt stack?)

And starting Xfdesktop also fails:

	(no debugging symbols found)
	TRACE[xfce-desktop.c:649] backdrop_changed_cb(): dummy
	(no debugging symbols found)
	(no debugging symbols found)
	TRACE[desktop-menu-file.c:656] desktop_menu_file_need_update(): dummy
	TRACE[xfce-desktop.c:1881] xfce_desktop_expose(): entering
	TRACE[xfce-desktop.c:1927] xfce_desktop_paint_icons(): entering
	TRACE[desktop-menu-cache.c:283] desktop_menu_cache_is_valid(): exiting - failed
	TRACE[desktop-menu-dentry.c:604] desktop_menu_dentry_parse_files(): base: /
	
	Program received signal SIGSEGV, Segmentation fault.
	0xb7849889 in g_hash_table_insert () from /usr/lib/libglib-2.0.so.0

I hope this extra information will help solving the problem (if it is xfdesktop
and not glib2)

Greets, Nick Schermer
Comment 5 Brian J. Tarricone (not reading bugmail) 2005-09-19 09:57:59 CEST
Yes, these are all the same bugs, but pasting identical *useless* backtraces
isn't going to help.  I need a debug build (configured with --enable-debug) with
binaries and libraries that are NOT stripped.  This should give me file names
and line numbers in the backtrace for each function on the stack (well, not the
glib ones, but the xfdesktop ones at least).

At any rate, I know what causes this crash, but I was never able to figure out
why the GHashTable is null at the point of the attempt to insert something into it.

The odd thing is that usually you just get a warning printed to stderr (in gtk
2.6 and below), and it goes on its merry way.  FWIW, I personally can't
reproduce this crash with gtk 2.8.
Comment 6 Nick Schermer editbugs 2005-09-19 10:17:11 CEST
I compiled it without stripping:

(gdb) backtrace
#0  0xb78f8889 in g_hash_table_insert () from /usr/lib/libglib-2.0.so.0
#1  0x432e8e59 in ?? ()
#2  0x0829d568 in ?? ()
#3  0x082d02e8 in ?? ()
#4  0xbfdc4df8 in ?? ()
#5  0xb7239986 in desktop_menu_file_parse (desktop_menu=Cannot access memory at
address 0x32
)
    at desktop-menu-file.c:603
Previous frame inner to this frame (corrupt stack?)

I hope this will help a little more...
Comment 7 Brian J. Tarricone (not reading bugmail) 2005-09-19 10:26:19 CEST
Nope, that's stripped.  Either that, or you have something in your CFLAGS (like
perhaps -fomit-frame-pointer) that's screwing with the debug information. 
Regardless, that's not too useful, unfortunately...
Comment 8 Nick Schermer editbugs 2005-09-19 10:29:19 CEST
No the cflags was "-g -ggdb" and compiled with ./configure --enable-debug=full,
make, make install...

But i compiled glib2 again and now the bug is gone, everything is working fine now.
Comment 9 graphic23 2005-09-24 18:12:41 CEST
Ok. I've compiled SVN Xfdesktop with: 
./configure --prefix=/usr --enable-debug=full

Here's the gdb trace: 

(gdb) run
Starting program: /usr/bin/xfdesktop
TRACE[xfce-desktop.c:649] backdrop_changed_cb(): dummy
[Thread debugging using libthread_db enabled]
[New Thread -1217558864 (LWP 20024)]
TRACE[desktop-menu-file.c:656] desktop_menu_file_need_update(): dummy
TRACE[xfce-desktop.c:1881] xfce_desktop_expose(): entering
TRACE[desktop-menu-cache.c:283] desktop_menu_cache_is_valid(): exiting - failed
TRACE[desktop-menu-dentry.c:604] desktop_menu_dentry_parse_files(): base: /

*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice
*** attempt to put segment in horiz list twice

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1217460560 (LWP 20028)]
0xb783c8c9 in g_hash_table_insert () from /usr/lib/libglib-2.0.so.0

Hopefully This will help you better than my previous post. It would be awesome
if you could figure out whats wrong with it. 

Comment 10 Brian J. Tarricone (not reading bugmail) 2005-09-25 09:13:34 CEST
That's not a backtrace.  You need to type 'bt' at the (gdb) prompt after the app
crashes.
Comment 11 graphic23 2005-09-25 16:09:56 CEST
(In reply to comment #10)
> That's not a backtrace.  You need to type 'bt' at the (gdb) prompt after the app
> crashes.

Well, the bt got this, which was already posted: 

(gdb) bt
#0  0xb785c8c9 in g_hash_table_insert () from /usr/lib/libglib-2.0.so.0
#1  0x432f307a in ?? ()
#2  0x00000000 in ?? ()
#3  0x08094088 in ?? ()
#4  0xbfbe15f8 in ?? ()
#5  0xb7582fe3 in desktop_menu_file_parse (desktop_menu=Cannot access memory at
address 0x28
)
    at desktop-menu-file.c:603
Previous frame inner to this frame (corrupt stack?)
Comment 12 Brian J. Tarricone (not reading bugmail) 2005-10-15 09:46:27 CEST
Ok, I think I probably fixed this.  Please test if you are able.
Comment 13 graphic23 2005-11-10 02:32:25 CET
(In reply to comment #12)
> Ok, I think I probably fixed this.  Please test if you are able.

I tested it on Slackware v10.2 and it works. (The latest SVN Xfdesktop with
Gtk-2.8+). Thanks for the fix! :) 

Bug #1136

Reported by:
Joshua Nichols
Reported on: 2005-09-03
Last modified on: 2009-07-14

People

Assignee:
Brian J. Tarricone (not reading bugmail)
CC List:
2 users

Version

Attachments

Additional information