httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ivan Zhakov <chemo...@gmail.com>
Subject Re: mpm_winnt incompatible and broken behavior on restart
Date Thu, 13 Oct 2005 12:53:27 GMT
On 10/13/05, Bill Stoddard <bill@wstoddard.com> wrote:
> 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:http://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x/server/mpm/winnt/child.c:child_main()/*
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'.
Hi, Bill!
You meant Worker mpm? To be clear: you cannot simply change timeout to
infinite wait in mpm_wint?
It is really important, because Apache+Subversion is unusable in
production environment under Windows at present time :(

--
Ivan Zhakov
Mime
View raw message