Hi folks, Running httpd.2.4.43 version with mpm_event module. There is an auth module loaded in HTTPD process which sends internal request to forward to authentication server . Internal requests are being routed to localhost:<httpd port> . Module which is routing the request expects response from auth server within 5 sec, if the response is not coming within 5 seconds, auth module closes internal connection.
When stress test is being run, some of the internal request are taking more then 5sec to get processed. There are enough number of worker threads.
Checked the TCP dump which shows that module has sent request to localhost:<httpd port> and TCP ACK appears in TCPDUMP after receiving the request.
event Listener thread is picking up the request after 4+ sec and httpd server is able to process the request less the one sec but by the time http server has responded with response, internal module which is sending the request already
has closed the connection due to timeout. Listener thread of each process calls apr_pollset_poll api to get list of socket which are ready to be processed. apr_pollset_poll API has returned fd for httpd port after 4+ sec.
apr_pollset_poll function is provided by APR which is wrapper over epoll APIs. There is no issue in increasing the timeout value, but looking for the proper reason for this delay.
Why socket fd correspond to httpd port not has not been returned by apr_pollset_poll API as soon as internal request has been sent ? How to debug this delay issue ? Is there any setting, I have to check at OS level/HTTPD server level.
Thanks, Shilpa |