Re: cannot log in with gdm after lenny upgrade
On Wed, 02 Jan 2008 07:57:22 -0800, Daniel Burrows wrote:
> On Wed, Jan 02, 2008 at 12:58:22AM +0000, Hendrik Boom <hendrik@topoi.pooq.com> was heard to say:
>> On Mon, 31 Dec 2007 09:49:43 -0800, Daniel Burrows wrote:
>>
>> > On Mon, Dec 31, 2007 at 03:58:03AM +0000, Hendrik Boom <hendrik@topoi.pooq.com> was heard to say:
>> >> /etc/gdm/Xsession: Beginning session startup ...
>> >> Setting 1M through im-switch for locale=en_CA
>> >> Start IM through /farhome/hendrik/.xinput.d/en_CA linked to /etc/X11/xinit/xinput.d/uim_toolbar.
>> >> failed in listen(): Invalid argument
>> >> mkdtemp: private socket dir: Permission denied
>> >
>> > That almost sounds like you don't have write permission to $TMPDIR.
>> > Do you have any configuration that changes the value of $TMPDIR? (if
>> > you don't know about it you probably don't) What do the following
>> > commands output?
>> >
>> > ls -dl /tmp
>> > echo $TMPDIR
>
> [snip -- glad to hear it worked for you]
>
>> Thanks. How did you ever manage to think of this?
>
> The main thing for me was to ignore all those messages about suid GTK+
> programs; since the log continues past those messages, it's a good
> (although not certain) bet that they're unrelated to the problem. Once
> I read past them I saw the failures above (listen and mkdtemp),
> which sound like a program trying to create a listen socket in /tmp and
> failing.
>
> In particular, there's no other obvious reason for mkdtemp to fail
> with "permission denied"; even "nobody" can write to /tmp on a default
> Debian system. As Andrew said, that message is a pretty big clue, once
> you've waded through all the other chatter in the log.
>
> Daniel
I'm trying to understand how these library calls are related to /tmp,
since this is the kind of stuff I think I should know about.
I looked for the specification of listen(), and found a man page with the
synopsis
int listen(int socket, int backlog);
No reference to /tmp here. And for mkdtemp I find
char *mkdtemp(char *template);
Could it be the template starts with "/tmp/XXXXXX" or something like that?
Or are temporary directory is alwayse put inside /tmp ?
How is a temporary directory related to a socket?
Or, where should I look to find the answers to this kind of question?
-- hendrik
Reply to: