Bug 85205

Summary: xscreensaver-demo now produces a segmentation fault
Product: [Retired] Red Hat Raw Hide Reporter: Michael Lee Yohe <michael>
Component: xscreensaverAssignee: Bill Nottingham <notting>
Status: CLOSED RAWHIDE QA Contact:
Severity: high Docs Contact:
Priority: medium    
Version: 1.0CC: darren, rvokal, tomg, triad, wendigo3
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: 4.12-1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2003-09-10 17:04:49 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
strace output of xscreensaver-demo
none
The culprit!
none
.xscreensaver file none

Description Michael Lee Yohe 2003-02-26 17:11:10 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 Galeon/1.2.7 (X11; Linux i686; U;) Gecko/20030102

Description of problem:
Upon upgrading xscreensaver from 4.06 to 4.07-2 (from Rawhide), attempting to
run the xscreensaver configuration utility generates a segmentation fault.

The GDB traceback is as follows:

$ gdb xscreensaver-demo
GNU gdb Red Hat Linux (5.2.1-4)
Copyright 2002 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-redhat-linux"...(no debugging symbols found)...
(gdb) r
Starting program: /usr/X11R6/bin/xscreensaver-demo 

Program received signal SIGSEGV, Segmentation fault.
0x420741ee in malloc_consolidate () from /lib/i686/libc.so.6
(gdb) where
#0  0x420741ee in malloc_consolidate () from /lib/i686/libc.so.6
#1  0x42073ab7 in _int_malloc () from /lib/i686/libc.so.6
#2  0x42073155 in malloc () from /lib/i686/libc.so.6
#3  0x0804ef7f in write_init_file ()
#4  0x0805514b in demo_write_init_file ()
#5  0x0805673d in flush_dialog_changes_and_save ()
#6  0x08057407 in list_select_changed_cb ()
#7  0x4046bd01 in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
#8  0x404570c0 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#9  0x4046b8b4 in signal_emit_unlocked_R () from /usr/lib/libgobject-2.0.so.0
#10 0x4046a888 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#11 0x4046aaf4 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#12 0x401ca21a in _gtk_tree_selection_internal_select_node () from
/usr/lib/libgtk-x11-2.0.so.0
#13 0x401c8e60 in gtk_tree_selection_select_path () from
/usr/lib/libgtk-x11-2.0.so.0
#14 0x401c916f in gtk_tree_selection_select_iter () from
/usr/lib/libgtk-x11-2.0.so.0
#15 0x08055541 in force_list_select_item ()
#16 0x08057d80 in scroll_to_current_hack ()
#17 0x0805bb18 in main ()
#18 0x420158d4 in __libc_start_main () from /lib/i686/libc.so.6
(gdb) 

I will attach the strace output (although it probably won't help as much as the
gdb output) to this bug after filing.

Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
1. Upgrade your xscreensaver package to the latest in Rawhide
2. Run "xscreensaver-demo"

    

Actual Results:  SIGSEGV.

Yuk.

Expected Results:  The GTK+ dialog box pops up allowing you to configure the
xscreensaver.

Additional info:

$ rpm -q xscreensaver
xscreensaver-4.07-2

Comment 1 Michael Lee Yohe 2003-02-26 17:12:37 UTC
Created attachment 90383 [details]
strace output of xscreensaver-demo

Comment 2 Bill Nottingham 2003-02-26 19:19:57 UTC
Can you attach your .xscreensaver file?

If you remove/move away your .xscreensaver file, does it work?

Comment 3 Michael Lee Yohe 2003-02-26 19:24:16 UTC
If I remove the .xscreensaver file - it works fine.  I will attach the file.

Comment 4 Michael Lee Yohe 2003-02-26 19:25:21 UTC
Created attachment 90384 [details]
The culprit!

Comment 5 Bill Nottingham 2003-02-26 19:38:41 UTC
Hm, even with that .xscreensaver file, it works for me.

Can you get a backtrace after installing

http://people.redhat.com/notting/xscreensaver-debuginfo-4.07-2.i386.rpm

?

Comment 6 Michael Lee Yohe 2003-02-26 19:58:06 UTC
I dunno - maybe I'm just plain 'tarded.

$ rpm -q xscreensaver-debuginfo
xscreensaver-debuginfo-4.07-2

$ pwd
/usr/lib/debug/usr/X11R6/bin

$ ldd ./xscreensaver-demo.debug 
ldd: /lib/ld-linux.so.2 exited with unknown exit code (139)

$ ./xscreensaver-demo.debug 
bash: ./xscreensaver-demo.debug: Permission denied

Am I missing something?


Comment 7 Bill Nottingham 2003-02-26 20:12:24 UTC
You run gdb on the executable as normal...

Comment 8 Michael Lee Yohe 2003-02-26 20:23:29 UTC
I know that.  As root, I run gdb on the executable from the RPM:

