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

Re: [hobbit] all purple?



Henrik Stoerner <henrik (at) hswn.dk> wrote:

> server/bin/bbcmd --env=server/etc/hobbitserver.cfg \
>    bbtest-net --report --ping --checkresponse --debug

2005-01-27 00:02:20 Cannot get socket - EMFILE
2005-01-27 00:02:20 Try running with a lower --concurrency setting
(currently: 64)
2005-01-27 00:02:20 Cannot get socket - EMFILE
2005-01-27 00:02:20 Try running with a lower --concurrency setting
(currently: 64)
2005-01-27 00:02:20 select - no active fd's found, but pending is 2
2005-01-27 00:02:20 select - no active fd's found, but pending is 2
2005-01-27 00:02:20 select - no active fd's found, but pending is 2

And it loops forever on this.

We hit the file descriptor limit. The default is 64 (check it with
ulimit), which is not enough for bbtest-net. Running ulimit -n 256
before your test fixes the problem.

That can be fixed by running ulimit -n in the startup script, but we
have no idea of the required amount of file descriptors at that time,
we'll have to raise the limit high as possible and hope it will be okay.
The other fix is to raise the limit in the C program that consumes a lot
of file descriptors. If you need fdmax descriptors:

        /* Bump the file descriptor limit to fdmax */
        struct rlimit limit;

        if (getrlimit(RLIMIT_NOFILE, &limit) != 0)
                err(1, "getrlimit failed");

        if (limit.rlim_max < fdmax)
                errx(1, "File descriptor hard limit hit");
        
        limit.rlim_cur = fdmax;
        if (getrlimit(RLIMIT_NOFILE, &limit) != 0)
                err(1, "setrlimit failed"); 

-- 
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu (at) netbsd.org