Bug 101920 - xscreensaver hangs on failed password
Summary: xscreensaver hangs on failed password
Alias: None
Product: Red Hat Raw Hide
Classification: Retired
Component: xscreensaver   
(Show other bugs)
Version: 1.0
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Bill Nottingham
QA Contact:
: 102840 103195 (view as bug list)
Depends On:
TreeView+ depends on / blocked
Reported: 2003-08-08 02:35 UTC by Nathan G. Grennan
Modified: 2014-03-17 02:37 UTC (History)
3 users (show)

Fixed In Version: 4.12-1
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2003-08-27 22:03:48 UTC
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
strace log of xscreensaver 4.11 (201.18 KB, text/plain)
2003-08-08 04:05 UTC, Nathan G. Grennan
no flags Details
Changes between 4.10 and 4.11 that contain the bug (6.38 KB, text/plain)
2003-08-09 18:38 UTC, Nathan G. Grennan
no flags Details
Further isolated (3.80 KB, text/plain)
2003-08-09 19:33 UTC, Nathan G. Grennan
no flags Details
Patch containing the changes that causes the bug (481 bytes, patch)
2003-08-09 19:50 UTC, Nathan G. Grennan
no flags Details | Diff
Removes timeout.tv_nsec = 1; (428 bytes, text/plain)
2003-08-09 20:11 UTC, Nathan G. Grennan
no flags Details

Description Nathan G. Grennan 2003-08-08 02:35:53 UTC
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):

How reproducible:

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

Additional info:

Comment 1 Bill Nottingham 2003-08-08 02:45:13 UTC
Odd, works for me. What sort of auth are you using?

Comment 2 Nathan G. Grennan 2003-08-08 02:59:40 UTC
Standard shadow via pam

I downgraded and the problem went away. I will double check it.

Comment 3 Nathan G. Grennan 2003-08-08 03:10:10 UTC
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.

Comment 4 Bill Nottingham 2003-08-08 03:15:37 UTC
Hm, just to the eliminate the differences between our systems, what happens if
you use something other than sawfish?

Comment 5 Nathan G. Grennan 2003-08-08 04:05:26 UTC
Created attachment 93512 [details]
strace log of xscreensaver 4.11

Comment 6 Bill Nottingham 2003-08-08 04:07:22 UTC
What's the log message?

Comment 7 Nathan G. Grennan 2003-08-08 04:08:58 UTC
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
keyboard input.

Comment 8 Nathan G. Grennan 2003-08-08 04:13:01 UTC
Aug  7 21:11:45 proton xscreensaver(pam_unix)[5760]: authentication failure;
logname= uid=500 euid=500 tty=:0.0 ruser= rhost=  user=edgan

Comment 9 Bill Nottingham 2003-08-08 04:16:23 UTC
Hm, nothing obvious there. Are you using any particular screensaver?

Comment 10 Nathan G. Grennan 2003-08-08 04:23:32 UTC
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.

Comment 11 Bill Nottingham 2003-08-08 04:27:02 UTC

2.6? Does this happen with a 2.4 kernel? You do have pam-0.77-3 installed, correct?

Comment 12 Nathan G. Grennan 2003-08-08 04:46:37 UTC
yes, pam-0.77-3

Comment 13 Nathan G. Grennan 2003-08-08 04:59:00 UTC
gdb has nothing interesting to say, but then I don't really know how to use it.

I did

gdb xscreensaver
(cause xscreensaver to hang)
(no crash shown in gdb)
(nothing useful)

Comment 14 Bill Nottingham 2003-08-08 05:01:32 UTC
Can you post the backtrace anyway? :)

Comment 15 Nathan G. Grennan 2003-08-08 05:14:42 UTC

#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 

Comment 16 Nathan G. Grennan 2003-08-08 05:17:28 UTC
The screensaver is set to random, as is the default.

Comment 17 Nathan G. Grennan 2003-08-08 05:41:09 UTC
Logging in as a user with the default desktop didn't help.

Recompiling xscreensaver-4.11-1 on my machine didn't help.

Comment 18 Nathan G. Grennan 2003-08-08 05:55:26 UTC
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.

Comment 19 Nathan G. Grennan 2003-08-08 14:29:23 UTC
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

Comment 20 Nathan G. Grennan 2003-08-08 14:32:41 UTC
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.

Comment 21 Nathan G. Grennan 2003-08-09 18:38:42 UTC
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.

Comment 22 Nathan G. Grennan 2003-08-09 19:33:01 UTC
Created attachment 93549 [details]
Further isolated

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

Comment 23 Nathan G. Grennan 2003-08-09 19:50:14 UTC
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.

Comment 24 Nathan G. Grennan 2003-08-09 20:11:57 UTC
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.

Comment 25 Bill Nottingham 2003-08-21 19:27:32 UTC
Yup, this will be fixed in 4.12-1, which I hope to get to building in the next
day or two.

Comment 26 Bill Nottingham 2003-08-21 19:27:42 UTC
*** Bug 102840 has been marked as a duplicate of this bug. ***

Comment 27 Bill Nottingham 2003-08-27 16:30:33 UTC
*** Bug 103195 has been marked as a duplicate of this bug. ***

Comment 28 Bill Nottingham 2003-08-27 22:03:48 UTC
Fixed in 4.12-1.

Note You need to log in before you can comment on or make changes to this bug.