the-cavalry / light-locker

A simple session-locker for lightdm
GNU General Public License v2.0
221 stars 22 forks source link

light-locker 1.9.0 fails to get session_id #141

Open sidamos opened 5 years ago

sidamos commented 5 years ago

I am using Xfce 4.12 and lightdm 1.26.0 on Gentoo.

With light-locker 1.8.0, locking works.

With light-locker 1.9.0, light-locker does not start during autostart, because "session_id is not set".

basil-conto commented 5 years ago

FWIW, I also get that error on Debian Buster with xmonad 0.14.2, lightdm 1.26, and light-locker 1.8.0:

$ light-locker --debug
[gs_debug_init] gs-debug.c:106 (18:24:37):   Debugging enabled
[main] light-locker.c:142 (18:24:37):    initializing light-locker 1.8.0
[main] light-locker.c:164 (18:24:37):    Platform:
gtk:        3
systemd:    yes
ConsoleKit: no
UPower:     yes
[main] light-locker.c:196 (18:24:37):    Features:
lock-after-screensaver: yes
late-locking:           yes
lock-on-suspend:        yes
lock-on-lid:            yes
settings backend:       GSETTINGS
[main] light-locker.c:198 (18:24:37):    lock after screensaver 5
[main] light-locker.c:199 (18:24:37):    late locking 0
[main] light-locker.c:200 (18:24:37):    lock on suspend 1
[main] light-locker.c:201 (18:24:37):    lock on lid 0
[main] light-locker.c:202 (18:24:37):    idle hint 0
[query_session_id] gs-listener-dbus.c:2101 (18:24:37):   org.freedesktop.login1.NoSessionForPID raised:
 PID 2818 does not belong to any known session

** (light-locker:2818): ERROR **: 18:24:37.573: session_id is not set, is /proc mounted with hidepid>0?
Trace/breakpoint trap
basil-conto commented 5 years ago

I no longer encounter this issue after downgrading to light-locker 1.7.0 from Debian Stretch.

sgdavis1 commented 4 years ago

It appears this is due to the 1.9.0 release dropping ConsoleKit support. Is there any reason that this happened? I will be downgrading my machines to 1.8.x for now but I don't want to switch lockers as I really like light-locker. However, I cannot stay in a downgraded state forever so it appears I might be looking at going back to xscreensaver unless this can be resolved :-1: :frowning:

Any devs on this project got some insight into 1) a fix or 2) why the support was dropped?

More details in this thread: https://forums.gentoo.org/viewtopic-t-1101032-highlight-.html

tintou commented 4 years ago

ConsoleKit support has been dropped because the project is long unmaintained and replaced by systemd-logind. The last commit to ConsoleKit has been made 6 years ago. If you need ConsoleKit, you'll need to stick with 1.8 too.

sgdavis1 commented 4 years ago

Well after some more digging I started to think the actual problem was dbus-glib (included in gs-dbus.c) but looking closer it doesn't seem to be used. Some low level dbus calls, but not dbus-glib. And in addition, light-locker-command uses GDBus so I think everything is working as it is supposed to.

Turns out my solution was to run elogind instead of systemd, as I am not ready to move my system over to systemd yet (still running OpenRC). Anyway, I got it working! So for anyone else, you might want to try elogind first before downgrading.

jonjonw commented 4 years ago

I'm using systemd-logind and get the same error.

% light-locker --debug                                       :(
[gs_debug_init] ../light-locker/src/gs-debug.c:106 (02:55:57):   Debugging enabled
[main] ../light-locker/src/light-locker.c:138 (02:55:57):    initializing light-locker 1.9.0
[main] ../light-locker/src/light-locker.c:139 (02:55:57):    Platform:
gtk:        3
systemd:    yes
UPower:     yes
[main] ../light-locker/src/light-locker.c:155 (02:55:57):    Features:
lock-after-screensaver: yes
late-locking:           yes
lock-on-suspend:        yes
lock-on-lid:            yes
settings backend:       GSETTINGS
[main] ../light-locker/src/light-locker.c:188 (02:55:57):    lock after screensaver 5
[main] ../light-locker/src/light-locker.c:189 (02:55:57):    late locking 1
[main] ../light-locker/src/light-locker.c:190 (02:55:57):    lock on suspend 1
[main] ../light-locker/src/light-locker.c:191 (02:55:57):    lock on lid 1
[main] ../light-locker/src/light-locker.c:192 (02:55:57):    idle hint 0
[query_session_id] ../light-locker/src/gs-listener-dbus.c:1997 (02:55:57):   org.freedesktop.login1.NoSessionForPID raised:
 PID 36400 does not belong to any known session

** (light-locker:36400): ERROR **: 02:55:57.233: session_id is not set, is /proc mounted with hidepid>0?
% loginctl list-sessions
SESSION  UID USER    SEAT  TTY 
     16 1000 jon     seat0     
      7 1000 jon     seat0 tty2
     c9  958 lightdm seat0