Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#1030659: xscreensaver: segfault when starting xscreensaver-settings or xscreensaver-demo

98 views
Skip to first unread message

Marco Moock

unread,
Feb 6, 2023, 3:40:03 AM2/6/23
to
Package: xscreensaver
Version: 6.06+dfsg1-2
Severity: important
X-Debbugs-Cc: mo...@posteo.de

Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

* What led up to the situation?
Starting it via xscreensaver-demo --debug or xscreensaver-settings --debug
If I don't used --debug, it also crashed without the segfault error message
* What was the outcome of this action?

Application crashed,
following output:

m@ryz:~$ LANG=C xscreensaver-settings --debug
xscreensaver-settings: 09:32:46: DISPLAY=:0.0
xscreensaver-settings: 09:32:46: added "/usr/libexec/xscreensaver" to $PATH
xscreensaver-settings: 09:32:46: pref changed: GtkSpinButton
xscreensaver-settings: 09:32:46: pref changed: GtkSpinButton
xscreensaver-settings: 09:32:46: pref changed: GtkSpinButton
xscreensaver-settings: 09:32:46: pref changed: GtkSpinButton
xscreensaver-settings: 09:32:46: pref changed: GtkSpinButton
xscreensaver-settings: 09:32:46: pref changed: GtkSpinButton
xscreensaver-settings: 09:32:46: pref changed: GtkSpinButton
xscreensaver-settings: 09:32:46: pref changed: GtkCheckButton
xscreensaver-settings: 09:32:46: pref changed: GtkCheckButton
xscreensaver-settings: 09:32:46: pref changed: GtkCheckButton
xscreensaver-settings: 09:32:46: pref changed: GtkRadioButton
xscreensaver-settings: 09:32:46: pref changed: GtkRadioButton
xscreensaver-settings: 09:32:46: list selection changed
xscreensaver-settings: 09:32:46: scheduling preview "distort --root"
xscreensaver-settings: 09:32:46: reading /usr/share/xscreensaver/config/distort.xml...
xscreensaver-settings: 09:32:46: scheduling preview "distort --root"
xscreensaver-settings: 09:32:46: reading /usr/share/xscreensaver/config/distort.xml...
xscreensaver-settings: 09:32:46: scheduling preview "distort --root"
xscreensaver-settings: 09:32:46: select list elt 59
xscreensaver-settings: 09:32:46: scheduling preview "distort --root"
xscreensaver-settings: 09:32:46: reading /usr/share/xscreensaver/config/distort.xml...
xscreensaver-settings: 09:32:46: scheduling preview "distort --root"
xscreensaver-settings: 09:32:46: xscreensaver-gl-visual did not report a GL visual!
Speicherzugriffsfehler #German for segfault
m@ryz:~$


m@ryz:~$ xscreensaver-demo

xscreensaver-demo: 09:35:30: X error:
xscreensaver-demo: Failed request: BadMatch (invalid parameter attributes)
xscreensaver-demo: Major opcode: 42 (X_SetInputFocus)
xscreensaver-demo: Resource id: 0x3400007
xscreensaver-demo: Serial number: 516 / 517

m@ryz:~$


*** End of the template - remove these template lines ***


-- System Information:
Debian Release: bookworm/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.1.0-3-amd64 (SMP w/4 CPU threads; PREEMPT)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages xscreensaver depends on:
ii init-system-helpers 1.65.2
ii libatk1.0-0 2.46.0-5
ii libc6 2.36-8
ii libcrypt1 1:4.4.33-2
ii libglib2.0-0 2.74.5-1
ii libgtk-3-0 3.24.36-3
ii libpam0g 1.5.2-6
ii libsystemd0 252.5-2
ii libx11-6 2:1.8.3-3
ii libxext6 2:1.3.4-1+b1
ii libxft2 2.3.6-1
ii libxi6 2:1.8-1+b1
ii libxinerama1 2:1.1.4-3
ii libxml2 2.9.14+dfsg-1.1+b3
ii libxrandr2 2:1.5.2-2+b1
ii libxt6 1:1.2.1-1
ii libxxf86vm1 1:1.1.4-1+b2
ii xscreensaver-data 6.06+dfsg1-2

Versions of packages xscreensaver recommends:
ii fonts-urw-base35 20200910-7
ii libjpeg-turbo-progs 1:2.1.5-2
ii perl 5.36.0-7
ii wamerican [wordlist] 2020.12.07-2
ii wngerman [wordlist] 20161207-11
ii xfonts-100dpi 1:1.0.5

Versions of packages xscreensaver suggests:
ii firefox [www-browser] 109.0-1
pn fortune <none>
pn gdm3 | kdm-gdmcompat <none>
ii lynx [www-browser] 2.9.0dev.12-1
ii palemoon [www-browser] 32.0.0-1.gtk2
pn qcam | streamer <none>
pn xdaliclock <none>
pn xfishtank <none>
pn xscreensaver-data-extra <none>
pn xscreensaver-gl <none>
pn xscreensaver-gl-extra <none>

-- no debconf information

Tormod Volden

unread,
Feb 6, 2023, 4:00:06 AM2/6/23
to
On Mon, Feb 6, 2023 at 9:39 AM Marco Moock wrote:
> Starting it via xscreensaver-demo --debug or xscreensaver-settings --debug
> If I don't used --debug, it also crashed without the segfault error message
> Application crashed,

Thanks for your report. Can you please provide a backtrace from the segfault?

gdb --args xscreensaver-demo --debug
(gdb) run
segfault
(gdb) bt full
(gdb) info locals

Regards,
Tormod

Marco

unread,
Feb 6, 2023, 4:10:04 AM2/6/23
to
On Mon, 6 Feb 2023 09:49:37 +0100 Tormod Volden

> Thanks for your report. Can you please provide a backtrace from the
> segfault?

GNU gdb (Debian 12.1-4+b1) 12.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from xscreensaver-demo...
(No debugging symbols found in xscreensaver-demo)
^[[?2004h(gdb) ^[[7mrun^[[27m^H^H^Hrun
^[[?2004l^MStarting program: /usr/bin/xscreensaver-demo --debug
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff33ff6c0 (LWP 16177)]
[New Thread 0x7ffff2bfe6c0 (LWP 16178)]
[New Thread 0x7ffff23fd6c0 (LWP 16179)]
[Thread 0x7ffff23fd6c0 (LWP 16179) exited]
[New Thread 0x7ffff23fd6c0 (LWP 16180)]
[New Thread 0x7ffff17ff6c0 (LWP 16181)]
[Thread 0x7ffff23fd6c0 (LWP 16180) exited]
[New Thread 0x7ffff23fd6c0 (LWP 16182)]
[New Thread 0x7ffff0f026c0 (LWP 16183)]
[Thread 0x7ffff23fd6c0 (LWP 16182) exited]
[Thread 0x7ffff17ff6c0 (LWP 16181) exited]
[New Thread 0x7ffff17ff6c0 (LWP 16184)]
[New Thread 0x7ffff23fd6c0 (LWP 16185)]
[Thread 0x7ffff17ff6c0 (LWP 16184) exited]
[Thread 0x7ffff0f026c0 (LWP 16183) exited]
[New Thread 0x7ffff0f026c0 (LWP 16186)]
[Thread 0x7ffff23fd6c0 (LWP 16185) exited]
[Detaching after fork from child process 16187]

Thread 1 "xscreensaver-de" received signal SIGSEGV, Segmentation fault.
0x000055555556a605 in ?? ()
^[[?2004h^[[?2004l^M^[[?2004h(gdb) ^[[7mbt full^[[27m^H^H^H^H^H^H^Hbt full
^[[?2004l^M#0 0x000055555556a605 in ?? ()
No symbol table info available.
#1 0x00007ffff70f53b0 in g_closure_invoke ()
from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#2 0x00007ffff7108076 in ?? () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#3 0x00007ffff710ebf5 in g_signal_emit_valist ()
from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#4 0x00007ffff710edbf in g_signal_emit ()
from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#5 0x00007ffff7978924 in gtk_widget_realize ()
from /lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#6 0x00007ffff798785b in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#7 0x00007ffff70f53b0 in g_closure_invoke ()
from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#8 0x00007ffff7107d2d in ?? () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#9 0x00007ffff710ebf5 in g_signal_emit_valist ()
from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#10 0x00007ffff710edbf in g_signal_emit ()
from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#11 0x00007ffff7972986 in gtk_widget_show ()
from /lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#12 0x0000555555564785 in ?? ()
No symbol table info available.
#13 0x00007ffff70f55a9 in ?? () from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#14 0x00007ffff710ebbf in g_signal_emit_valist ()
from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#15 0x00007ffff710edbf in g_signal_emit ()
from /lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#16 0x00007ffff74ff438 in ?? () from /lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#17 0x00007ffff74ff5c6 in g_application_run ()
from /lib/x86_64-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#18 0x00007ffff6d7818a in __libc_start_call_main (
main=main@entry=0x555555560780 <main>, argc=argc@entry=2,
argv=argv@entry=0x7fffffffe3c8)
at ../sysdeps/nptl/libc_start_call_main.h:58
self = <optimized out>
result = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737488348104,
-3494246778702497262, 0, 140737488348128, 93824992645168,
140737354125344, 3494246779076377106, 3494261965124172306},
mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0,
0x7fffffffe3c8}, data = {prev = 0x0, cleanup = 0x0,
canceltype = 0}}}
not_first_call = <optimized out>
#19 0x00007ffff6d78245 in __libc_start_main_impl (main=0x555555560780 <main>,
argc=2, argv=0x7fffffffe3c8, init=<optimized out>, fini=<optimized out>,
rtld_fini=<optimized out>, stack_end=0x7fffffffe3b8)
at ../csu/libc-start.c:381
No locals.
#20 0x0000555555560901 in _start ()
No symbol table info available.
^[[?2004h(gdb) ^[[7minfo locals^[[27m^M^[[C^[[C^[[C^[[C^[[C^[[Cinfo locals
^[[?2004l^MNo symbol table info available.
^[[?2004h(gdb) ^[[7minfo locals^[[27m^M^[[C^[[C^[[C^[[C^[[C^[[C^[[1Pinfo local^H^[[K^H^[[K^H^[[K^H^[[K^H^[[K^H^[[K^H^[[K^H^[[K^H^[[K^H^[[Kexit
^[[?2004l^M^[[?2004hA debugging session is active.

Inferior 1 [process 16174] will be killed.

Quit anyway? (y or n) y
^[[?2004l^M

Tormod Volden

unread,
Feb 6, 2023, 4:40:04 AM2/6/23
to
On Mon, Feb 6, 2023 at 10:00 AM Marco wrote:
> Reading symbols from xscreensaver-demo...
> (No debugging symbols found in xscreensaver-demo)

Please install the corresponding debug symbol packages from
http://debug.mirrors.debian.org/debian-debug/pool/main/x/xscreensaver/

Also try "thread apply all bt full" instead of "bt full"

Tormod

Marco

unread,
Feb 6, 2023, 5:20:04 AM2/6/23
to
Am 06.02.2023 um 10:37:41 Uhr schrieb Tormod Volden:

> On Mon, Feb 6, 2023 at 10:00 AM Marco wrote:
> > Reading symbols from xscreensaver-demo...
> > (No debugging symbols found in xscreensaver-demo)
>
> Please install the corresponding debug symbol packages from

I've installed xscreensaver-dbgsym.

> Also try "thread apply all bt full" instead of "bt full"

GNU gdb (Debian 12.1-4+b1) 12.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html> This is free software: you are free
to change and redistribute it. There is NO WARRANTY, to the extent
permitted by law. Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from xscreensaver-demo...
Reading symbols from
/usr/lib/debug/.build-id/d7/ab2074e66ca194fb0dff4e6b96947ee0bbc5c5.debug...
^[[?2004h(gdb) run ^[[?2004l^MStarting program:
/usr/bin/xscreensaver-demo --debug [Thread debugging using libthread_db
enabled] Using host libthread_db library
"/lib/x86_64-linux-gnu/libthread_db.so.1". [New Thread 0x7ffff33ff6c0
(LWP 22011)] [New Thread 0x7ffff2bfe6c0 (LWP 22012)]
[New Thread 0x7ffff23fd6c0 (LWP 22013)]
[Thread 0x7ffff23fd6c0 (LWP 22013) exited]
[New Thread 0x7ffff23fd6c0 (LWP 22014)]
[New Thread 0x7ffff17ff6c0 (LWP 22015)]
[Thread 0x7ffff23fd6c0 (LWP 22014) exited]
[New Thread 0x7ffff23fd6c0 (LWP 22016)]
[New Thread 0x7ffff0f026c0 (LWP 22017)]
[Thread 0x7ffff17ff6c0 (LWP 22015) exited]
[Thread 0x7ffff23fd6c0 (LWP 22016) exited]
[New Thread 0x7ffff23fd6c0 (LWP 22018)]
[New Thread 0x7ffff17ff6c0 (LWP 22019)]
[Thread 0x7ffff0f026c0 (LWP 22017) exited]
[Thread 0x7ffff23fd6c0 (LWP 22018) exited]
[New Thread 0x7ffff23fd6c0 (LWP 22020)]
[Thread 0x7ffff17ff6c0 (LWP 22019) exited]
[Detaching after fork from child process 22021]

Thread 1 "xscreensaver-de" received signal SIGSEGV, Segmentation fault.
0x000055555556a605 in fix_preview_visual (s=0x5555556ed740) at
./driver/demo-Gtk.c:3303 ^[[?2004h^[[?2004l^M^[[?2004h(gdb) ^[[7mthread
apply all bt full^[[27m^M^[[C^[[C^[[C^[[C^[[C^[[Cthread apply all bt
full ^[[?2004l^M Thread 11 (Thread 0x7ffff23fd6c0 (LWP 22020)
"pool-xscreensav"): #0 syscall () at
../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 No locals.
#1 0x00007ffff739350c in g_cond_wait_until () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available.
#2 0x00007ffff730c881 in ?? () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available.
#3 0x00007ffff7369722 in ?? () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available.
#4 0x00007ffff7368cfd in ?? () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available.
#5 0x00007ffff6dd9fd4 in start_thread (arg=<optimized out>) at
./nptl/pthread_create.c:442 ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737257658048,
2836667393570904919, -128, 0, 140737488339248, 140737249267712,
-2836641556772283561, -2836651711641674921}, mask_was_saved = 0}}, priv
= {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
canceltype = 0}}} not_first_call = <optimized out> #6
0x00007ffff6e5a66c in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 No locals.

Thread 3 (Thread 0x7ffff2bfe6c0 (LWP 22012) "gdbus"):
#0 0x00007ffff6e4d0af in __GI___poll (fds=0x5555556077b0, nfds=2,
timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 sc_ret = -516
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007ffff733e9ae in ?? () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available.
#2 0x00007ffff733ecef in g_main_loop_run () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available.
#3 0x00007ffff753a996 in ?? () from
/lib/x86_64-linux-gnu/libgio-2.0.so.0 No symbol table info available.
#4 0x00007ffff7368cfd in ?? () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available.
#5 0x00007ffff6dd9fd4 in start_thread (arg=<optimized out>) at
./nptl/pthread_create.c:442 ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737266050752,
2836667393570904919, -128, 11, 140737488346544, 140737257660416,
-2836642655747040425, -2836651711641674921}, mask_was_saved = 0}}, priv
= {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
canceltype = 0}}} not_first_call = <optimized out> #6
0x00007ffff6e5a66c in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 No locals.

Thread 2 (Thread 0x7ffff33ff6c0 (LWP 22011) "gmain"):
#0 0x00007ffff6e4d0af in __GI___poll (fds=0x5555555e85a0, nfds=1,
timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 sc_ret = -516
sc_cancel_oldtype = 0
sc_ret = <optimized out>
#1 0x00007ffff733e9ae in ?? () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available.
#2 0x00007ffff733eacc in g_main_context_iteration () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available.
#3 0x00007ffff733eb11 in ?? () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available.
#4 0x00007ffff7368cfd in ?? () from
/lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available.
#5 0x00007ffff6dd9fd4 in start_thread (arg=<optimized out>) at
./nptl/pthread_create.c:442 ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737274443456,
2836667393570904919, -128, 0, 140737488346160, 140737266053120,
-2836639356675286185, -2836651711641674921}, mask_was_saved = 0}}, priv
= {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
canceltype = 0}}} not_first_call = <optimized out> #6
0x00007ffff6e5a66c in clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 No locals.

Thread 1 (Thread 0x7ffff5ddcac0 (LWP 22008) "xscreensaver-de"):
#0 0x000055555556a605 in fix_preview_visual (s=0x5555556ed740) at
./driver/demo-Gtk.c:3303 widget = 0x5555555e7450
gwindow = <optimized out>
gscreen = <optimized out>
gvisual1 = 0x555555634230
win = <optimized out>
xvisual = 0x0
gvisual2 = 0x555555634230
win = <optimized out>
xvisual = <optimized out>
widget = <optimized out>
gwindow = <optimized out>
gscreen = <optimized out>
gvisual1 = <optimized out>
gvisual2 = <optimized out>
#1 xscreensaver_window_realize (self=0x5555556ed700,
user_data=<optimized out>) at ./driver/demo-Gtk.c:5068 win =
0x5555556ed700 s = 0x5555556ed740
p = 0x5555556ed7e0
#2 0x00007ffff70f53b0 in g_closure_invoke () from
/lib/x86_64-linux-gnu/libgobject-2.0.so.0 No symbol table info
available. #3 0x00007ffff7108076 in ?? () from
/lib/x86_64-linux-gnu/libgobject-2.0.so.0 No symbol table info
available. #4 0x00007ffff710ebf5 in g_signal_emit_valist () from
/lib/x86_64-linux-gnu/libgobject-2.0.so.0 No symbol table info
available. #5 0x00007ffff710edbf in g_signal_emit () from
/lib/x86_64-linux-gnu/libgobject-2.0.so.0 No symbol table info
available. #6 0x00007ffff7978924 in gtk_widget_realize () from
/lib/x86_64-linux-gnu/libgtk-3.so.0 No symbol table info available.
#7 0x00007ffff798785b in ?? () from /lib/x86_64-linux-gnu/libgtk-3.so.0
No symbol table info available.
#8 0x00007ffff70f53b0 in g_closure_invoke () from
/lib/x86_64-linux-gnu/libgobject-2.0.so.0 No symbol table info
available. #9 0x00007ffff7107d2d in ?? () from
/lib/x86_64-linux-gnu/libgobject-2.0.so.0 No symbol table info
available. #10 0x00007ffff710ebf5 in g_signal_emit_valist () from
/lib/x86_64-linux-gnu/libgobject-2.0.so.0 No symbol table info
available. #11 0x00007ffff710edbf in g_signal_emit () from
/lib/x86_64-linux-gnu/libgobject-2.0.so.0 No symbol table info
available. #12 0x00007ffff7972986 in gtk_widget_show () from
/lib/x86_64-linux-gnu/libgtk-3.so.0 No symbol table info available.
#13 0x0000555555564785 in xscreensaver_app_activate
(app=0x5555555e70f0) at ./driver/demo-Gtk.c:5268 win = 0x5555556ed700
#14 0x00007ffff70f55a9 in ?? () from
/lib/x86_64-linux-gnu/libgobject-2.0.so.0 No symbol table info
available. #15 0x00007ffff710ebbf in g_signal_emit_valist () from
/lib/x86_64-linux-gnu/libgobject-2.0.so.0 No symbol table info
available. #16 0x00007ffff710edbf in g_signal_emit () from
/lib/x86_64-linux-gnu/libgobject-2.0.so.0 No symbol table info
available. #17 0x00007ffff74ff438 in ?? () from
/lib/x86_64-linux-gnu/libgio-2.0.so.0 No symbol table info available.
#18 0x00007ffff74ff5c6 in g_application_run () from
/lib/x86_64-linux-gnu/libgio-2.0.so.0 No symbol table info available.
#19 0x00007ffff6d7818a in __libc_start_call_main
(main=main@entry=0x555555560780 <main>, argc=argc@entry=2,
argv=argv@entry=0x7fffffffe3c8) at
../sysdeps/nptl/libc_start_call_main.h:58 self = <optimized out> result
= <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf =
{140737488348104, 2836667393571167063, 0, 140737488348128,
93824992645168, 140737354125344, -2836667393940776105,
-2836651660485452969}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0,
0x0, 0x7fffffffe3c8}, data = {prev = 0x0, cleanup = 0x0, canceltype =
0}}} not_first_call = <optimized out> #20 0x00007ffff6d78245 in
__libc_start_main_impl (main=0x555555560780 <main>, argc=2,
argv=0x7fffffffe3c8, init=<optimized out>, fini=<optimized out>,
rtld_fini=<optimized out>, stack_end=0x7fffffffe3b8) at
../csu/libc-start.c:381 No locals. #21 0x0000555555560901 in _start ()
No symbol table info available. ^[[?2004h(gdb) quit
^[[?2004l^M^[[?2004hA debugging session is active.

Inferior 1 [process 22008] will be killed.

Tormod Volden

unread,
Feb 6, 2023, 5:50:05 AM2/6/23
to
On Mon, Feb 6, 2023 at 11:12 AM Marco wrote:
> I've installed xscreensaver-dbgsym.

Thanks, the backtrace got a little bit better. Anyway, I wonder if
"xscreensaver-gl-visual did not report a GL visual!" is the real
issue.

Is there something special about your system that would be worthwhile
to mention?

Is it a normal laptop with a normal installation of Debian unstable?

Can you please attach the output from "glxinfo"?

Tormod

Tormod Volden

unread,
Feb 9, 2023, 4:40:04 AM2/9/23
to
On Mon, Feb 6, 2023 at 11:52 AM Marco wrote:
> Am 06.02.2023 um 11:43:48 Uhr schrieb Tormod Volden:
> > On Mon, Feb 6, 2023 at 11:12 AM Marco wrote:
> > > I've installed xscreensaver-dbgsym.
> > Thanks, the backtrace got a little bit better. Anyway, I wonder if
> > "xscreensaver-gl-visual did not report a GL visual!" is the real
> > issue.

Would it be possible for you to build the upstream sources, without
optimization, and try it out? You shouldn't need to install any of it,
just run driver/xscreensaver-settings --debug from the build tree. And
also rename your ~/.xscreensaver so that it runs with default
settings.

Tormod

Marco

unread,
Feb 9, 2023, 4:40:04 AM2/9/23
to
Am 09.02.2023 schrieb Tormod Volden <debian...@gmail.com>:

> On Mon, Feb 6, 2023 at 11:52 AM Marco wrote:
> > Am 06.02.2023 um 11:43:48 Uhr schrieb Tormod Volden:
> > > On Mon, Feb 6, 2023 at 11:12 AM Marco wrote:
> > > > I've installed xscreensaver-dbgsym.
> > > Thanks, the backtrace got a little bit better. Anyway, I wonder if
> > > "xscreensaver-gl-visual did not report a GL visual!" is the real
> > > issue.
>
> Would it be possible for you to build the upstream sources, without
> optimization, and try it out?

From Debian or from the developer itself?
With which compile options?

> You shouldn't need to install any of it,
> just run driver/xscreensaver-settings --debug from the build tree. And
> also rename your ~/.xscreensaver so that it runs with default
> settings.

ok

--
kind regards
Marco

Tormod Volden

unread,
Feb 9, 2023, 5:20:04 AM2/9/23
to
On Thu, Feb 9, 2023 at 10:36 AM Marco wrote:
> From Debian or from the developer itself?
> With which compile options?

I was thinking in the first place the upstream developer tarball at
https://www.jwz.org/xscreensaver/download.html
(or get it from the Debian source package). Compile with -g and -O0.

Now it gets a bit complicated if we don't want to install it, but at
the same time let the built xscreensaver-settings find the
screensavers from the already installed Debian packages, we need to
set the exec-prefix. In this case do not run make install afterwards!

./configure CFLAGS="-g -O0" --exec-prefix=/usr
make -j4
driver/xscreensaver-settings --debug

Tormod

Marco

unread,
Feb 9, 2023, 6:20:03 AM2/9/23
to
Am 09.02.2023 schrieb Tormod Volden <debian...@gmail.com>:

> Now it gets a bit complicated if we don't want to install it, but at
> the same time let the built xscreensaver-settings find the
> screensavers from the already installed Debian packages, we need to
> set the exec-prefix. In this case do not run make install afterwards!
>
> ./configure CFLAGS="-g -O0" --exec-prefix=/usr
> make -j4
> driver/xscreensaver-settings --debug

I did it on another machine (same segfault), but there is no
xscreensaver-settings in driver.

The manpage files for it were created.

m@test-moock:~/Downloads/xscreensaver-6.06$ find ./ -name '*xscreensaver-set*'
./driver/xscreensaver-settings.man
./driver/xscreensaver-settings.desktop.in
m@test-moock:~/Downloads/xscreensaver-6.06$

Tormod Volden

unread,
Feb 9, 2023, 7:50:03 AM2/9/23
to
On Thu, Feb 9, 2023 at 12:08 PM Marco wrote:
> I did it on another machine (same segfault), but there is no
> xscreensaver-settings in driver.
>
> The manpage files for it were created.
>
> m@test-moock:~/Downloads/xscreensaver-6.06$ find ./ -name '*xscreensaver-set*'
> ./driver/xscreensaver-settings.man
> ./driver/xscreensaver-settings.desktop.in
> m@test-moock:~/Downloads/xscreensaver-6.06$

That is strange. Were there any warnings or errors, e.g. about missing
libraries? I would think xscreensaver-settings is unconditionally
built and the build would error out if it cannot be built. To be sure,
run "apt build-dep xscreensaver" on the machines before building.

Marco

unread,
Feb 9, 2023, 8:00:05 AM2/9/23
to
Am 09.02.2023 schrieb Tormod Volden <debian...@gmail.com>:

> To be sure, run "apt build-dep xscreensaver" on the machines before
> building.

That fixed it.

I get a segfault too:
m@test-moock:~/Downloads/xscreensaver-6.06/driver$ ./xscreensaver-settings --debug
xscreensaver-settings: 13:54:37: DISPLAY=:0.0
xscreensaver-settings: 13:54:37: added "/usr/libexec/xscreensaver" to $PATH
xscreensaver-settings: 13:54:37: pref changed: GtkSpinButton
xscreensaver-settings: 13:54:37: pref changed: GtkSpinButton
xscreensaver-settings: 13:54:37: pref changed: GtkSpinButton
xscreensaver-settings: 13:54:37: pref changed: GtkSpinButton
xscreensaver-settings: 13:54:37: pref changed: GtkSpinButton
xscreensaver-settings: 13:54:37: pref changed: GtkSpinButton
xscreensaver-settings: 13:54:37: pref changed: GtkSpinButton
xscreensaver-settings: 13:54:37: pref changed: GtkCheckButton
xscreensaver-settings: 13:54:37: pref changed: GtkCheckButton
xscreensaver-settings: 13:54:37: pref changed: GtkCheckButton
xscreensaver-settings: 13:54:37: pref changed: GtkRadioButton
xscreensaver-settings: 13:54:37: pref changed: GtkRadioButton
xscreensaver-settings: 13:54:37: list selection changed
xscreensaver-settings: 13:54:37: scheduling preview "marbling --root"
xscreensaver-settings: 13:54:37: /usr/local/share/xscreensaver/config/marbling.xml does not exist.
xscreensaver-settings: 13:54:37: scheduling preview "marbling --root"
xscreensaver-settings: 13:54:37: /usr/local/share/xscreensaver/config/marbling.xml does not exist.
xscreensaver-settings: 13:54:37: scheduling preview "marbling --root"
xscreensaver-settings: 13:54:37: select list elt 141
xscreensaver-settings: 13:54:37: scheduling preview "marbling --root"
xscreensaver-settings: 13:54:37: /usr/local/share/xscreensaver/config/marbling.xml does not exist.
xscreensaver-settings: 13:54:37: scheduling preview "marbling --root"
xscreensaver-settings: 13:54:37: xscreensaver-gl-visual did not report a GL visual!
Speicherzugriffsfehler
m@test-moock:~/Downloads/xscreensaver-6.06/driver$

Tormod Volden

unread,
Feb 9, 2023, 8:10:56 AM2/9/23
to
You should now be able to get more details in a gdb backtrace, since
you have all debug symbols and no optimization.

Marco

unread,
Feb 9, 2023, 8:30:05 AM2/9/23
to
Am 09.02.2023 schrieb Tormod Volden <debian...@gmail.com>:

> You should now be able to get more details in a gdb backtrace, since
> you have all debug symbols and no optimization.

See the attachment, please.
gdb.log

Tormod Volden

unread,
Feb 9, 2023, 12:30:04 PM2/9/23
to
Thanks! So the segfault is just a small bug in the debug printing, it
can be avoided with this patch:
--- driver/demo-Gtk.c.orig 2022-12-07 02:12:13.577705209 +0100
+++ driver/demo-Gtk.c 2023-02-09 16:59:22.656746738 +0100
@@ -3302,7 +3302,7 @@ fix_preview_visual (state *s)
if (s->debug_p)
fprintf (stderr, "%s: couldn't convert X Visual 0x%lx to a GdkVisual;"
" winging it.\n",
- blurb(), (unsigned long) xvisual->visualid);
+ blurb(), (xvisual ? (unsigned long) xvisual->visualid : 0L));
}

if (s->debug_p)

With above patch you will probably end up the same as when running
without --debug. The NULL xvisual that was causing the segfault is
because /usr/libexec/xscreensaver/xscreensaver-gl-visual doesn't give
any visual, and you thus see the warning "xscreensaver-gl-visual did
not report a GL visual!". It will then use a default visual.

OTOH on my machine, /usr/libexec/xscreensaver/xscreensaver-gl-visual
prints "0x21".

I notice that in bug #1030909 the returned visual is also "0x21" like
on my computer, and it still ends up with the failed "X_SetInputFocus"
request.

So I think the major issue of xscreensaver-settings crashing is the
same as in #1030909 but you have the extra complication of no reported
GL visual (which caused the segfault).

Tormod

Jamie Zawinski

unread,
Feb 9, 2023, 3:20:05 PM2/9/23
to
Not having a GL visual reported here is definitely a problem in the "should never happen" category, so trying to figure out where that's going wrong would be helpful.

--
Jamie Zawinski • jwz.orgdnalounge.com

Tormod Volden

unread,
Feb 9, 2023, 3:30:05 PM2/9/23
to
retitle 1030659 xscreensaver-gl-visual did not report a GL visual!
thanks

On Thu, Feb 9, 2023 at 9:01 PM Jamie Zawinski wrote:
>
> Not having a GL visual reported here is definitely a problem in the "should never happen" category, so trying to figure out where that's going wrong would be helpful.
>

Yes, let's keep this bug report for this missing GL visual issue, and
rather focus on the failed "X_SetInputFocus" request in #1030909.

Tormod

Tormod Volden

unread,
Feb 11, 2023, 5:40:04 PM2/11/23
to
Hi Marco, maybe as a start you can step through xscreensaver-gl-visual
with gdb. Run from your build tree:
gdb ./hacks/glx/xscreensaver-gl-visual
(gdb) break get_gl_visual
(gdb) run
# stops at get_gl_visual
(gdb) next
and then just press enter repeatedly and it will go "next" until end
of the program.

Tormod

Tormod Volden

unread,
Feb 12, 2023, 7:00:05 AM2/12/23
to
Teoh, can you please also try this (for the case you see the
"xscreensaver-gl-visual did not report a GL visual!" message)?

Tormod

Mamoru TASAKA

unread,
Feb 12, 2023, 10:20:03 AM2/12/23
to
Well, I don't know well about deb packaging, but:

> Versions of packages xscreensaver suggests:
> ii firefox [www-browser] 109.0-1
> pn fortune <none>
> pn gdm3 | kdm-gdmcompat <none>
> ii lynx [www-browser] 2.9.0dev.12-1
> ii palemoon [www-browser] 32.0.0-1.gtk2
> pn qcam | streamer <none>
> pn xdaliclock <none>
> pn xfishtank <none>
> pn xscreensaver-data-extra <none>
> pn xscreensaver-gl <none>
> pn xscreensaver-gl-extra <none>

As far as I googled, "pn" means that the package is "purged and not installed",
so (unless I am wrong) this means that xscreensaver-gl is not installed.

On the other hand, this seems to be saying:
https://sources.debian.org/src/xscreensaver/6.06%2Bdfsg1-2/debian/xscreensaver-gl.install.stub/
that xscreensaver-gl-visual binary is in xscreensaver-gl.

So maybe xscreensaver-gl-visual binary does not exist on system
at the first place??

H. S. Teoh

unread,
Feb 12, 2023, 2:50:04 PM2/12/23
to
On Fri, Feb 10, 2023 at 08:58:41AM +0100, Tormod Volden wrote:
> On Fri, Feb 10, 2023 at 1:18 AM H. S. Teoh wrote:
>
> > xscreensaver-settings: 16:11:29: xscreensaver-gl-visual did not report a GL visual!
> > Segmentation fault
> > --------------------------snip-----------------------
> >
> > Apparently there *is* a segfault, even though it doesn't appear that way
> > when I run the official binaries. This looks to be the same bug as
> > #1030659 after all.
>
> Teoh, can you please apply the patch I posted in #1030659 to get rid
> of the segfault?

Hi Tormod,

Sorry for taking so long to get back to you. Here's the output after I
recompiled with the patch:

------------------------------snip---------------------------------------
xscreensaver-settings: 11:15:48: DISPLAY=:0.0
xscreensaver-settings: 11:15:48: added "/usr/libexec/xscreensaver" to $PATH
xscreensaver-settings: 11:15:48: pref changed: GtkSpinButton
xscreensaver-settings: 11:15:48: pref changed: GtkSpinButton
xscreensaver-settings: 11:15:48: pref changed: GtkSpinButton
xscreensaver-settings: 11:15:48: pref changed: GtkSpinButton
xscreensaver-settings: 11:15:48: pref changed: GtkSpinButton
xscreensaver-settings: 11:15:48: pref changed: GtkSpinButton
xscreensaver-settings: 11:15:48: pref changed: GtkSpinButton
xscreensaver-settings: 11:15:48: pref changed: GtkCheckButton
xscreensaver-settings: 11:15:48: pref changed: GtkCheckButton
xscreensaver-settings: 11:15:48: pref changed: GtkCheckButton
xscreensaver-settings: 11:15:48: pref changed: GtkRadioButton
xscreensaver-settings: 11:15:48: pref changed: GtkRadioButton
xscreensaver-settings: 11:15:48: list selection changed
xscreensaver-settings: 11:15:48: scheduling preview "moebiusgears --root"
xscreensaver-settings: 11:15:48: /usr/local/share/xscreensaver/config/moebiusgears.xml does not exist.
xscreensaver-settings: 11:15:48: scheduling preview "moebiusgears --root"
xscreensaver-settings: 11:15:48: /usr/local/share/xscreensaver/config/moebiusgears.xml does not exist.
xscreensaver-settings: 11:15:48: scheduling preview "moebiusgears --root"
xscreensaver-settings: 11:15:48: select list elt 145
xscreensaver-settings: 11:15:48: scheduling preview "moebiusgears --root"
xscreensaver-settings: 11:15:48: /usr/local/share/xscreensaver/config/moebiusgears.xml does not exist.
xscreensaver-settings: 11:15:48: scheduling preview "moebiusgears --root"
xscreensaver-settings: 11:15:48: xscreensaver-gl-visual did not report a GL visual!
xscreensaver-settings: 11:15:48: couldn't convert X Visual 0x0 to a GdkVisual; winging it.
xscreensaver-settings: 11:15:48: using default visual 0x0
xscreensaver-settings: 11:15:48: saved screenshot 0x1a00010 1920x1080 for window 0x1a0000f 425x238+437+116

xscreensaver-settings: 11:15:48: X error:
xscreensaver-settings: Failed request: BadMatch (invalid parameter attributes)
xscreensaver-settings: Major opcode: 42 (X_SetInputFocus)
xscreensaver-settings: Resource id: 0x1a00007
xscreensaver-settings: Serial number: 451 / 452
------------------------------snip---------------------------------------


> In your first post (with the Debian binaries)
> xscreensaver-gl-visual reported 0x21, and there was no segfault. I
> wonder why xscreensaver-gl-visual is giving different results. Debian
> is not patching anything in this regard, although build flags can be
> different in your local build. Can you please attach your config.h?
> Did you install all standard build dependencies for xscreensaver?
[...]

I did an `apt-get builddep xscreensaver`. That ought to have been
enough, right?

Here's my config.h:

------------------------------snip---------------------------------------
/* config.h. Generated from config.h.in by configure. */
/* config.h.in. Generated from configure.ac by autoheader. */


/* xscreensaver, Copyright Š 1991-2022 Jamie Zawinski.
* Generate this file by running 'configure' rather than editing it by hand.
*/


/* Define this to allow root to unlock, when not using PAM. */
/* #undef ALLOW_ROOT_PASSWD */

/* Define to 1 if translation of program messages to the user's native
language is requested. */
#define ENABLE_NLS 1

/* This is the name of the gettext package to use. */
#define GETTEXT_PACKAGE "xscreensaver"

/* Define this if gettimeofday takes two arguments. */
#define GETTIMEOFDAY_TWO_ARGS 1

/* Define this for Solaris getpwanam. */
/* #undef HAVE_ADJUNCT_PASSWD */

/* Define to 1 if you have the Mac OS X function
CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */
/* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */

/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in
the CoreFoundation framework. */
/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */

/* Define to 1 if you have the <crypt.h> header file. */
#define HAVE_CRYPT_H 1

/* Define if the GNU dcgettext() function is already present or preinstalled.
*/
#define HAVE_DCGETTEXT 1

/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
*/
#define HAVE_DIRENT_H 1

/* Define this if you have the X Double Buffer Extension. */
#define HAVE_DOUBLE_BUFFER_EXTENSION 1

/* Define this if you have the XDPMS extension. */
#define HAVE_DPMS_EXTENSION 1

/* Define this if OpenGL bindings are via EGL instead of GLX. */
#define HAVE_EGL 1

/* Define this for DEC/SCO "Enhanced Security" with getprpwnam. */
/* #undef HAVE_ENHANCED_PASSWD */

/* Define to 1 if you have the `fcntl' function. */
#define HAVE_FCNTL 1

/* Define this if you have forkpty. */
#define HAVE_FORKPTY 1

/* Define this if you have GDK-Pixbuf. */
#define HAVE_GDK_PIXBUF 1

/* Define this if you have the gdk_pixbuf_apply_embedded_orientation function
(gdk-pixbuf 2.12). */
#define HAVE_GDK_PIXBUF_APPLY_EMBEDDED_ORIENTATION 1

/* Define this if you have GDK-Pixbuf-Xlib. */
/* #undef HAVE_GDK_PIXBUF_XLIB */

/* Define to 1 if you have the `getaddrinfo' function. */
#define HAVE_GETADDRINFO 1

/* Define to 1 if you have the `getcwd' function. */
#define HAVE_GETCWD 1

/* Define this if you have getifaddrs. */
#define HAVE_GETIFADDRS 1

/* Define if the GNU gettext() function is already present or preinstalled. */
#define HAVE_GETTEXT 1

/* Define this if you have gettimeofday. */
#define HAVE_GETTIMEOFDAY 1

/* Define to 1 if you have the `getwd' function. */
#define HAVE_GETWD 1

/* Define this if you have OpenGL. */
#define HAVE_GL 1

/* Define this if the OpenGL version is 1.1 or newer. */
#define HAVE_GLBINDTEXTURE 1

/* Define this if you have the GL Extrusion library. */
#define HAVE_GLE 1

/* Define this if GL Extrusion is version 3. */
#define HAVE_GLE3 1

/* Define this if the native OpenGL library is OpenGLES 1.x. */
#define HAVE_GLES 1

/* Define this if the native OpenGL library is OpenGLES 2.x. */
#define HAVE_GLES2 1

/* Define this if the native OpenGL library is OpenGLES 3.x. */
#define HAVE_GLES3 1

/* Define this if OpenGL supports the OpenGL Shading Language. */
#define HAVE_GLSL 1

/* Define this if you have Gtk 2.x. */
#define HAVE_GTK 1

/* Define this for HPUX so-called "Secure Passwords". */
/* #undef HAVE_HPUX_PASSWD */

/* Define this if ping uses struct icmp.icmp_id. */
#define HAVE_ICMP 1

/* Define this if ping uses struct icmphdr.un.echo.id. */
#define HAVE_ICMPHDR 1

/* Define if you have the iconv() function and it works. */
/* #undef HAVE_ICONV */

/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1

/* Define this if you have the JPEG Group's JPEG library. */
#define HAVE_JPEGLIB 1

/* Define this to emulate OpenGL 1.3 in terms of OpenGLES 1.x. */
/* #undef HAVE_JWZGLES */

/* Define this if you want to use Kerberos authentication to lock/unlock the
screen instead of PAM. */
/* #undef HAVE_KERBEROS */

/* Define this if you have Kerberos 5. */
/* #undef HAVE_KERBEROS5 */

/* Define this if your system has libcap. */
/* #undef HAVE_LIBCAP */

/* Define this if you have libelogind. */
/* #undef HAVE_LIBELOGIND */

/* Define this if you have the Portable Network Graphics library. */
#define HAVE_LIBPNG 1

/* Define this if you have libsystemd. */
#define HAVE_LIBSYSTEMD 1

/* Using the MIT-SCREEN-SAVER extension means that the X server will crash at
random times, and fading and hysteresis won't work. Don't use this. You'll
be sorry. See comment in xscreensaver.c. */
/* #undef HAVE_MIT_SAVER_EXTENSION */

/* Define this if you have Motif. */
/* #undef HAVE_MOTIF */

/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
/* #undef HAVE_NDIR_H */

/* Define to 1 if you have the `nice' function. */
#define HAVE_NICE 1

/* Define this if you have Pluggable Authentication Modules. */
#define HAVE_PAM 1

/* Define this if you have pam_fail_delay. */
/* #undef HAVE_PAM_FAIL_DELAY */

/* Define this if you have a Linux-like /proc/interrupts file which can be
examined to determine when keyboard activity has occurred, and you use PS/2
input devices instead of USB. */
/* #undef HAVE_PROC_INTERRUPTS */

/* Define this if you have a Linux-like /proc/.../oom_score_adj file which can
be adjusted by root to exempt us from the out-of-memory killer. */
#define HAVE_PROC_OOM 1

/* Define this if you have POSIX threads. */
#define HAVE_PTHREAD 1

/* Have PTHREAD_PRIO_INHERIT. */
#define HAVE_PTHREAD_PRIO_INHERIT 1

/* Define to 1 if you have the <pty.h> header file. */
#define HAVE_PTY_H 1

/* Define to 1 if you have the `putenv' function. */
#define HAVE_PUTENV 1

/* Define this if your system uses getpwnam_shadow. */
/* #undef HAVE_PWNAM_SHADOW_PASSWD */

/* Define this if you have the Resize and Rotate extension. */
#define HAVE_RANDR 1

/* Define this if the RANDR library is version 1.2 or newer. */
#define HAVE_RANDR_12 1

/* Define to 1 if you have the `realpath' function. */
#define HAVE_REALPATH 1

/* Define this to enable recording of videos. */
/* #undef HAVE_RECORD_ANIM */

/* Define to 1 if you have the `sbrk' function. */
#define HAVE_SBRK 1

/* Define to 1 if you have the `select' function. */
#define HAVE_SELECT 1

/* Define to 1 if you have the `setlocale' function. */
#define HAVE_SETLOCALE 1

/* Define to 1 if you have the `setpriority' function. */
#define HAVE_SETPRIORITY 1

/* Define to 1 if you have the `setrlimit' function. */
#define HAVE_SETRLIMIT 1

/* Define this if you have the SGI SCREEN_SAVER extension. */
/* #undef HAVE_SGI_SAVER_EXTENSION */

/* Define this if you have the SGI-VIDEO-CONTROL extension. */
/* #undef HAVE_SGI_VC_EXTENSION */

/* Define this if your system uses /etc/shadow. */
#define HAVE_SHADOW_PASSWD 1

/* Define to 1 if you have the `sigaction' function. */
#define HAVE_SIGACTION 1

/* Define to 1 if you have the `sigtimedwait' function. */
#define HAVE_SIGTIMEDWAIT 1

/* Define to 1 if you have the `sqrtf' function. */
/* #undef HAVE_SQRTF */

/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1

/* Define to 1 if you have the <stdio.h> header file. */
#define HAVE_STDIO_H 1

/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1

/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1

/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1

/* Define to 1 if `sa_len' is a member of `struct sockaddr'. */
/* #undef HAVE_STRUCT_SOCKADDR_SA_LEN */

/* Define to 1 if you have the `syslog' function. */
#define HAVE_SYSLOG 1

/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
*/
/* #undef HAVE_SYS_DIR_H */

/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
*/
/* #undef HAVE_SYS_NDIR_H */

/* Define to 1 if you have the <sys/select.h> header file. */
#define HAVE_SYS_SELECT_H 1

/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1

/* Define to 1 if you have the <sys/termios.h> header file. */
#define HAVE_SYS_TERMIOS_H 1

/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1

/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
#define HAVE_SYS_WAIT_H 1

/* Define to 1 if you have the `uname' function. */
#define HAVE_UNAME 1

/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1

/* Define to 1 if you have the <util.h> header file. */
/* #undef HAVE_UTIL_H */

/* Define this if you have XF86VidModeGetViewPort, for virtual desktops. */
#define HAVE_XF86VMODE 1

/* Define this if you have XF86VidModeSetGamma, for fading. */
#define HAVE_XF86VMODE_GAMMA 1

/* Define this if you have XF86VidModeSetGammaRamp, for fading. */
#define HAVE_XF86VMODE_GAMMA_RAMP 1

/* Define this if you have libXft2. */
#define HAVE_XFT 1

/* Define this if you have XHPDisableReset, which allows Ctrl-Sh-Reset to be
temporarily disabled. */
/* #undef HAVE_XHPDISABLERESET */

/* Define this if you have the X11R5 XIDLE extension. */
/* #undef HAVE_XIDLE_EXTENSION */

/* Define this if you have the Xinerama extension. */
#define HAVE_XINERAMA 1

/* Define this if you have the XInput2 extension. */
#define HAVE_XINPUT 1

/* Define this if you have the X Keyboard Extension. */
#define HAVE_XKB 1

/* Define this if you have the XmComboBox Motif 2.0 widget. */
/* #undef HAVE_XMCOMBOBOX */

/* Define this if you have the XML library. */
#define HAVE_XML 1

/* Define this if you have the X Shared Memory Extension. */
#define HAVE_XSHM_EXTENSION 1

/* Define this if you have the function Xutf8DrawString. */
#define HAVE_XUTF8DRAWSTRING 1

/* Define this to remove the option of locking the screen at all. */
/* #undef NO_LOCKING */

/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT ""

/* Define to the full name of this package. */
#define PACKAGE_NAME ""

/* Define to the full name and version of this package. */
#define PACKAGE_STRING ""

/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME ""

/* Define to the home page for this package. */
#define PACKAGE_URL ""

/* Define to the version of this package. */
#define PACKAGE_VERSION ""

/* Whether PAM should check the result of account modules when authenticating.
*/
/* #undef PAM_CHECK_ACCOUNT_TYPE */

/* The name of the "xscreensaver" PAM service. */
#define PAM_SERVICE_NAME "xscreensaver"

/* Define if pam_strerror requires two arguments. */
#define PAM_STRERROR_TWO_ARGS 1

/* Define to necessary symbol if this constant uses a non-standard name on
your system. */
/* #undef PTHREAD_CREATE_JOINABLE */

/* Return type of signal handlers */
#define RETSIGTYPE void

/* Define to 1 if all of the C90 standard headers exist (not just the ones
required in a freestanding environment). This macro is provided for
backward compatibility; new code need not use it. */
#define STDC_HEADERS 1

/* Stare into the void. */
/* #undef XPointer */

/* Define to 1 if the X Window System is missing or not being used. */
/* #undef X_DISPLAY_MISSING */

/* Number of bits in a file offset, on hosts where this is settable. */
/* #undef _FILE_OFFSET_BITS */

/* Define for large files, on AIX-style hosts. */
/* #undef _LARGE_FILES */

/* Define to empty if `const' does not conform to ANSI C. */
/* #undef const */

/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
/* #undef inline */
#endif

/* Define to `int' if <sys/types.h> does not define. */
/* #undef mode_t */

/* Define as a signed integer type capable of holding a process identifier. */
/* #undef pid_t */

/* Define to `unsigned int' if <sys/types.h> does not define. */
/* #undef size_t */

/* Define to `int' if <sys/types.h> or <sys/socket.h> does not define. */
/* #undef socklen_t */
------------------------------snip---------------------------------------
[...]

Here's the odd thing. If I run `hacks/glx/xscreensaver-gl-visual`, it
prints 0x21 and exits without an error. But for some reason, when I run
`driver/xscreensaver-settings --debug`, it prints the message
"xscreensaver-gl-visual did not report a GL visual!", as you can see
from the output I pasted at the top of this message.

Anyway, here's the gdb trace of xscreensaver-gl-visual:

------------------------------snip---------------------------------------
$ gdb hacks/glx/xscreensaver-gl-visual
GNU gdb (Debian 12.1-4+b1) 12.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from hacks/glx/xscreensaver-gl-visual...
(gdb) break get_gl_visual
Breakpoint 1 at 0x25dd: file visual-gl.c, line 50.
(gdb) run
Starting program:
/usr/src/xscreensaver/xscreensaver-6.06+dfsg1/hacks/glx/xscreensaver-gl-visual
[Thread debugging using libthread_db enabled]
Using host libthread_db library
"/lib/x86_64-linux-gnu/libthread_db.so.1".

Breakpoint 1, get_gl_visual (screen=0x55555555f5e0) at visual-gl.c:50
50 Display *dpy = DisplayOfScreen (screen);
(gdb) next
57 EGLConfig egl_config = 0;
(gdb)
58 int egl_major = -1, egl_minor = -1;
(gdb)
61 egl_display = eglGetDisplay ((EGLNativeDisplayType) dpy);
(gdb)
62 if (!egl_display)
(gdb)
68 if (! eglInitialize (egl_display, &egl_major, &egl_minor))
(gdb)

[New Thread 0x7fffea9ff6c0 (LWP 473310)]
[New Thread 0x7fffea1fe6c0 (LWP 473311)]
[New Thread 0x7fffe99fd6c0 (LWP 473312)]
[New Thread 0x7fffe91fc6c0 (LWP 473313)]
77 get_egl_config (dpy, egl_display, -1, &egl_config);
(gdb)
78 if (!egl_config) abort();
(gdb)
80 if (!eglGetConfigAttrib (egl_display, egl_config,
(gdb)
87 v = id_to_visual (screen, vid);
(gdb)
88 if (!v)
(gdb)
94 return v;
(gdb)
173 }
(gdb)
main (argc=1, argv=0x7fffffffea78) at xscreensaver-gl-visual.c:81
81 if (visual)
(gdb)
82 printf ("0x%x\n", (unsigned int) XVisualIDFromVisual
(visual));
(gdb)
0x21
86 exit (0);
(gdb)
[Thread 0x7fffe91fc6c0 (LWP 473313) exited]
[Thread 0x7fffe99fd6c0 (LWP 473312) exited]
[Thread 0x7fffea1fe6c0 (LWP 473311) exited]
[Thread 0x7fffea9ff6c0 (LWP 473310) exited]
[Inferior 1 (process 473307) exited normally]
(gdb)

quit
------------------------------snip---------------------------------------

As you can see, it correctly reports 0x21 and exits sucessfully.

//

Anyway, I decided to do a little digging of my own. I discovered that
the reason for the "xscreensaver-gl-visual did not report a GL visual!"
message was because xscreensaver-settings couldn't find the
xscreensaver-gl-visual binary (because I had downgraded the package to
the previous working version, so the xscreensaver-gl-visual didn't exist
in $PATH anymore, and the version that I built from source wasn't in
$PATH either). So I ran it with PATH manually set so that it could find
xscreensaver-gl-visual, and here's the output:

------------------------------snip---------------------------------------
$ PATH=hacks/glx driver/xscreensaver-settings --debug
xscreensaver-settings: 11:34:53: DISPLAY=:0.0
xscreensaver-settings: 11:34:53: added "/usr/libexec/xscreensaver" to $PATH
xscreensaver-settings: 11:34:53: pref changed: GtkSpinButton
xscreensaver-settings: 11:34:53: pref changed: GtkSpinButton
xscreensaver-settings: 11:34:53: pref changed: GtkSpinButton
xscreensaver-settings: 11:34:53: pref changed: GtkSpinButton
xscreensaver-settings: 11:34:53: pref changed: GtkSpinButton
xscreensaver-settings: 11:34:53: pref changed: GtkSpinButton
xscreensaver-settings: 11:34:53: pref changed: GtkSpinButton
xscreensaver-settings: 11:34:53: pref changed: GtkCheckButton
xscreensaver-settings: 11:34:53: pref changed: GtkCheckButton
xscreensaver-settings: 11:34:53: pref changed: GtkCheckButton
xscreensaver-settings: 11:34:53: pref changed: GtkRadioButton
xscreensaver-settings: 11:34:53: pref changed: GtkRadioButton
xscreensaver-settings: 11:34:53: list selection changed
xscreensaver-settings: 11:34:53: scheduling preview "moebiusgears --root"
xscreensaver-settings: 11:34:53: /usr/local/share/xscreensaver/config/moebiusgears.xml does not exist.
xscreensaver-settings: 11:34:53: scheduling preview "moebiusgears --root"
xscreensaver-settings: 11:34:53: /usr/local/share/xscreensaver/config/moebiusgears.xml does not exist.
xscreensaver-settings: 11:34:53: scheduling preview "moebiusgears --root"
xscreensaver-settings: 11:34:53: select list elt 145
xscreensaver-settings: 11:34:53: scheduling preview "moebiusgears --root"
xscreensaver-settings: 11:34:53: /usr/local/share/xscreensaver/config/moebiusgears.xml does not exist.
xscreensaver-settings: 11:34:53: scheduling preview "moebiusgears --root"
xscreensaver-settings: 11:34:53: xscreensaver-gl-visual says the GL visual is 0x21.
xscreensaver-settings: 11:34:53: using non-default visual 0x21
xscreensaver-settings: 11:34:53: saved screenshot 0x1a00010 1920x1080 for window 0x1a0000f 425x238+437+116

xscreensaver-settings: 11:34:53: X error:
xscreensaver-settings: Failed request: BadMatch (invalid parameter attributes)
xscreensaver-settings: Major opcode: 42 (X_SetInputFocus)
xscreensaver-settings: Resource id: 0x1a00007
xscreensaver-settings: Serial number: 451 / 452
------------------------------snip---------------------------------------

This time round it did find the visual. But nevertheless it failed on
X_SetInputFocus so it aborts with exit status 255.

Hope this information helps track down this problem. Thanks!


T

--
Never trust an operating system you don't have source for! -- Martin Schulze

Jamie Zawinski

unread,
Feb 12, 2023, 3:20:04 PM2/12/23
to
Wow it's almost like, as I have been saying for years, dividing the single XScreenSaver application that I maintain, test and distribute into multiple bafflingly-named packages that can be left out willy nilly causes repeated, predictable, time-wasting and extremely irritating problems for everybody, while solving no problems whatsoever.

Put all of XScreenSaver into one package already, for fuck's sake!

Tormod Volden

unread,
Feb 13, 2023, 12:40:04 PM2/13/23
to
severity 1030659 normal
thanks

On Sun, Feb 12, 2023 at 4:15 PM Mamoru TASAKA wrote:
>
> So maybe xscreensaver-gl-visual binary does not exist on system
> at the first place??

Well spotted, Mamoru! Thanks a lot for clearing that up. OK, so this
is not a big deal then. I guess sorting out the best GL visual for a
non-GL hack is not so important, and the fallback system visual from
gdk is alright. This message (and the segfault in the debug print) was
kind of a red herring in the original report. Note that we deal with
the X_SetInputFocus X error in bug #1030909.

Marco and Teoh, out of curiosity, why do you not have xscreensaver-gl
installed on your systems?

Tormod

Jamie Zawinski

unread,
Feb 13, 2023, 1:20:04 PM2/13/23
to

> Marco and Teoh, out of curiosity, why do you not have xscreensaver-gl
> installed on your systems?

Because you went out of your way to make it trivially easy for someone to drive their car off the lot with no seat belts or alternator.

Timothy Bell

unread,
Feb 13, 2023, 1:50:04 PM2/13/23
to

There's actually a good question to ask here.  Why, exactly, is xscreensaver divided up the way that it is in Debian? 

Jamie Zawinski

unread,
Feb 13, 2023, 2:20:03 PM2/13/23
to
> There's actually a good question to ask here. Why, exactly, is xscreensaver divided up the way that it is in Debian?

Two reasons:

1: Because in 1998, some dude wanted to save a few hundred kilobytes on his machine that didn't have a GPU, and had a hard drive an order of magnitude smaller than the one on my keychain.

2: Because the Debian (and Fedora) maintainers enjoy regularly wasting hours of my and their time on obscure bugs where the solution turns out to be "you installed *half* of the application, and nobody has ever tested it that way".


It is trivially easy to fix this bug: they don't even have to re-write their build scripts. The problem can be solved with a one-line change: simply make "xscreensaver" depend upon "xscreensaver-data", "xscreensaver-data-extra", "xscreensaver-gl", "xscreensaver-gl-extra", "xscreensaver-screensaver-bsod" and "xscreensaver-screensaver-webcollage" and whatever else is lying around.


Leaving out random pieces of XScreenSaver and hoping that it still works is absolutely, explicitly unsupported by me, the author. That the distro maintainers continue to intentionally insist upon screwing things up this way is absolutely baffling to me. I have been begging them to fix this for literally decades.

I can *maybe* see the argument for allowing the hacks to be installed without the XScreenSaver daemon, for the case where some other screen saver framework wanted to run them -- except that none of the other extant frameworks can do that. They used to, but that was years ago.

However, if the XScreenSaver daemon is installed, then *all* of XScreenSaver must be installed, or else you get all kinds of weird bugs.

That is how it was designed, and that is how it was tested. Trying to install bits and pieces of it and hoping that it still holds together DEMONSTRABLY does not work.

Marco

unread,
Mar 8, 2023, 3:10:04 AM3/8/23
to
On Mon, 13 Feb 2023 18:28:29 +0100 Tormod Volden
<debian...@gmail.com> wrote:

> Marco and Teoh, out of curiosity, why do you not have xscreensaver-gl
> installed on your systems?

I only need it to lock my screen. I don't need special 3D screensavers.
As xscreensaver-gl isn't a dependency, it didn't get installed
automatically.

If it is necessary to be installed, it must be a dependency.
0 new messages