BUG/MINOR: fix maxaccept computation according to the frontend process range
commit 7c0ffd23 is only considering the explicit use of the "process" keyword on the listeners. But at this step, if it's not defined in the configuration, the listener bind_proc mask is set to 0. As a result, the code will compute the maxaccept value based on only 1 process, which is not always true. For example : global nbproc 4 frontend test bind-process 1-2 bind :80 Here, the maxaccept value for the "test" frontend was set to the global tune.maxaccept value (default to 64), whereas it should consider 2 processes will accept connections. As of the documentation, the value should be divided by twice the number of processes the listener is bound to. To fix this, we can consider that if no mask is set to the listener, we take the frontend mask. This is not critical but it can introduce unfairness distribution of the incoming connections across the processes. It should be backported to the same branches as commit 7c0ffd23 (1.6 and 1.5 were in the scope).
This commit is contained in:
parent
d6c06d0f65
commit
4920d70fa0
@ -8741,7 +8741,7 @@ out_uri_auth_compat:
|
||||
int nbproc;
|
||||
|
||||
nbproc = my_popcountl(curproxy->bind_proc &
|
||||
listener->bind_conf->bind_proc &
|
||||
(listener->bind_conf->bind_proc ? listener->bind_conf->bind_proc : curproxy->bind_proc) &
|
||||
nbits(global.nbproc));
|
||||
|
||||
if (!nbproc) /* no intersection between listener and frontend */
|
||||
|
Loading…
x
Reference in New Issue
Block a user