# gdb ./xscreensaver-demo.debug 
GNU gdb Red Hat Linux (5.2.1-4)
Copyright 2002 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-redhat-linux"...
(gdb) r
Starting program: /usr/lib/debug/usr/X11R6/bin/xscreensaver-demo.debug 
/bin/bash: line 1: /usr/lib/debug/usr/X11R6/bin/xscreensaver-demo.debug:
Permission denied
/bin/bash: line 1: /usr/lib/debug/usr/X11R6/bin/xscreensaver-demo.debug: Success
Program exited with code 01.
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
You can't do that without a process to debug.
(gdb) 


Comment 9 Michael Lee Yohe 2003-02-26 20:25:42 UTC
I can't even run ldd to see what the executable is linked to.  Do I require
another debuginfo RPM to run this binary?

Comment 10 Bill Nottingham 2003-02-26 20:42:21 UTC
No, *the executable*. xscreensaver-demo. Not the debug file.

Comment 11 Michael Lee Yohe 2003-02-26 20:53:57 UTC
Okay.. I am a 'tard.  I get the same output from gdb as the initial comment in
this bug.


Comment 12 Bill Nottingham 2003-02-26 21:09:10 UTC
There should be more symbol information there.

Comment 13 Michael Lee Yohe 2003-02-27 14:47:23 UTC
Step by step - and the output.  Please let me know what I have done wrong.

$ rpm -qa | grep xscreensaver     
xscreensaver-debuginfo-4.07-2
xscreensaver-4.07-2

$ gdb xscreensaver-demo
GNU gdb Red Hat Linux (5.2.1-4)
Copyright 2002 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-redhat-linux"...(no debugging symbols found)...

--> NOTE: there are no debugging symbols found

$ gdb --symbols=/usr/lib/debug/usr/X11R6/bin/xscreensaver-demo.debug
xscreensaver-demo
GNU gdb Red Hat Linux (5.2.1-4)
Copyright 2002 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-redhat-linux"...(no debugging symbols found)...
(gdb) 

--> NOTE: still no debugging symbols found.

What to do.. what to do..?

(gdb) r
Starting program: /usr/X11R6/bin/xscreensaver-demo 

Program received signal SIGSEGV, Segmentation fault.
0x420741ee in malloc_consolidate () from /lib/i686/libc.so.6
(gdb) where
#0  0x420741ee in malloc_consolidate () from /lib/i686/libc.so.6
#1  0x42073ab7 in _int_malloc () from /lib/i686/libc.so.6
#2  0x42073155 in malloc () from /lib/i686/libc.so.6
#3  0x0804ef7f in write_init_file ()
#4  0x0805514b in demo_write_init_file ()
#5  0x0805673d in flush_dialog_changes_and_save ()
#6  0x08057407 in list_select_changed_cb ()
#7  0x4046bd01 in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
#8  0x404570c0 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#9  0x4046b8b4 in signal_emit_unlocked_R () from /usr/lib/libgobject-2.0.so.0
#10 0x4046a888 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#11 0x4046aaf4 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#12 0x401ca21a in _gtk_tree_selection_internal_select_node () from
/usr/lib/libgtk-x11-2.0.so.0
#13 0x401c8e60 in gtk_tree_selection_select_path () from
/usr/lib/libgtk-x11-2.0.so.0
#14 0x401c916f in gtk_tree_selection_select_iter () from
/usr/lib/libgtk-x11-2.0.so.0
#15 0x08055541 in force_list_select_item ()
#16 0x08057d80 in scroll_to_current_hack ()
#17 0x0805bb18 in main ()
#18 0x420158d4 in __libc_start_main () from /lib/i686/libc.so.6
(gdb) 



Comment 14 Bill Nottingham 2003-02-27 17:16:15 UTC
Woops, to use separate debug info you need rawhide gdb.

Comment 15 tom georgoulias 2003-03-01 17:24:34 UTC
Created attachment 90435 [details]
.xscreensaver file

I'm seeing the same behavior as the bug reporter and thought it might help if
you have two .xscreensaver files to test out.

Comment 16 tom georgoulias 2003-03-01 17:27:38 UTC
Forgot to include that I'm seeing this on an install of phoebe3 w/o rawhide
packages.
[tomg@gemini tomg]$ rpm -q xscreensaver
xscreensaver-4.07-2


Comment 17 Guy Streeter 2003-03-14 16:09:44 UTC
 
Program received signal SIGSEGV, Segmentation fault.
0x420747be in malloc_consolidate () from /lib/tls/libc.so.6
(gdb) back
#0  0x420747be in malloc_consolidate () from /lib/tls/libc.so.6
#1  0x42073e09 in _int_malloc () from /lib/tls/libc.so.6
#2  0x420731fb in malloc () from /lib/tls/libc.so.6
#3  0x0804f065 in write_init_file (p=0xbfffe6b8,
    version_string=0x74 <Address 0x74 out of bounds>, verbose_p=0)
    at prefs.c:704
