Re: 2.6.0-test3: setuid32(8) returns EAGAIN (WTF?!)

From: Andries Brouwer
Date: Mon Aug 18 2003 - 14:47:59 EST


On Sun, Aug 17, 2003 at 03:03:36AM +0200, Felix von Leitner wrote:
> I just changed from 2.5.75 to 2.6.0-test3 and suddenly my imap server
> fails to start (it's dovecot). It wrote to syslog:
>
> Aug 17 02:58:02 hellhound dovecot: Dovecot starting up
> Aug 17 02:58:03 hellhound imap-login: setuid(8) failed: Resource temporarily unavailable
> Aug 17 02:58:03 hellhound dovecot: Login process died too early - shutting down
>
> So I strace -f it, and sure enough, here is what happens:
>
> [init, fork, tzfile...]
> 8094 chroot("/var/run/dovecot//login") = 0
> 8094 chdir("/") = 0
> 8094 setuid32(0x8) = -1 EAGAIN (Resource temporarily unavailable)
>
> Why is this happening?

In sys.c:set_user() we see

if (atomic_read(&new_user->processes) >=
current->rlim[RLIMIT_NPROC].rlim_cur &&
new_user != &root_user) {
free_uid(new_user);
return -EAGAIN;
}

which was added in patch-2.6.0-test2.
No doubt this causes your problem.

You might check what values these variables have for you.

Andries

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/