[comp.unix.admin] Is MAXUPRC broken in SunOS 4.0.3 ?

chogan@maths.tcd.ie (Christine Hogan) (03/29/91)

On our SS1 running SunOS 4.0.3 there is no limit on the number
of processes a user can run, despite MAXUPRC being defined to be
25 in our sys/param.h.  Has anyone else noticed this ?
One of our more malicious users overflowed the process table last
night, which shouldn't be able to happen.
Is this fixed in later releases (we may be upgrading soon) ?  Is
there a patch available to fix this ?  We do not have the sources. 

Thanks in advance.

-- 
Christine.
chogan@maths.tcd.ie                    ...!mcsun!maths.tcd.ie!chogan
chogan%maths.tcd.ie@cunyvm.cuny.edu

pfalstad@phoenix.Princeton.EDU (Paul Falstad) (03/30/91)

chogan@maths.tcd.ie (Christine Hogan) wrote:
>On our SS1 running SunOS 4.0.3 there is no limit on the number
>of processes a user can run, despite MAXUPRC being defined to be
>25 in our sys/param.h.  Has anyone else noticed this ?

I don't think the value in sys/param.h makes any difference.  In
SunOS 4.1.1, at least, the limiting factor on user processes is the
variable maxuprc, which for some strange reason is set to 5+16*MAXUSERS.
So there IS a limit.  The load average would have peaked at ~1000,
if it's any consolation.  :-)

MAXUPRC is #defined in /usr/kvm/sys/conf.common/param.c.  Hopefully you
have something similar in 4.0.3.

We had similar problems at our site until the sysadmin reconfigured the
kernel with this set to a sane value (NOT dependent on MAXUSERS).

>Is this fixed in later releases (we may be upgrading soon) ?  Is

No.

>there a patch available to fix this ?  We do not have the sources. 

Well, if nothing else, you could always adb the kernel.  :-)

# adb -w /vmunix
_maxuprc?X
_maxuprc:
_maxuprc:   403  <- a tad too high (that's 1027 decimal)
.?W 19
_maxuprc:
_maxuprc:   0x403    =  0x19
^D
# ...

--
Paul Falstad, pfalstad@phoenix.princeton.edu | 10 PRINT "PRINCETON CS"
[Your blood pressure just went up.]          | 20 GOTO 10
Princeton University would like to apologize to everyone for this article.

chogan@maths.tcd.ie (Christine Hogan) (03/31/91)

In <7705@idunno.Princeton.EDU> pfalstad@phoenix.Princeton.EDU (Paul Falstad) writes:
>I don't think the value in sys/param.h makes any difference.  In
>SunOS 4.1.1, at least, the limiting factor on user processes is the
>variable maxuprc, which for some strange reason is set to 5+16*MAXUSERS.

I had a look at /vmunix and this is true.  But it still doesn't
seem to work.  For one thing, we got "proc: table is full"
messages with that _one_ user logged on.  But also I used
adb to temporarily change it down to 7 (!!), rebooted and
it had _no_ effect.  I could go well over my "limit" of 7.
Any suggestions / comments ?

-- 
Christine.
chogan@maths.tcd.ie                    ...!mcsun!maths.tcd.ie!chogan
chogan%maths.tcd.ie@cunyvm.cuny.edu

guy@auspex.auspex.com (Guy Harris) (04/02/91)

>I don't think the value in sys/param.h makes any difference.  In
>SunOS 4.1.1, at least, the limiting factor on user processes is the
>variable maxuprc, which for some strange reason is set to 5+16*MAXUSERS.

The theory is, I guess, that Suns are either single-user machines, or
servers that shouldn't have lots of people logged in to them.  "maxuprc"
is set to MAXUPRC, which is set to NPROC - 5 (NPROC is 10 +
16*MAXUSERS).

The theory doesn't always correspond to reality....

>MAXUPRC is #defined in /usr/kvm/sys/conf.common/param.c.  Hopefully you
>have something similar in 4.0.3.

It's been that way since before 4.0....