httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tani Hosokawa <unkn...@riverstyx.net>
Subject Re: threaded apache question
Date Mon, 21 Jun 1999 21:33:53 GMT
On Mon, 21 Jun 1999, Manoj Kasichainula wrote:

> On Mon, Jun 21, 1999 at 01:55:56AM -0700, Tani Hosokawa wrote:
> > .K...K......W....L..W.....W.K....K..........W...K....K.........W
> > .......K.W......................................................
> > ..W.W.W.....W.....W....W......................................K.
> > .W..............................................................
> > .............................W........W.........................
> > ..........W.....................................................
> > ..............W.................................................
> > ..W.KW.........W.W....K........W.....WWW.K....W.................
> > W...........W................K....K.............................
> > 
> > If I understand what you're saying correctly, each process should always
> > have 64 threads, with some just being inactive (marked by _, not .),
> > correct?
> 
> Correct.
> 
> It looks like all of these processes is trying to die from hitting
> MaxRequestsPerChild (or did something initiate a graceful restart?),
> but not all of the threads are reaching the point where they learn
> it's time to die.

The server had been running for about half an hour at that point, but I
hadn't done anything to it.

> Could you attach a debugger to some of these errant threads to see
> what they're actually doing? Are they hung on a socket, like you were
> describing for 1.3?

found one like this:

#0  0x400e02de in __select ()
#1  0x21 in ?? ()
#2  0x806c57e in write_with_errors ()
#3  0x806c64d in bcwrite ()
#4  0x806cad5 in ap_bwrite ()
#5  0x807b8d6 in ap_send_mmap ()
#6  0x80743b5 in default_handler ()
#7  0x806db0e in ap_invoke_handler ()
#8  0x807ed11 in process_request_internal ()
#9  0x807ed7a in ap_process_request ()
#10 0x8076753 in process_socket ()
#11 0x80768d9 in worker_thread ()
#12 0x40069357 in pthread_start_thread (arg=0xb7fffea4) at manager.c:192

found several like this:

#0  0x400e54f4 in __syscall_writev ()
#1  0x401096cc in __DTOR_END__ ()
#2  0x806c401 in writev_it_all ()
#3  0x806c825 in large_write ()
#4  0x806c8f1 in ap_bwrite ()
#5  0x807b8d6 in ap_send_mmap ()
#6  0x807437c in default_handler ()
#7  0x806db0e in ap_invoke_handler ()
#8  0x807ed11 in process_request_internal ()
#9  0x807ed7a in ap_process_request ()
#10 0x8076753 in process_socket ()
#11 0x80768d9 in worker_thread ()
#12 0x40069357 in pthread_start_thread (arg=0xb95ffea4) at manager.c:192

In all cases, when I tried to quit and disconnect from gdb it hung and I
had to ^Z, then kill explicitly.  One was in the second state and had a
second thread in that processes, which I attempted to attach to but
couldn't... it just hung.

> Also, what is MaxRequestsPerChild set to? I haven't seen any
> MaxRequestsPerChild bugs in the code lately, but some could still be
> lurking.

10000, so nothing ought to be going awry there...

---
tani hosokawa
river styx internet



Mime
View raw message