Comment 48 for bug 984785

Revision history for this message
Dennis Baurichter (d-baurichter) wrote :

> what is your lightdm version? mine 1.2.1
Mine too, but that's no surprise. All users of (X|K|L)Ubuntu 12.04 should have LightDM 1.2.1 (unless manually changed). See http://packages.ubuntu.com/search?keywords=lightdm

> ps -ef | grep lightdm
Mine is similar:
root 980 1 0 13:33 ? 00:00:00 lightdm
root 1018 980 1 13:33 tty7 00:01:23 /usr/bin/X :0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch -background none
root 1345 980 0 13:33 ? 00:00:00 lightdm --session-child 12 19
root 9934 9743 0 14:46 pts/2 00:00:00 grep --color=auto lightdm

> lightdm --session-child INPUTFD OUTPUTFD
> ... "from_deamon_output" "to_deamon_output"
> ... "Failed to get D-Bus connection"
When using a tty there is usually no connection to D-Bus in the environment. There is an session bus set up at login for interprocess communication of desktop applications as well as an systemwide bus started by init / Upstart. (https://en.wikipedia.org/wiki/D-Bus, `man dbus-daemon`)

These INPUTFD and OUTPUTFD (fd = file descriptor) arguments could be the fds to use for communication with D-Bus.

> ps -ejH
See attachment. (Launchpad seems to merge all spaces and tabs into one space in comments.)
- LightDM starts Xorg
- LightDM starts another lightdm child (the `--session-child` one)
- this child starts the desktop session; here: invokes gnome-session
- all processes (more or less) necessary for the desktop session are started, including (see manpages for more information):
 - shells (/bin/sh -> /bin/dash, /bin/bash), used to start further processes and in terminal windows (like gnome-terminal)
 - ssh-agent for ssh-key management
 - screensaver process
 - many more

> parent pgid
You mean "parent pid" = "parent process id"? Wrong interpretation. See `man ps`: "PGID" = "process group ID"

> kill -9
9 SIGKILL terminates the process immediately (poor process: no chance for cleanup or other actions).
    The process doesn't really receive this signal to react, but instead the kernel just kills / deletes / terminates the process.
15 SIGTERM tells the process to terminate. ("Hey you: Stop yourself or I will stop you (using SIGKILL)!" ;) ) -> chance for cleanup
SIGKILL is usually only used if SIGTERM doesn't work.

> killing lightdm doesn't do anything besides hanging the pc
When you kill lightdm (using SIGKILL), it has no chance for any reaction (including creating a .goutputstream-* file).

> killing Xorg creates the file!
Probably this happens:
Xorg gone without cleanup -> LightDM wants to quit -> LightDM creates .goutputstream-* file.

I tried sending SIGTERMs (all commands entered in a tty; before each 'kill' logged in into the session on tty7 using LightDM):
sudo kill <LightDM with '--session-child'> # login screen shown
sudo kill <LightDM without parameters, i.e. the one started by init (PPID = 1)> # no login screen or other GUI on tty7
restarting by pressing Ctrl+Alt+Del
sudo kill <X / Xorg> # login screen shown

I repeated this procedure a second time. None of them created a .goutputstream-* file.

Also note: Sometimes there was no .goutputstream-* file created when I shutdown / restarted from a running session. I saw this while trying to find out which process is creating these files.

I think, it's a bug in LightDM, not Xorg. See the lsof (= list open files) output in / attached to my last post (#45).
> lightdm 1348 a 9w REG 8,6 46 304928 /home/a/.goutputstream-YJRHEW