Hi, cgi_handler() in 2.2 contains these lines. For trunk they look very similar.
if (!nph) { const char *location; char sbuf[MAX_STRING_LEN]; int ret; if ((ret = ap_scan_script_header_err_brigade(r, bb, sbuf))) { ret = log_script(r, conf, ret, dbuf, sbuf, bb, script_err); Now, if the script does not generate any output not even headers ap_scan_script_header_err_brigade() polls the script's stdout and stderr until the timeout is reached. Then log_script() is called which calls discard_script_output() and, thus, again ends up in cgi_bucket_read() waiting for the second timeout. Is that intentional? Torsten