mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-03-07 14:18:15 +08:00
ITS#2389 - stop reading requests on a conn if it has more than
connection_pool_max/2 operations already executing. May want to tune this to a higher value, e.g. connection_pool_max - XX, etc. Fix in result.c throttles the connection too late, all threads are already consumed by the time the send buffer blocks.
This commit is contained in:
parent
546d5cb3a0
commit
a63b8908cd
@ -1493,6 +1493,15 @@ connection_input(
|
||||
|
||||
} else {
|
||||
conn->c_n_ops_executing++;
|
||||
/* Don't allow any single conn to soak up all of the
|
||||
* available threads
|
||||
*/
|
||||
if (conn->c_n_ops_executing > connection_pool_max/2) {
|
||||
ber_socket_t sd;
|
||||
|
||||
ber_sockbuf_ctrl( conn->c_sb, LBER_SB_OPT_GET_FD, &sd );
|
||||
slapd_clr_read( sd, 0 );
|
||||
}
|
||||
connection_op_activate( conn, op );
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user