Cliff Woolley wrote:
>
> It fixes a problem, so +1 on concept. For 2.0.22 I'd much rather see
> us do something small and digestible like this than a really big
> change-the-methodology patch. But there's still a problem.
>
> I was pounding on it by doing ab -n 20000 -c 50 ... and doing a graceful
> restart mid-bench. At the same time, I had a browser window open doing a
> /server-status?refresh=2 . Because the browser was keepaliving my
> server-status requests, it turns out that the whole server came to a
> screeching halt when I did the graceful.
When I set MaxClients to 1 and ThreadsPerChild to 2, I cannot make it
hang. When I lower ThreadsPerChild to 1, ab hangs if
server-status?refresh=2 is running, because mod_status is grabbing the
only worker thread on my server and never giving it up, no doubt due to
keepalives. With refresh=5, ab can run concurrently. It is dog slow
with c=200 though, reasonable with c=50, dunno why, maybe a O(n**2)
problem somewhere - my hunch would be ab or the kernel. apachectl
graceful seems to work fine no matter what I do.
OK, now I have Cliff's config parms for threaded (they look like the
defaults), still don't see the same problem, still nothing funky ever
with graceful. Cliff, two more questions: what do you have for
HARD_SERVER_LIMIT and HARD_THREAD_LIMIT? defaults? and did you make
clean && make ? (I'm wondering about mpm_common in particular)
But I did get a hang after getting 16 seg faults (which could be in
mod_status - still no dumps) because all my worker processes are gone.
They shouldn't be - new ones should crank up after seg faults. gdb
shows the process_scores are clean, so that's not it. I'll keep
plugging until my better half gets home.
Greg