A few of us spoke about this bug at ApacheCon. Our idea was to change
APR, so that APR provides a function make a thread wait for signals. If
the program wants to do that in a separate thread, then it can just create
a thread and make that function the starting function. Otherwise, the
main thread just becomes the signal thread. The patch should be
relatively easy to create, because it is more ripping out code than
writing new.
Ryan
On Mon, 9 Apr 2001, Bill Stoddard wrote:
> What do you have maxrequestsperchild set to? If it is not zero, then I suspect the
>problem is that
> the main thread in the threaded child process can sometimes exit before the worker
>threads. If you
> take a look at threaded.c, you will see that the main child thread is turned into a
>worker thread.
> If it exits first (due to max requests per child processing), the other threads in
>the process go
> off into never-never land. Paul Reder has a fix to this problem but has not posted
>it for some
> reason (perhaps because the fix exposes another serious bug in the threaded MPM in
> process_idle_server_maintenance?)
>
> Paul?
>
> Bill
>
> > I use the following command on httpd I compiled with mpm=threaded
> >
> > ab -n 100000 -c 200 http://127.0.0.1/
> >
> > It did reasonably well and dropped only 6 requests out of all and
> > performed better then if I used mpm=prefork. That's good. But when I do a
> > ps aux | grep httpd I get the following.
> >
> > nobody 4521 0.0 0.0 0 0 pts/3 Z 18:03 0:00 [httpd <defunct>]
> > nobody 4522 0.0 0.0 0 0 pts/3 Z 18:03 0:00 [httpd <defunct>]
> >
> > Anyone else experience this?
> > --
> > Austin Gonyou
> > Systems Architect
> > Coremetrics, Inc.
> > Phone: 512-796-9023
> > email: [EMAIL PROTECTED]
> >
> >
>
>
_______________________________________________________________________________
Ryan Bloom [EMAIL PROTECTED]
406 29th St.
San Francisco, CA 94131
-------------------------------------------------------------------------------