On 07/25/2012 09:59 AM, Michael Haubenwallner wrote:
> On 07/25/2012 03:05 AM, Chet Ramey wrote:
>> Bash holds on to the status of all terminated processes, not just
>> background ones, and only checks for the presence of a newly-forked PID
>> in that list if the list size exceeds CHILD_MAX.

> The AIX 6.1 I've debugged on has:
>   #define CHILD_MAX 128

> I'm going to run this build job with 'truss -t kfork' again, to eventually 
> find
> some too small count of different PIDs before PID-recycling by the kernel...

Tracing shows:

The minimum fork count (including grand-childs to any depth) before PID 
recycling starts
looks like 255 (once), but usually 256 and more.

However, one process does see a PID recycled after *at least* 128 forks,
that is exactly the value of CHILD_MAX.

First thought is of some off-by-one bug, but reducing js.c_childmax in jobs.c 
(2 times)
by one doesn't help.

Investigating further... any hints what to look out for?

/haubi/

Reply via email to