#770181 xscreensaver: Fails to properly lock and shut off screen in multiple scenarios

Package:
xscreensaver
Source:
xscreensaver
Description:
Screensaver daemon and frontend for X11
Submitter:
John Goerzen
Date:
2014-12-01 00:21:10 UTC
Severity:
normal
#770181#5
Date:
2014-11-19 13:31:13 UTC
From:
To:
Hi,

There are several situations in which screensaver doesn't do the right
thing.

1) The monitor's power is often left on even when the screen is blanked.

2) It seems that notifications from Gajim, Psi, etc. will cause the
screen to re-awaken.

3) When moving the mouse or pressing a key to wake up the screen and
unlock it, frequently the previous content of the screen will show up
for a few seconds before it is blanked and the logic box shown.

The DE in use here is XFCE and the WM is XMonad.

In the Screensaver Preferences, it is configured as follows:

Mode: Blank screen only
Blank after 10 minutes
Cycle after 10 minutes
Lock screen after 0 minutes

Advanced tab -

Power management enabled
Standby after 10 minutes
Suspend after 15 minutes
Off after 18 minutes
Quick power-off in blank only mode enabled


Fade to black when blanking checked
Fade from black when unblanking not checked
Fade duration 8 seconds

XFCE configuration

Handle display power management checked
Blank after 10 minutes
Sleep after 11 minutes
Off after 15 minutes


It is unclear to me how these interact.

John

#770181#10
Date:
2014-11-19 20:29:38 UTC
From:
To:
There is no way to fix this, because X11 sucks. http://www.jwz.org/xscreensaver/faq.html#hysteresis

But maybe you mean this: http://www.jwz.org/xscreensaver/faq.html#popup-windows

That's because your machine was suspended -- CPU halted -- and what you are seeing on the screen when it powers back on was put there by BIOS before the CPU started running again. It halted the CPU with the screen not-yet-blanked, from xscreensaver's perspective. Likewise, there is no way to fix this, because Linux sucks.

#770181#15
Date:
2014-11-19 20:29:38 UTC
From:
To:
There is no way to fix this, because X11 sucks. http://www.jwz.org/xscreensaver/faq.html#hysteresis

But maybe you mean this: http://www.jwz.org/xscreensaver/faq.html#popup-windows

That's because your machine was suspended -- CPU halted -- and what you are seeing on the screen when it powers back on was put there by BIOS before the CPU started running again. It halted the CPU with the screen not-yet-blanked, from xscreensaver's perspective. Likewise, there is no way to fix this, because Linux sucks.

#770181#20
Date:
2014-11-21 08:49:26 UTC
From:
To:
Where I have seen this, and bug reports thereof, the reason has been
race conditions in the suspend scripts, that allow the hardware
suspend to take place before xscreensaver has blanked the screen.
Typically because someone had the idea of adding & to all commands to
speed up the suspend sequence, and no "wait". I don't see why this
cannot be fixed, Linux or not.

Tormod

#770181#25
Date:
2014-11-21 13:36:43 UTC
From:
To:
Hi JWZ.  Very nice to hear from you.

I am quite sure it's not just that the mouse is getting bumped, because
I have observed that the monitor will not enter power-saving mode at all
for days, and then after a reboot, it will work again.
Well, both; the monitor powers on and shows those boxes.  (Or, hmm,
perhaps it wasn't powered off in the first place?  I should try to get
some data on that...)
You know, that is possibly the case indeed.  Thanks.

Thanks for xscreensaver (and Netscape, and XEmace, while I'm at it.)

John

#770181#30
Date:
2014-11-21 13:36:43 UTC
From:
To:
Hi JWZ.  Very nice to hear from you.

I am quite sure it's not just that the mouse is getting bumped, because
I have observed that the monitor will not enter power-saving mode at all
for days, and then after a reboot, it will work again.
Well, both; the monitor powers on and shows those boxes.  (Or, hmm,
perhaps it wasn't powered off in the first place?  I should try to get
some data on that...)
You know, that is possibly the case indeed.  Thanks.

Thanks for xscreensaver (and Netscape, and XEmace, while I'm at it.)

John

#770181#35
Date:
2014-11-21 13:37:00 UTC
From:
To:
What packages do you think I ought to investigate?
#770181#40
Date:
2014-11-21 20:28:15 UTC
From:
To:
Huh. Well, run it with -log for a few days and see what shows up. You will see a line when xscreensaver notices that the monitor has powered down. If it thinks it's still powered down, it won't launch hacks. The only time xscreensaver explicitly powers on the monitor is when unblanking the screen or displaying the unlock dialog. And even in those situations, it should time out and power off again eventually.

Possibly some other app is messing with your DPMS settings, or turning the monitor back on. The "notifications" thing you're seeing suggests that that might be happening.

Thanks, glad you like it!

#770181#45
Date:
2014-11-30 13:54:11 UTC
From:
To:
I'm trying to run it under -log with -verbose, but it's complicated by
two things:

1) no date stamps with the timestamps (sometimes these things only
manifest themselves after awhile)

2) it doesn't seem to be calling fflush() on the log file after each
write, so tailing it doesn't necessarily show the most current information.

and a third thing, which is that it is highly intermittent.

I'll try to grab some time to investigate further while it's exhibiting
the issue as well.

Thanks,

John

#770181#50
Date:
2014-11-30 23:59:08 UTC
From:
To:
Here is a section of xscreensaver.log.  The screen had been on but
black.  The activity at 17:56 was when I moved the mouse to wake it up,
but it had been on all day despite the room being vacant.

xscreensaver: 21:02:54: user is active (keyboard activity)
xscreensaver: 21:02:54: unblanking screen at Sat Nov 29 21:02:54 2014.
xscreensaver: 21:02:54: 0: ungrabbing mouse (was 0xaa).
xscreensaver: 21:02:54: 0: ungrabbing keyboard (was 0xaa).
xscreensaver: 21:02:54: starting de-race timer (10 seconds.)
xscreensaver: 21:02:54: awaiting idleness.
xscreensaver: 21:03:04: de-race completed.
xscreensaver: 21:04:15: 0: screen change event received
xscreensaver: 21:04:15: 0: screen change event received
xscreensaver: 21:04:15: new layout:
xscreensaver: 21:04:15: WARNING: RANDR and Xinerama report different
xscreensaver: 21:04:15:                 screen layouts!  Believing RANDR.
xscreensaver: 21:04:15: screens in use: 1
xscreensaver: 21:04:15:    3/0: 2560x1440+0+0 (DP2)
xscreensaver: 21:04:15: rejected screens: 4
xscreensaver: 21:04:15:    0/0: 1920x1080+0+0 (eDP1) -- enclosed by 3
(2560x1440+0+0)
xscreensaver: 21:04:15:    1/0: 1920x1080+0+0 (DP1) -- output disabled
xscreensaver: 21:04:15:    2/0: 1920x1080+0+0 (HDMI1) -- output disabled
xscreensaver: 21:04:15:    4/0: 1920x1080+0+0 (HDMI2) -- output disabled
xscreensaver: 21:04:15: 0: resize 0x2c00001 from 1920x1080+0+0 to
2560x1440+0+0
xscreensaver: 21:04:15: 0: screen change event received
xscreensaver: 21:04:16: 0: screen change event received
xscreensaver: 21:04:17: new layout:
xscreensaver: 21:04:17: WARNING: RANDR and Xinerama report different
xscreensaver: 21:04:17:                 screen layouts!  Believing RANDR.
xscreensaver: 21:04:17: screens in use: 1
xscreensaver: 21:04:17:    3/0: 2560x1440+0+0 (DP2)
xscreensaver: 21:04:17: rejected screens: 4
xscreensaver: 21:04:17:    0/0: 0x0+0+0 (eDP1) -- enclosed by 3
(2560x1440+0+0)
xscreensaver: 21:04:17:    1/0: 0x0+0+0 (DP1) -- output disabled
xscreensaver: 21:04:17:    2/0: 0x0+0+0 (HDMI1) -- output disabled
xscreensaver: 21:04:17:    4/0: 0x0+0+0 (HDMI2) -- output disabled
xscreensaver: 21:12:19: user is idle (timeout)
xscreensaver: 21:12:19: blanking screen at Sat Nov 29 21:12:19 2014.
xscreensaver: 21:12:19: 0: grabbing keyboard on 0xaa... GrabSuccess.
xscreensaver: 21:12:19: 0: grabbing mouse on 0xaa... GrabSuccess.
xscreensaver: 21:12:19: fading...
xscreensaver: 21:12:21: fading done.
xscreensaver: 21:13:18: disabling server builtin screensaver:
xscreensaver: 21:13:18:  (xset s 0 0; xset s blank; xset s expose)
xscreensaver: 21:23:21: timed out; activating lock.
xscreensaver: 21:23:21: 0: locked mode switching.
xscreensaver: 17:56:44: user is active (keyboard activity)
xscreensaver: 17:56:45: pam_start ("xscreensaver", "jgoerzen", ...) ==>
0 (Success)
xscreensaver: 17:56:45:   pam_set_item (p, PAM_TTY, ":0.0") ==> 0 (Success)
xscreensaver: 17:56:45:   pam_authenticate (...) ...
xscreensaver: 17:56:45:     pam_conversation (ECHO_OFF="Password: ") ...
xscreensaver: 17:56:45: 0: mouse is at 518,435.
xscreensaver: 17:56:45: 0: creating password dialog ("")
xscreensaver: 17:56:45: grabbing server...
xscreensaver: 17:56:45: 0: ungrabbing mouse (was 0xaa).
xscreensaver: 17:56:45: 0: grabbing mouse on 0x2c005b1... GrabSuccess.
xscreensaver: 17:56:45: ungrabbing server.
xscreensaver: 17:56:53: input finished.

Note - it does seen to have the correct screen to blank.

John

#770181#55
Date:
2014-12-01 00:18:14 UTC
From:
To:
Well, there's nothing in there that looks obvious to me, though all of those "screen change" and "screen resize" event are suspicious. That may be unrelated, though.

Is there anything in the logs complaining about DPMS?

From the log you sent, it appears that the X server is, all by itself, deciding not to power off the monitor. I don't know why.

If you find a section of the log covering a time when the monitor had been powered off, and then powered back on, without you having made an attempt to unlock the screen, that might provide more of a clue.