2003-09-23 21:36:38

by Albert Cahalan

[permalink] [raw]
Subject: bug w/ threads-max, pid_max, & /proc

Plain 2.6.0-test5 is affected. (so don't blame me)
The /proc filesystem gets really messed up when you
create more threads than you have PID values. Yes,
you can do this. I created 40000 threads on a system
with pid_max of 32768 and a threads-max of 98304.
This should not be allowed, for obvious reasons, and
because it breaks the /proc filesystem. Doing a
simple "/bin/ls /proc" would return 0, 1, or 2 of
every file. Stuff like /proc/cpuinfo was affected,
not just the process directories.



2003-09-23 22:57:02

by William Lee Irwin III

[permalink] [raw]
Subject: Re: bug w/ threads-max, pid_max, & /proc

On Tue, Sep 23, 2003 at 05:23:13PM -0400, Albert Cahalan wrote:
> Plain 2.6.0-test5 is affected. (so don't blame me)
> The /proc filesystem gets really messed up when you
> create more threads than you have PID values. Yes,
> you can do this. I created 40000 threads on a system
> with pid_max of 32768 and a threads-max of 98304.
> This should not be allowed, for obvious reasons, and
> because it breaks the /proc filesystem. Doing a
> simple "/bin/ls /proc" would return 0, 1, or 2 of
> every file. Stuff like /proc/cpuinfo was affected,
> not just the process directories.

There must be a bug; the pid allocator should report exhaustion then
instead of allowing the threads to be created. ISTR testing this...


-- wli