Fat clients should not verify desired xsession from ~/.dmrc via SSH
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
LTSP5 |
Fix Released
|
Medium
|
Unassigned |
Bug Description
Problem description
===================
LDM verifies the existence of the desired xsession server-side, even for fat
clients. This can cause DLM to not set/read ~/.dmrc properly when the directory
/usr/share/
How to reproduce
================
Verify correct working:
* Boot fat client LTSP, choose a non-standard xsession
* Verify that ~/.dmrc mentions the chosen xsession
* Logout
* Login without setting the xsession manually
* Observe that you get your non-standard xsession again
Now break it:
* Install awesome inside the LTSP chroot
* Make sure /usr/share/
* Make sure /usr/share/
* Build a new LTSP client image
* Boot image
* Choose 'awesome' as session and login
* Observe that you are inside awesome
* Observe that ~/.dmrc does not mention awesome
* Logout
* Login without setting the xsession manually
* Observe that you are no longer getting awesome
(NB: awesome is merely given as example, it works for any other xsession. In
our case it was actually KDE-Plamsa)
More details
============
I've traced the issue to the file /usr/share/
inside the chroot. It will do a sanity check inside the function
ldm_session_
exists, but it does so over SSH instead of locally.
We throw away the LTSP chroot and images every 6 months with every new Ubuntu
release, our current chroot was made about a month after the release of 13.10.
We have had this issue for multiple releases now.
Our server is headless and all our LTSP clients are fat, so we have no wish to
install KDE-Plasma on our server. We worked around it by copying the
kde-plasma.desktop file from the chroot to the server's /usr/share/
directory. After this change the clients remember the choice for KDE-Plasma
properly.
Looking at the code in ldm's X50-dmrc- processing, yes, this is definitely the case. The code should be adjusted to use the local /usr/share/ xsessions instead of the server's when LTSP_FATCLIENT= true.