httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bill Stoddard <>
Subject Re: mpm_winnt incompatible and broken behavior on restart
Date Thu, 13 Oct 2005 00:07:43 GMT
Ivan Zhakov wrote:
> Hi!We have Apache/Subversion server under Windows Server 2003. And I wascome into problem
with restarting server that process long request(more than 180 seconds). It's usual for bug
Subversion repository. Isee messages like this in error.log:[Thu Oct 13 02:28:01 2005] [notice]
Child 3952: Terminating 1 threadsthat failed to exit.
> I research problem and that mpm_winnt have hardcoded timeout forstopping working threads:*
Give busy worker threads a chance to service their connections */    ap_log_error(APLOG_MARK,APLOG_NOTICE,
APR_SUCCESS, ap_server_conf,                 "Child %d: Waiting for %d worker threads to exit.",my_pid,
threads_created);    end_time = time(NULL) + 180;    while (threads_created) {        rv =
wait_for_many_objects(threads_created, child_handles,end_time - time(NULL));        if (rv
!= WAIT_TIMEOUT) {            rv = rv - WAIT_OBJECT_0;            ap_assert((rv >= 0) &&
(rv < threads_created));            cleanup_thread(child_handles, &threads_created,
rv);            continue;        }        break;    }
> After this timeout Apache terminate worker threads. Why is it? Whympm_winnt behavior
incompatible to perfork behavior which waitsinfinityle for stopping child processes? It causes
really problems onmaintance and also doesn't permit use MaxRequestsPerChild option.
> PS: Sorry if it is not right place for such questions.
> --Ivan Zhakov

Hi Ivan,
This is definitly the right place for this type of question. I think the few Win32 developers
here (myself 
included) always had this on their list of 'todo's'. The Windows MPM needs to be enhanced
to reliably support 
multiple child processes and when that's done, this will be fixed 'for free'.


View raw message