#4  0x080551db in demo_write_init_file (s=0xbfffe660, p=0x74) at demo-Gtk.c:896
#5  0x080567c6 in flush_dialog_changes_and_save (s=0xbfffe660)
    at demo-Gtk.c:1451
#6  0x080574d7 in list_select_changed_cb (selection=0x74, data=0xbfffe660)
    at demo-Gtk.c:1666
#7  0x404c1d77 in g_cclosure_marshal_VOID__VOID (closure=0x81d4160,
    return_value=0x0, n_param_values=1, param_values=0x74,
    invocation_hint=0xbfffd688, marshal_data=0x0) at gmarshal.c:77
#8  0x404aeed7 in g_closure_invoke (closure=0x81d4160, return_value=0x74,
    n_param_values=116, param_values=0x74, invocation_hint=0x74)
    at gclosure.c:437
#9  0x404c1983 in signal_emit_unlocked_R (node=0x8118e30, detail=0,
    instance=0x8118e78, emission_return=0x0, instance_and_params=0xbfffd780)
    at gsignal.c:2822
#10 0x404c09a8 in g_signal_emit_valist (instance=0x8118e78, signal_id=0,
    detail=0, var_args=0xbfffd90c "\001") at gsignal.c:2554
#11 0x404c0be4 in g_signal_emit (instance=0x74, signal_id=116, detail=116)
    at gsignal.c:2612
#12 0x401c7f0a in _gtk_tree_selection_internal_select_node (
    selection=0x8118e30, node=0x8148c08, tree=0x8148b60, path=0x81d3778,
    state=0, override_browse_mode=0) at gtktreeselection.c:1430
#13 0x401e0eea in gtk_tree_view_real_set_cursor (tree_view=0x8118e30,
    path=0x81d3778, clear_and_select=1, clamp_node=0) at gtktreeview.c:9630
#14 0x401dbeb9 in gtk_tree_view_focus_to_cursor (tree_view=0x8118ae0)
    at gtktreeview.c:7239
#15 0x404c1d77 in g_cclosure_marshal_VOID__VOID (closure=0x8118ae0,
    return_value=0x0, n_param_values=1, param_values=0x74,
    invocation_hint=0xbfffdb18, marshal_data=0x401d8ed0) at gmarshal.c:77
#16 0x404af247 in g_type_class_meta_marshal (closure=0x81d3778,
    return_value=0x74, n_param_values=116, param_values=0x8118ae0,
    invocation_hint=0x74, marshal_data=0x74) at gclosure.c:514
#17 0x404aeed7 in g_closure_invoke (closure=0x8118ae0, return_value=0x74,
    n_param_values=116, param_values=0x74, invocation_hint=0x74)
    at gclosure.c:437
#18 0x404c1439 in signal_emit_unlocked_R (node=0x80a43c8, detail=0,
    instance=0x8118ae0, emission_return=0x0, instance_and_params=0xbfffdc10)
    at gsignal.c:2860
#19 0x404c09a8 in g_signal_emit_valist (instance=0x8118ae0, signal_id=0,
    detail=0,
    var_args=0xbfffdd9c
"ZC\036@h?\035\bH\f\035\b?????\230(@?\230(@0G\n\bx????&\035@?\212\021\b?\205'@\030????\205'@\034???")
at gsignal.c:2554
#20 0x404c0be4 in g_signal_emit (instance=0x74, signal_id=116, detail=116)
    at gsignal.c:2612
#21 0x401f7112 in gtk_widget_grab_focus (widget=0x0) at gtkwidget.c:3406
#22 0x401d26ae in gtk_tree_view_button_press (widget=0x8118ae0,
    event=0x81cfb38) at gtktreeview.c:1832
#23 0x40110c2f in _gtk_marshal_BOOLEAN__BOXED (closure=0x80a4730,
    return_value=0xbfffdfd0, n_param_values=2, param_values=0xbfffe0f0,
    invocation_hint=0xbfffdff8, marshal_data=0x401d1ce0) at gtkmarshalers.c:82
#24 0x404af247 in g_type_class_meta_marshal (closure=0xbfffe0f0,
    return_value=0x74, n_param_values=116, param_values=0x80a4730,
    invocation_hint=0x74, marshal_data=0x74) at gclosure.c:514
#25 0x404aeed7 in g_closure_invoke (closure=0x80a4730, return_value=0x74,
    n_param_values=116, param_values=0x74, invocation_hint=0x74)
    at gclosure.c:437
#26 0x404c1439 in signal_emit_unlocked_R (node=0x80a4780, detail=0,
    instance=0x8118ae0, emission_return=0xbfffe090,
    instance_and_params=0xbfffe0f0) at gsignal.c:2860
