[Bug 1206897] Re: logind fails to work, falling back to ConsoleKit when /run/users already exists
Steve Langasek
steve.langasek at canonical.com
Wed Jul 31 12:50:57 UTC 2013
Here is the core of the implementation:
static int makedir_safe(const char *path, mode_t mode, uid_t uid, gid_t gid, bool apply) {
struct stat st;
if (label_mkdir(path, mode, apply) >= 0)
if (chmod_and_chown(path, mode, uid, gid) < 0)
return -errno;
if (lstat(path, &st) < 0)
return -errno;
if ((st.st_mode & 0777) != mode ||
st.st_uid != uid ||
st.st_gid != gid ||
!S_ISDIR(st.st_mode)) {
errno = EEXIST;
return -errno;
}
return 0;
}
So it does handle the case where the directory already exists, but
requires that *if* it exists, the permissions be correct. The EEXIST is
actually being thrown by this code, and not due to a failure to check
the return of the mkdir() call itself.
What are the perms on this directory when you see the problem?
** Changed in: systemd (Ubuntu)
Status: New => Incomplete
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1206897
Title:
logind fails to work, falling back to ConsoleKit when /run/users
already exists
Status in “systemd” package in Ubuntu:
Incomplete
Bug description:
When testing Mir I've found a case where logind fails and this causes
the user to lose access the hardware accelerated rendering. The cause
is (for some unknown reason) /run/user exists and logind aborts when
trying to open a session.
From /var/log/auth.log:
Jul 31 13:25:07 alchemy lightdm: pam_unix(lightdm:session): session opened for user bob by (uid=0)
Jul 31 13:25:07 alchemy systemd-logind[725]: Failed to create /run/user: File exists
Jul 31 13:25:07 alchemy lightdm: pam_systemd(lightdm:session): Failed to create session: File exists
When this first occurred it would persist between reboots and went
away eventually (don't know if I did anything to cause that).
The second time it occurred I did:
$ sudo stop lightdm
$ sudo umount /run/user
$ sudo rmdir /run/user
$ sudo start lightdm
and this fixes the problem.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1206897/+subscriptions
More information about the foundations-bugs
mailing list