Red Hat Bugzilla – Bug 101920
xscreensaver hangs on failed password
Last modified: 2014-03-16 22:37:56 EDT
From Bugzilla Helper:
User-Agent: Mozilla/5.0 Galeon/1.2.11 (X11; Linux i686; U;) Gecko/20030720
Description of problem:
If you enter the password wrong when xscreensaver has the screen locked it
hangs. Then I had to ctrl-alt-f1, login, and kill it. Finally I had to restart
sawfish to restore keyboard input in X.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Login to X
2. Lock Screen
3. Enter password incorrectly
Actual Results: xscreensaver hangs
Expected Results: xscreensaver times out and prompts for password again
Odd, works for me. What sort of auth are you using?
Standard shadow via pam
I downgraded and the problem went away. I will double check it.
Upgraded back to 4.11-1, ran killall xscreensaver, and ran xscreensaver through
the run dialog of the gnome panel. Next I clicked settings and clicked closed.
Selected Lock Screen from the menu, typed gibberish, waited 10 seconds, and saw
no change. xscreensaver had hung. Used ctrl-alt-f1 ctrl-alt-f7 and found the
xscreensaver dialog box hadn't refreshed. Used ctrl-alt-f1 again, logged in as
root, and ran killall xscreensaver. Went back into X with ctrl-alt-f7, and
restarted sawfish to restore keyboard input.
Hm, just to the eliminate the differences between our systems, what happens if
you use something other than sawfish?
Created attachment 93512 [details]
strace log of xscreensaver 4.11
What's the log message?
I ran strace xscreensaver >xscreensaver.log 2>&1, caused it to hang, and then
killed it. That is what the log is off.
Metacity instead of sawfish didn't help. I had to restart metacity to restore
Aug 7 21:11:45 proton xscreensaver(pam_unix): authentication failure;
logname= uid=500 euid=500 tty=:0.0 ruser= rhost= user=edgan
Hm, nothing obvious there. Are you using any particular screensaver?
Can you point me to a debuginfo rpm for xscreensaver-4.11-1?
I am running an oddball setup. Severn+glibc test release(to fix gtk2 issue)+mass
rawhide update via yum+arjanv's kernel-2.6.0-0.test2.1.30 test kernel+updates to
packages related to using 2.6.0.
2.6? Does this happen with a 2.4 kernel? You do have pam-0.77-3 installed, correct?
gdb has nothing interesting to say, but then I don't really know how to use it.
(cause xscreensaver to hang)
(no crash shown in gdb)
Can you post the backtrace anyway? :)
#0 0xffffe410 in ?? ()
#1 0xbffff548 in ?? ()
#2 0xbffff578 in ?? ()
2.4.21-20.1.2024.2.1.nptl(Servern kernel) gives the same results as
The screensaver is set to random, as is the default.
Logging in as a user with the default desktop didn't help.
Recompiling xscreensaver-4.11-1 on my machine didn't help.
Recompiled 4.10-2 on my machine, and it works. So that points to the minor
changes between 4.10 and 4.11, instead of libraries or compiler directly.
Verbose output from xscreensaver-4.11-1:
xscreensaver: 07:25:24: LOCK ClientMessage received; activating and locking.
xscreensaver: 07:25:24: 0: locked mode switching.
xscreensaver: 07:25:24: blanking screen at Fri Aug 8 07:25:24 2003.
xscreensaver: 07:25:24: 0: grabbing keyboard on 0x40... GrabSuccess.
xscreensaver: 07:25:24: 0: grabbing mouse on 0x40... GrabSuccess.
xscreensaver: 07:25:24: fading...
xscreensaver: 07:25:25: fading done.
xscreensaver: 07:25:26: 0: visual 0x24 (TrueColor, depth: 24, cmap: 256)
xscreensaver: 07:25:26: 0: saver window is 0xc00024.
xscreensaver: 07:25:26: 0: destroyed old saver window 0xc00001.
xscreensaver: 07:25:26: 0: spawning "engine -root" in pid 25499.
Xlib: extension "XFree86-DRI" missing on display ":0.0".
xscreensaver: 07:25:27: 0: suspending pid 25499 (engine)
xscreensaver: 07:25:27: prompting for password.
xscreensaver: 07:25:27: 0: creating password dialog.
xscreensaver: 07:25:27: child pid 25499 (engine) stopped with SIGSTOP.
xscreensaver: 07:25:27: 0: mouse is at 691,914.
xscreensaver: 07:25:27: grabbing server...
xscreensaver: 07:25:27: 0: ungrabbing mouse (was 0x40).
xscreensaver: 07:25:27: 0: grabbing mouse on 0xc0002a... GrabSuccess.
xscreensaver: 07:25:27: ungrabbing server.
xscreensaver: 07:25:28: pam_start ("xscreensaver", "edgan", ...) ==> 0 (Success)
xscreensaver: 07:25:28: pam_set_item (p, PAM_TTY, ":0.0") ==> 0 (Success)
xscreensaver: 07:25:28: PAM ECHO_OFF("Password: ") ==> password
zsh: killed xscreensaver -verbose -no-capture
Tried reversing the passwd-pam.c changes between 4.10 and 4.11. First time it
crashed on a bad password, and the second time it hung like it had before. Seems
that other parts changed that are dependent on the changes in passwd-pam.c. Most
of the changes seem to be converting zeros in function calls to NULLs.
Created attachment 93548 [details]
Changes between 4.10 and 4.11 that contain the bug
I did alot of of testing, and isolated the bug to the changes in contains in
this patch. If I reverse this patch against 4.11 it compiles and doesn't hang.
Created attachment 93549 [details]
I have further isolated it to the changes in the above patch. At the moment I
am almost sure it is one of the changes to passwd-pam.c, but if you reverse
that patch the 4.10 version of passwd-pam.c crashes, because of the changes to
subprocs.c and xscreensaver.h
Created attachment 93550 [details]
Patch containing the changes that causes the bug
If I reverse the above tiny patch against xscreensaver 4.11 the bug goes away,
and there doesn't seem to be any issues for me.
I believe the replacement of block_sigchld() with a call to sigtimedwait()
causes the hang.
Created attachment 93551 [details]
Removes timeout.tv_nsec = 1;
The above patch fixes the hang issue while still using sigtimedwait()
I noticed the same code is repeated farther down in the same file. The only
difference was "timeout.tv_nsec = 1;". So I removed it and recompiled
xscreensaver. The resulting xscreensaver doesn't hang.
Yup, this will be fixed in 4.12-1, which I hope to get to building in the next
day or two.
*** Bug 102840 has been marked as a duplicate of this bug. ***
*** Bug 103195 has been marked as a duplicate of this bug. ***
Fixed in 4.12-1.