[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: story - part 3



On Sat, 07 Aug 1999, Mikolaj J. Habryn wrote:

>     k> 4) Setting limits still doesn't work.  if(setrlimit(*++op,
>     k> rlimittab_get(*++op))) { wrong args are passed to setrlimit()
> [...]
>     k> 	case OP_RLIMIT: if(setrlimit(*op, rlimittab_get(*(op+2))) < 0)
>     k> { rl_fail1("setrlimit"); } op=op+2; break;
> 
>   This should not work. This should seriously not work. What compiler
> are you using? I can set rlimits here 'til the cows come home, and
> they all work correctly. Can you please email me an entire
> configuration that doesn't set limits correctly? Maybe one of the
> other directives that you have in there causes things to work
> differently, which would be why I can't reproduce it... are you
> running on some exotic hardware, by any chance?

I usualy use 'gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)'.
but this time I used 'gcc version 2.7.2.3' and even 'gcc version gcc-2.95 19990629 (prerelease)'.
Result is that same for all these compilers:
I added 
                        case OP_RLIMIT:
                                rl_warn("setrlimit(%d, struct rlimit { rlim_cur %d; rlim_max %d };);", *++op, rlimittab_get(*++op)->rlim_cur, rlimittab_get(*op)->rlim_max);
//                              if(setrlimit(*++op, rlimittab_get(*++op)))
//                                      rl_fail1("setrlimit");
                                break;

and results:
Aug  9 13:48:24 linstar rlinetd[9781]: rlinetd configuration (re)loaded, 12816 bytes used
Aug  9 13:48:27 linstar rlinetd[9783]: setrlimit(0, struct rlimit { rlim_cur 0; rlim_max 1 };);
Aug  9 13:48:27 linstar rlinetd[9783]: setrlimit(1, struct rlimit { rlim_cur 5; rlim_max 1 };);
Aug  9 13:48:37 linstar rlinetd[9781]: OP_CLOSE closing already closed socket

Also I compiled rlinetd without any optimalization but that didn't help ;-(

My config for this service (/etc/rlinetd.d/test):

service "test" {
    protocol tcp;
    port "3000";
    user "misiek";
    exec "/bin/bash -i";
    server "/usr/sbin/tcpd";
    rlimit nproc {
        soft 5; hard 10;
        }
    rlimit cpu {
        soft 9; hard 11;
        }
}


My hardware isn't exotic ;-) Intel Pentium MMX, Soyo mainboard ....

> m.

-- 
arkadiusz miśkiewicz        [misiek@misiek.eu.org]
[P]olish [L]inux [D]istribution with IPv6 support
http://www.ipv6.pld.org.pl/ http://www.pld.org.pl/