[1667] in athena10
Re: [Debathena] #153: Do something clever with ~/.xsession-errors
daemon@ATHENA.MIT.EDU (Debathena Trac)
Sat Mar 14 11:03:47 2009
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
From: "Debathena Trac" <debathena@MIT.EDU>
Cc: debathena@mit.edu
To: jdreed@mit.edu, ghudson@mit.edu
Date: Sat, 14 Mar 2009 15:03:24 -0000
Reply-To:
Message-ID: <052.5a58afee350403dffbf7b369a1e4b1a6@mit.edu>
In-Reply-To: <043.144f1dc4a198a718d3a496f91dd6b2ee@mit.edu>
Content-Transfer-Encoding: 8bit
#153: Do something clever with ~/.xsession-errors so that the dialog box is
useful-------------------+--------------------------------------------------------
Reporter: jdreed | Owner:
Type: defect | Status: new
Priority: minor | Resolution:
Keywords: |
-------------------+--------------------------------------------------------
Comment(by ghudson):
Here's a walkthrough of the current gdm implementation (you can follow
along with "apt-get source gdm"):
* GDM separates its work into the daemon process which runs as root, the
greeter process which runs as user gdm, and the slave login process which
starts out running as root and then switches to the user being logged in.
The GUI code is a separate program (gdmgreeter) while the slave login code
is part of gdm itself. Only the slave code ever gets access to the user
home directory.
* The slave redirects output to $HOME/.xsession-errors; this is
hardcoded. (The line you found in /etc/X11/Xsession does not apply to the
gdm world; see the comments in /etc/gdm/Xsession, which is the operable
script.) If the session fails, the slave sends a little RPC-like request
to the daemon asking it to show the .xsession-errors file; the filename is
again hardcoded with no configuration. This is all in daemon/slave.c;
search for "xsession-errors".
* Back in daemon/gdm.c (search for GDM_SOP_SHOW_ERROR_DIALOG), the
daemon receives the message and filename from the slave. It then displays
an error dialog directly to the display--although the greeter process
normally handles GUI interactions, it is not involved here. This is
convenient for gdm because the greeter process wouldn't have permissions
to read user homedirs anyway.
So, unfortunately, there is no probably configuration change to alleviate
the problem. I can see two avenues for a code fix which might make it
upstream:
(1) Make the xsession-errors filename configurable.
(2) Pass the contents of xsession-errors from the slave to the daemon, and
not just the filename. It's just going to get read into memory by the
daemon process anyway.
-- Ticket URL: <http://debathena.mit.edu/trac/ticket/153#comment:1>Debathena <http://debathena.mit.edu/>MIT Debian-Athena Project