#27 0x404c07af in g_signal_emit_valist (instance=0x8118ae0, signal_id=0,
    detail=0, var_args=0xbfffe280 "\210???\210???") at gsignal.c:2564
#28 0x404c0be4 in g_signal_emit (instance=0x74, signal_id=116, detail=116)
    at gsignal.c:2612
#29 0x401f66fb in gtk_widget_event_internal (widget=0x0, event=0x1)
    at gtkwidget.c:3143
#30 0x40110a27 in gtk_propagate_event (widget=0x8118ae0, event=0x81cfb38)
    at gtkmain.c:2267
#31 0x4010f725 in gtk_main_do_event (event=0x81cfb38) at gtkmain.c:1502
#32 0x403c71a5 in gdk_event_dispatch (source=0x74, callback=0, user_data=0x0)
    at gdkevents-x11.c:2018
#33 0x40505b35 in g_main_dispatch (context=0x8086c00) at gmain.c:1653
#34 0x40506b78 in g_main_context_dispatch (context=0x81cfb38) at gmain.c:2197
#35 0x40506e8d in g_main_context_iterate (context=0x8086c00, block=1,
    dispatch=1, self=0x80c6900) at gmain.c:2278
#36 0x4050758f in g_main_loop_run (loop=0x81d89a0) at gmain.c:2498
#37 0x4010ef5f in gtk_main () at gtkmain.c:1092
#38 0x0805be99 in main (argc=1, argv=0xbfffe7e4) at demo-Gtk.c:4515
#39 0x42015504 in __libc_start_main () from /lib/tls/libc.so.6


Comment 18 Bill Nottingham 2003-04-07 21:13:58 UTC
*** Bug 88213 has been marked as a duplicate of this bug. ***

Comment 19 Bill Nottingham 2003-04-14 19:54:55 UTC
*** Bug 88739 has been marked as a duplicate of this bug. ***

Comment 20 Bill Nottingham 2003-04-16 05:41:15 UTC
*** Bug 88991 has been marked as a duplicate of this bug. ***

Comment 21 Linus Walleij 2003-04-20 21:42:19 UTC
I have had this problem with xscreensaver-demo segfaulting on me with RH9. I
have found that it has happened with just one graphics card: ATI Rage Pro Turbo
AGP, an variant of the oldest ATI Rage card. It seems to be related to the fact
that the current XFree86 or xscreensaver tries to activate OpenGL using hardware
DRI, and this doesn't work with this old card.

I solved the problem by going into /etc/X11/XF86Config and commenting out the line:

Load "dri"

in the "Module" section. After this, the screensaver didn't try to use the
(bugged?) ATI driver. Can other reporters of this bug see if they are also using
old ATI cards, and if commenting out the Load "dri" line and restarting X will
solve the problem?

Comment 22 Darren Brierton 2003-04-21 01:21:21 UTC
Sorry but I'm totally NVIDIA here. I'm using their drivers and a GeForce440Go.

Comment 23 Bill Nottingham 2003-04-21 16:01:04 UTC
Any DRI related segfault is different than the one tracked here.

Comment 24 Wendigo 2003-04-22 01:23:38 UTC
I'm also totally NVIDIA here and the screensaver configigurator used to work
perfectly with RH 8


Comment 25 Harald Hoyer 2003-04-27 23:59:04 UTC
ok, I can reproduce this here on my laptop, also no 3D... so Bill, if you need a
test machine, I can provide it.

Comment 26 Daniel Malmgren 2003-05-29 14:18:00 UTC
Anyone ever found any solution to this one? I just upgraded from xscreensaver
4.9 to 4.10 and suddenly gets segfault at exactly the same spot when running
xscreensaver-demo.

Im running XFree86 4.3 with Nvidias drivers.

Comment 27 Patrick Beeson 2003-05-29 14:28:25 UTC
I believe I solved it by just removeing my .xscreenvar file.

Comment 28 Daniel Malmgren 2003-05-29 14:54:49 UTC
I ran xscreensaver-demo -debug to check a bit more what was going wrong and then
it worked. Then I tried running it without debug-flag and it works. Strange.
Well, problem seems to be resolved ;-)

Comment 29 Bill Nottingham 2003-06-19 18:09:24 UTC
Once it works, it won't fail again. I can reproduce this problem at will, but
haven't tracked down the exact cause. The backtrace points to more general
memory corruption, but various tracings aren't showing it.

Comment 30 Michael Lee Yohe 2003-08-08 17:51:38 UTC
Does this bug still occur with the latest Rawhide package?  If not, this bug
should be closed out.

Comment 31 Bill Nottingham 2003-09-10 17:04:49 UTC
I can't reproduce this with current rawhide packages.