On 2020-01-20 12:58:41 +0100, Vincent Lefevre wrote:
> On 2020-01-20 12:03:30 +0100, Vincent Lefevre wrote:
> > I'm going to turn on the debug messages to see whether there is a
> > difference when the problem occurs.
>
> Unfortunately, light-locker does not output any debug message
> when the screensaver stops (whether or not the bug has occurred).
> The first debug messages are output after I type my password to
> unlock.
... for a good reason: I've tried with strace, which shows that
light-locker does not do anything between the time it locks the
session and the time the session is unlocked by lightdm:
29410 13:02:31 poll([{fd=3, events=POLLIN}, {fd=6, events=POLLIN}, {fd=9,
events=POLLIN}, {fd=10, events=POLLIN}], 4, 27003) = 1 ([{fd=10,
revents=POLLIN}])
29410 13:02:54 write(3, "\1\0\0\0\0\0\0\0", 8) = 8
Note: I moved the mouse at about 13:02:40, which showed the lightdm
greeter screen (the bug did not occur), and I typed my password at
about 13:02:50. The first debug message that occurred at 13:02:54
was from gs-listener-dbus.c (listener_dbus_handle_system_message).
I recall the issue:
1. The session is locked by light-locker.
2. Some time after, I move the mouse so that I can unlock the session.
But sometimes, after (2), the screen is entirely black (the backlight
is on, though) instead of displaying the lightdm greeter screen.
There's still something I don't understand: When the bug occurs, I can
type my password, which unlocks the session, but the screen remains
black, and from that, I can type C-M-. with my config, which does a
"sleep 1 && xset dpms force off", and after I move the mouse, I get
the correct display of my desktop back. So, since my password was
understood, I assume that the greeter screen was active, and this is
purely a display bug.
And since the screen remains black after the session is unlocked,
I don't see how this could be a lightdm or lightdm-gtk-greeter bug
(and lightdm alone does not have any issue).
I can see that before it locks the session, light-locker creates a
window on the full screen:
[2020-01-20 13:27:07] light-locker: [gs_manager_create_windows_for_screen]
gs-manager.c:548 (13:27:07): Creating 1 windows for screen 0
[2020-01-20 13:27:07] light-locker: [gs_manager_create_window_for_monitor]
gs-manager.c:324 (13:27:07): Creating window for monitor 0 [0,0] (3200x1800)
[...]
[2020-01-20 13:27:07] light-locker: [gs_window_move_resize_window]
gs-window-x11.c:243 (13:27:07): Move and/or resize window on monitor 0:
x=0 y=0 w=3200 h=1800
[2020-01-20 13:27:08] light-locker: [gs_listener_send_lock_session]
gs-listener-dbus.c:180 (13:27:08): Send lock session
Perhaps the black screen is due to this window. More debug messages
would be useful. For instance, gs_manager_create_window_for_monitor()
has one for creation, but gs_manager_destroy_windows() doesn't have
any for destruction, so that one does not know anything about the
window at unlock time, and gs_window_real_visibility_notify_event()
doesn't either (the bug may be related to the window visibility).
--
Vincent Lefèvre <[email protected]> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)