mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-27 23:22:09 +00:00
BUG/MINOR: init: only keep rlim_fd_cur if max is unlimited
On some operating systems, RLIM_INFINITY is set to -1 so that when the hard limit on the number of FDs is set to unlimited, taking the MAX of both values keeps rlim_fd_cur and everything works. But on other systems this values is defined as the highest positive integer. This is what was observed on a 32-bit AIX 5.1. The effect is that maxsock becomes 2^31-1 and that fdtab allocation fails. Note that a simple workaround consists in manually setting maxconn in the global section. Let's ignore unlimited as soon as we retrieve rlim_fd_max so that all systems behave consistently. This may be backported as far as 2.0, though it doesn't seem like it has annoyed anyone.
This commit is contained in:
parent
6b736b4476
commit
2bd0f8147b
@ -3055,6 +3055,9 @@ int main(int argc, char **argv)
|
||||
|
||||
/* take a copy of initial limits before we possibly change them */
|
||||
getrlimit(RLIMIT_NOFILE, &limit);
|
||||
|
||||
if (limit.rlim_max == RLIM_INFINITY)
|
||||
limit.rlim_max = limit.rlim_cur;
|
||||
rlim_fd_cur_at_boot = limit.rlim_cur;
|
||||
rlim_fd_max_at_boot = limit.rlim_max;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user