httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From (Robert S. Thau)
Subject Re: Shambhala Modules Musings [network wizard advice sought at bottom]
Date Mon, 03 Jul 1995 15:50:00 GMT
   From: Rob Hartill <>
   Date: Mon, 3 Jul 95 11:34:33 MDT

   Sounds good. Will a threads based system be portable ?, I'm thinking
   of problems like Rob McCool pointed out, were a Solaris (I beleive)
   library was leaking, and hence forced the MaxRequestPerChild approach.
   Perhaps these issues are unrelatated, I know nothing about threads.

The irony here is that Solaris has one of the few kernels which has
decent native threads support.  To answer the question:  yes, when
you've got leaky C libraries, you have to rotate server processes
*eventually*, but at the same time, when a multithreaded server just
up and dies, every transaction that it was processing gets
unceremoniously aborted, which is not good.  There are two ways of
dealing with this:

1) Live with the aborts, but rotate the processes rarely enough that
   they aren't a *significant* problem (for some suitable value of
   "significant").  Dying on every timeout is dying too often for
   this --- I'm not terribly busy here (a mere 150K reqs/day), and
   it's still not uncommon to see several timeouts a minute.

2) Adopt a more gradual approach to process rotation, where the
   "waning" server process stops accepting new requests when the
   "waxing" one comes on-line, but finishes the ones it had in
   progress before actually kicking the bucket.  

Either one is workable (though I have an obvious preference for #2).
In short, this issue can be worked out.

What's more of a concern is the portability of the threading interface
itself.  I know there are some PD threads libraries which are at least
*supposed* to be moderately portable, but I admit that I need to
investigate the matter further.

   same thing I guess; *sa_client would make it more portable should
   sockaddr_in ever be changed for some weird platform.

Are Linux and Solaris weird enough for you?  (It's not sockaddr_in for
either of those, or for Next).


View raw message