Review Request 118804: Register ksmserver as logind session leader

Elias Probst mail at eliasprobst.eu
Thu Jun 19 12:03:31 UTC 2014



> On June 18, 2014, 4:28 p.m., David Edmundson wrote:
> > ksmserver/screenlocker/logind.cpp, lines 92-93
> > <https://git.reviewboard.kde.org/r/118804/diff/1/?file=282063#file282063line92>
> >
> >     This doesn't make sense.
> >     
> >     you have "if the reply is invalid, print the value in the reply"
> >     
> >     you want to be printing the takeControlReply.error in this case which will probably contain something useful.

Ok, I was just stupid and tried to connect to a session bus instead of the system bus where org.freedesktop.login1 is actually available.
Also fixed the error logging and now get something actually usable:

Failed to register as session leader:  "Rejected send message, 2 matched rules; type="method_call", sender=":1.345" (uid=1000 pid=23689 comm="/usr/bin/ksmserver ") interface="org.freedesktop.login1.Manager" member="TakeControl" error name="(unset)" requested_reply="0" destination="org.freedesktop.login1" (uid=0 pid=2553 comm="/usr/lib/systemd/systemd-logind ")"

Trying to get now some information from #systemd what's the issue here.


- Elias


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/118804/#review60423
-----------------------------------------------------------


On June 19, 2014, 12:01 p.m., Elias Probst wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/118804/
> -----------------------------------------------------------
> 
> (Updated June 19, 2014, 12:01 p.m.)
> 
> 
> Review request for Plasma.
> 
> 
> Bugs: 335390
>     https://bugs.kde.org/show_bug.cgi?id=335390
> 
> 
> Repository: plasma-workspace
> 
> 
> Description
> -------
> 
> This is an initial (not yet working) attempt to fix bug#335390.
> 
> Right now, it seems not to call the TakeControl() D-Bus message as it doesn't show up in systemd-logind's debug output at all:
> 
> Jun 17 21:20:05 moria systemd-logind[2550]: Got message type=signal sender=org.freedesktop.DBus destination=n/a object=/org/freedesktop/DBus interface=org.freedesktop.DBus member=NameOwnerChanged cookie=18 reply_cookie=0 error=n/a
> Jun 17 21:20:05 moria systemd-logind[2550]: Got message type=method_call sender=:1.141 destination=org.freedesktop.login1 object=/org/freedesktop/login1 interface=org.freedesktop.login1.Manager member=GetSessionByPID cookie=4 reply_cookie=0 error=n/a
> Jun 17 21:20:05 moria systemd-logind[2550]: Sent message type=error sender=n/a destination=:1.141 object=n/a interface=n/a member=n/a cookie=343 reply_cookie=4 error=PID 4296 does not belong to any known session
> Jun 17 21:20:05 moria systemd-logind[2550]: Failed to process message [type=method_call sender=:1.141 path=/org/freedesktop/login1 interface=org.freedesktop.login1.Manager member=GetSessionByPID signature=u]: PID 4296 does not belong to any known session
> 
> The GetSessionByPID() call after this shows up just fine, but the TakeControl() attempt is not even logged.
> The journal of ksmserver shows this code is actually executed:
> 
> Jun 17 21:20:05 moria ksmserver[2961]: Failed to register as session leader:  false
> 
> Is there something completely wrong the way I do it?
> 
> 
> Diffs
> -----
> 
>   ksmserver/screenlocker/logind.cpp dcfc7f321b3cf29ef68aac8006aa37f5e4e00956 
> 
> Diff: https://git.reviewboard.kde.org/r/118804/diff/
> 
> 
> Testing
> -------
> 
> - Copy /usr/lib/systemd/system/systemd-logind.service to /etc/systemd/system/systemd-logind.service
> - Set "Environment=SYSTEMD_LOG_LEVEL=debug" in the [Service] section of /etc/systemd/system/systemd-logind.service
> - Run "systemctl daemon-reload"
> - Reboot (also possible without a reboot, but far more complicated and requires to terminate the X session anyways, so a reboot is the most straightforward solution)
> 
> To test
> - apply patch + rebuild plasma-workspace
> - kill ksmserver
> - Run "journalctl -n 20 -f -u systemd-logind" to monitor logind
> - Run "tail -f ~/.xsession-errors" or "journalctl --user -n 20 -f --user-unit ksmserver" (for systemd user-session users) to monitor ksmserver's output
> - restart ksmserver
> 
> 
> Thanks,
> 
> Elias Probst
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20140619/ec285a97/attachment.html>


More information about the Plasma-devel mailing list