https://issues.apache.org/bugzilla/show_bug.cgi?id=55615
Bug ID: 55615
Summary: Connections are starved when requests when requests
are beyond FcgidMaxProcessesPerClass
Product: Apache httpd-2
Version: 2.4.6
Hardware: PC
Status: NEW
Severity: normal
Priority: P2
Component: mod_fcgid
Assignee: [email protected]
Reporter: [email protected]
When a large number of concurrent requests are made to a FastCGI process which
exceeds the number defined in FcgidMaxProcessesPerClass, connections become
starved.
>From reviewing the source code, In fcgid_spawn_ctl.c when this condition
happens, the following piece of code is executed.
/*
* Process count of this class higher than up limit?
*/
if (current_node->process_counter >= current_node->max_class_process_count) {
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, main_server,
"mod_fcgid: too many %s processes (current:%d, max:%d), skip
the spawn request",
command->cgipath, current_node->process_counter,
current_node->max_class_process_count);
return 0;
}
For example, if I have a FastCGI application which returns a 1MB buffer called
buffer.exe. I have configured FcgidMaxProcessesPerClass to 4, and now I launch
64 concurrent requests to buffer.exe which are looping. The result is that
some threads obtain the the buffer while others are simply staved.
The expected result is that I would want these 64 concurrent requests to
equally be slow at obtaining the result rather then a few connections getting
the result while others are staved.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]