[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