Processed: light-locker: when xpra running alongside regular login, light-locker-command -l yields unrecoverable session

2020-05-01 Thread Debian Bug Tracking System
Processing control commands:

> affects -1 xpra
Bug #959382 [light-locker] light-locker: when xpra running alongside regular 
login, light-locker-command -l yields unrecoverable session
Added indication that 959382 affects xpra

-- 
959382: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959382
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems



Bug#959382: light-locker: when xpra running alongside regular login, light-locker-command -l yields unrecoverable session

2020-05-01 Thread Bradley M. Kuhn
Package: light-locker
Version: 1.8.0-3
Severity: important
Control: affects -1 xpra

Thanks so much as always for your work to make Debian a great desktop
environment.

TL;DR of my bug report: if you have an xpra session running, a lock (either
one triggered automatically by timeout or running `light-locker-command -l`
on DISPLAY :0) will lock up both VT7 and VT8 in a pattern that seems like an
X session is being restarted over and over.  Holding down C-A-F1 to get to
VT1 to race with it can get you back to a non-graphical login and you can
restart lightdm entirely, which does recover the situation, but I've found no
method to recover other than that.

I tried this against both these xpra packages (one from buster and one from
buster-backports); 2.4.3+dfsg1-1 and 3.0.4+dfsg1-1~bpo10+1

Here's the full details:

Note that the reportbug script included my
`/etc/xdg/autostart/light-locker.desktop` because I changed this one line to
get you more debug output, so the only change there is:
Exec=light-locker --debug

but note the problem occurs regardless of whether or not `--debug` is added
there.

First, the "working run-through":

Log in as normal.  light-locker reports this in debug:

[main] light-locker.c:142 (08:57:43):initializing light-locker 1.8.0
[main] light-locker.c:164 (08:57:43):Platform:
gtk:3
systemd:yes
ConsoleKit: no
UPower: yes
[main] light-locker.c:196 (08:57:43):Features:
lock-after-screensaver: yes
late-locking:   yes
lock-on-suspend:yes
lock-on-lid:yes
settings backend:   GSETTINGS
[main] light-locker.c:198 (08:57:43):lock after screensaver 5
[main] light-locker.c:199 (08:57:43):late locking 0
[main] light-locker.c:200 (08:57:43):lock on suspend 1
[main] light-locker.c:201 (08:57:43):lock on lid 0
[main] light-locker.c:202 (08:57:43):idle hint 0
[init_session_id] gs-listener-dbus.c:2196 (08:57:43):Got session-id: 
/org/freedesktop/login1/session/_368
[init_session_id] gs-listener-dbus.c:2206 (08:57:43):Got sd-session-id: 68
[init_seat_path] gs-listener-dbus.c:2287 (08:57:43): Got seat: 
/org/freedesktop/DisplayManager/Seat0
[gs_listener_delay_suspend] gs-listener-dbus.c:449 (08:57:43):   Delay suspend
[gs_listener_x11_acquire] gs-listener-x11.c:172 (08:57:43):  ScreenSaver 
Registered
[listener_dbus_handle_system_message] gs-listener-dbus.c:1343 (08:57:43):   
 obj_path=/org/freedesktop/DBus interface=org.freedesktop.DBus 
method=NameAcquired destination=:1.7069


Run this command in a xterm:
  $ light-locker-command -l

Lock works as completely expected.  I am swtiched to vt8 with the lock
screen.  If I use C-A-F7 to get back to v7 it tells me that the session is
locked, only way I can get back in is answsering prompt on vt8, and when I do
it puts me back unlocked into my xession vt7.  Here is the debug output I get
from that operation:

[listener_dbus_handle_session_message] gs-listener-dbus.c:1010 (09:05:05):  
 Received Lock request
[gs_grab_grab_root] gs-grab-x11.c:647 (09:05:05):Grabbing the root 
window
[gs_grab_get_keyboard] gs-grab-x11.c:153 (09:05:05): Grabbing keyboard 
widget=11F
[gs_grab_get_mouse] gs-grab-x11.c:213 (09:05:05):Grabbing mouse 
widget=11F
[gs_manager_create_windows_for_screen] gs-manager.c:548 (09:05:05):  
Creating 2 windows for screen 0
[gs_manager_create_window_for_monitor] gs-manager.c:324 (09:05:05):  
Creating window for monitor 0 [0,0] (1680x1050)
[gs_manager_create_window_for_monitor] gs-manager.c:324 (09:05:05):  
Creating window for monitor 1 [1680,0] (1920x1200)
[update_geometry] gs-window-x11.c:197 (09:05:05):got geometry for 
monitor 0: x=0 y=0 w=1680 h=1050
[update_geometry] gs-window-x11.c:210 (09:05:05):using geometry for 
monitor 0: x=0 y=0 w=1680 h=1050
[update_geometry] gs-window-x11.c:197 (09:05:05):got geometry for 
monitor 0: x=0 y=0 w=1680 h=1050
[update_geometry] gs-window-x11.c:210 (09:05:05):using geometry for 
monitor 0: x=0 y=0 w=1680 h=1050
[gs_window_move_resize_window] gs-window-x11.c:243 (09:05:05):   Move and/or 
resize window on monitor 0: x=0 y=0 w=1680 h=1050
[update_geometry] gs-window-x11.c:197 (09:05:05):got geometry for 
monitor 0: x=0 y=0 w=1680 h=1050
[update_geometry] gs-window-x11.c:210 (09:05:05):using geometry for 
monitor 0: x=0 y=0 w=1680 h=1050
[gs_window_move_resize_window] gs-window-x11.c:243 (09:05:05):   Move and/or 
resize window on monitor 0: x=0 y=0 w=1680 h=1050
[update_geometry] gs-window-x11.c:197 (09:05:05):got geometry for 
monitor 0: x=0 y=0 w=1680 h=1050
[update_geometry] gs-window-x11.c:210 (09:05:05):using geometry for 
monitor 0: x=0 y=0 w=1680 h=1050
[gs_window_move_resize_window] gs-window-x11.c:243 (09:05:05):   Move and/or 
resize window on monitor 0: x=0 y=0 w=1680 h=1050
[update_geometry] gs-window-x11.c:197 (09:05:05):got geometry for 
monitor 1: x=1680 y=0 w=1920 h=1200