Hi,
Resending this mail, just in case anyone would have suggestions/inputs as
how to fix this for connections that are in the ESTABLISHED state or FIN
state or any other TCP state other than LISTEN
Thanks & Regards
Devi
On 2/5/07, Devi Krishna <[EMAIL PROTECTED]> wrote:
Hi Apache Gurus,
I am seeing the following issue when I sent a graceful restart signal to
httpd [run with proxy enabled]
Processes on receiving SIGUSR1 seems to send a GET / HTTP/1.0 to the
httpd
itself.
This seems to be a dummy request that each process is trying to send
127.0.0.1 [05/Feb/2007:13:35:25 +0000] "GET / HTTP/1.0" 400 284
127.0.0.1 [05/Feb/2007:13:35:25 +0000] "GET / HTTP/1.0" 400 284
127.0.0.1 [05/Feb/2007:13:35:25 +0000] "GET / HTTP/1.0" 400 284
127.0.0.1 [05/Feb/2007:13:35:25 +0000] "GET / HTTP/1.0" 400 284
127.0.0.1 [05/Feb/2007:13:35:25 +0000] "GET / HTTP/1.0" 400 284
Wondering if this is a known issue, and if there is any solution for it.
I saw recent bug report regarding strange behaviour of mod_ssl on graceful
restart, but in my case, I dont have mod_ssl enabled.
Initially I saw this issue even when processes are in LISTEN state and
sigusr1 is sent.
I put in the following fix and that worked.
File : httpd/server/mpm/prefork/prefork.c
Function :child_main
+ if (ap_mpm_pod_check(pod) == APR_SUCCESS) { /* selected as idle?
*/
+ ap_log_error(APLOG_MARK, APLOG_ERR, status, ap_server_conf,
+ "Dont process connection as graceful restart received from
pod");
+ break;
+ }
+ if (die_now) {
+ ap_log_error(APLOG_MARK, APLOG_ERR, status, ap_server_conf,
+ "Dont process connection as graceful restart received");
+ break;
+ }
current_conn = ap_run_create_connection(ptrans, ap_server_conf,
csd,
my_child_num, sbh, bucket_alloc);
if (current_conn) {
ap_process_connection(current_conn, csd);
ap_lingering_close(current_conn);
}
However, for connections in ESTABLISHED state and other TCP states, I
still
see this issue.
Your inputs would be of great help!
Thanks & Regards
Devi