mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 15:47:01 +02: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 */
|
/* take a copy of initial limits before we possibly change them */
|
||||||
getrlimit(RLIMIT_NOFILE, &limit);
|
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_cur_at_boot = limit.rlim_cur;
|
||||||
rlim_fd_max_at_boot = limit.rlim_max;
|
rlim_fd_max_at_boot = limit.rlim_max;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user