https://bugs.openldap.org/show_bug.cgi?id=9628

--- Comment #1 from Nadezhda Ivanova <[email protected]> ---
The c_n_ops_executing counter is used by the server to determine the number of
operations pending execution for a connection, and therefore the number of
active threads used by the connection, since in a synchronous back-end these
are identical. However, when the back-and is asynchronous, this counter no
longer matches the number of active threads - the thread has completed its
function, but the counter remains incremented until a response is received for
the operation. In case of async-meta this is handled when the response is
received, by a different thread.
So, when the target servers are slower to respond, we have a situation when the
counter is incremented, showing a high thread usage, when in fact there are
very few threads in use. The server then starts deferring and rejecting
operations, even though it is not overloaded.

This is reproducible by using an asynchronous client, introducing a network
delay on the interface to the target server, and comparing the sum of
monitorConnectionOpsExecuting for all connections with the number of active
threads (cn=Active,cn=Threads,cn=Monitor)

-- 
You are receiving this mail because:
You are on the CC list for the issue.

Reply via email to