Rebooting my laptop after a few days of uptime (so I don't know what could have triggered the issue) I have found that I am unable to login from lightdm. My password is accepted and the fields disappear but I am stuck with the lightdm wallpaper and my (movable) cursor. I can however
- login as guest
- startx from a tty
If I try from kdm, the same thing happens.
If I try to launch project-neon, the desktop progressbar appear, but I am thrown back to lightdm wallpaper when it is done loading, also a prompt for keyring password appeared, and after entering it, the desktop briefly flashed in.
.xsession says that dbus pre-start process terminated with status 2. I don't know if it is relevant.
Edit: I am able to launch lxde without issues. I have tried plasma-active, I have the same symptoms as with project-neon so clearly this is a kde/plasma issue. But since starting from startx works, the issue seem to lie in lightdm/kdm-kde interactions. Is there a way to track how lightdm starts kde (kwin, plasma)?
Also the issue is not with login, the graphical session appears in who and dm-tool list-seats shows a Session0 with my username.
Edit: I have tried a few more things. I mentionned a password prompt in project-neon. If I let it sit for a moment, the desktop eventually appears and works.
I have also tried adding debug outputs to startkde and startactive. Those in startactive work but not those instartkde (when starting from lightdm or kdm, but it works from xinit /usr/bin/startkde) so it may be that lightdm doesn't even start startkde, though it does according to lightdm.log.
2 Answers
TL;DR there was a permission issue with ~/.cache/upstart/dbus-session, rm -rf .cache/upstart and a reboot solved it.
Newbie debug insights for future readers (which may well include me).
The ~/.xsession message I mentioned in the question, along the lines of
init: dbus pre-start process (PID XXXX) terminated with status 2was actually very important. I learnt what it meant while investigating, I found it this way
- First, I thought that the issue was with kde, so I tried to find how lightdm started kde
- I tried to look into
/etc/lightdm/(as suggested byman lightdm) but thelightdmconfig files were not here but (I found it by looking into/var/log/lightdm.log) in/usr/share/lightdm/lightdm.conf.dwhere I found the relevant file/usr/share/lightdm/lightdm.conf.d/40-kde-plasma.conf - According to it, what lightdm started for kde was the script
/usr/bin/startkde, so I added some debugecho 'startkde is at line ##' > /home/evpok/deloglines to it to see where it failed, but none of them were executed. - checking again
/var/log/lightdm.logI saw the lineRunning command /usr/sbin/lightdm-session /usr/bin/startkde
so I looked intousr/sbin/lightdm-session, to which I again added debuggingecholines - After some fumbling, I found that the issue was with loading an Xsession script:
/etc/X11/Xsession.d/99x11-common_start. So I looked into that one. It seemed to load normally and had only one lineexec $STARTUP. Adding anechoto see what was in$STARTUPI found it wasinit --user. Now I didn't want to mess withinitso I just traced its outputs by commenting this line out and adding insteadexec init -v --user > /home/evpok/initlog 2> /home/evpok/initerrlog Looking into these logs, I saw this message in
initerrlogdbus pre-start process (PID XXXX) terminated with status 2
but I still didn't know what to make of it, so I looked intoinitlogand sawLoading configuration from /usr/share/upstart/sessions- I looked into that dir, where I saw a
startkde.conf. After some looking into documentation for upstart job confs, I saw that it hadstart on started dbus and xsession SESSION=kde-plasma
obviously that was whystartkdedidn't start. It needed dbus, which had an error, so I looked intodbus.conf - There, there was a
pre-start scriptstanza, hey! That's what's in the errlog of init and in.xsession-errors. So for I added again some echoes, to find that the issue was at the lineecho "DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS}" >$HOME/.cache/upstart/dbus-session(Not one of my debug echoes) - After some fumbling, I found that I couldn't touch the non-existent file
~/.cache/upstart/debus-sessionbecause of a permission issue. I tried creating it undersudoand chown it to me with appropriate permissions but it didn't work. So I justrm -rf'ed.cache/upstart. - After a reboot, everything worked as expected.
After all I just needed to stop being afraid of the internals and getting my hands dirty.
2I had the same problem after upgrade from Ubuntu 13.10 to Ubuntu 14.04. I had also in .xsession-errors file the last line reading:
init: dbus pre-start process (PID XXXX) terminated with status 2The problem was also in .cache/upstart directory. It had permissions drw------- - so I was not even able to go into it. I just added an execute bit, restarted X and it works now.