how to recreate the file descriptor segfault? Re: cvs commit:httpd-2.0 STATUS

2002-01-11 Thread Brian Pane

I just tried to debug this with the current CVS HEAD on
Solaris, but I can't reproduce the crash.  The test case
that I tried was: set the httpd's ulimit on file descriptors
to a small number and run ab to generate enough concurrent
requests to exceed the fd limit.  Is there a better test case
that will trigger the segfault?

Thanks,
--Brian


Jeff Trawick wrote:

>[EMAIL PROTECTED] writes:
>
>>brianp  02/01/11 00:07:07
>>
>>  Modified:.STATUS
>>  Log:
>>  Updated STATUS to cover the worker segfault fixes
>>  
>>
>
>>  -* The worker MPM on Solaris segfaults when it runs out of file
>>  -  descriptors.  (This may affect other MPMs and/or platforms.)
>>
>
>I can still readily hit this on current code (the same code that no
>longer segfaults with graceful restart).
>
>[Fri Jan 11 07:26:37 2002] [error] (24)Too many open files:
>apr_accept: (client socket)
>[Fri Jan 11 07:26:37 2002] [error] [client 127.0.0.1] (24)Too many
>open files: file permissions deny server access: /exp
>ort/home/trawick/apacheinst/htdocs/index.html.en
>[Fri Jan 11 07:26:37 2002] [error] [client 127.0.0.1] (24)Too many
>open files: cannot access type map file: /export/home
>/trawick/apacheinst/error/HTTP_FORBIDDEN.html.var
>[Fri Jan 11 07:26:38 2002] [notice] child pid 25493 exit signal
>Segmentation fault (11), possible coredump in /export/ho
>me/trawick/apacheinst
>
>This is the same coredump I saw before:
>
>#0  0xff33a3cc in apr_wait_for_io_or_timeout (sock=0x738360,
> for_read=1) at sendrecv.c:70
>70  FD_SET(sock->socketdes, &fdset);
>
>The socket has already been closed so trying to set bit -1 segfaults.
>






Re: [PATCH] fix segfault in core input filter

2002-01-11 Thread Ian Holsman

Justin Erenkrantz wrote:
> On Fri, Jan 11, 2002 at 03:14:58PM -0500, Jeff Trawick wrote:
> 
>>>If the brigade in core_input_filter is empty, it means that the
>>>socket (and its bucket) has disappeared on us.  Most likely,
>>>someone isn't paying attention to APR_EOF return values.  
>>>
>>>We should return an error or at the very least APR_EOF if we
>>>see an empty brigade there.  But, it would be more useful to
>>>find out which input filter isn't paying attention.  -- justin
>>>
>>Does anybody have any concerns before I commit?
>>
> 
> Looks good to me.  +1.  -- justin
> 
> 

does the proxy break?
it usually does whenever the input filter changes ;(




Re: [PATCH] fix segfault in core input filter

2002-01-11 Thread Justin Erenkrantz

On Fri, Jan 11, 2002 at 03:14:58PM -0500, Jeff Trawick wrote:
> > If the brigade in core_input_filter is empty, it means that the
> > socket (and its bucket) has disappeared on us.  Most likely,
> > someone isn't paying attention to APR_EOF return values.  
> > 
> > We should return an error or at the very least APR_EOF if we
> > see an empty brigade there.  But, it would be more useful to
> > find out which input filter isn't paying attention.  -- justin
> 
> Does anybody have any concerns before I commit?

Looks good to me.  +1.  -- justin




new httpd-2_0_28 build running on daedalus

2002-01-11 Thread Greg Ames

...as of Fri Jan 11 15:05:33.  The purpose of this build was to see if the load
spikes happen with any build done on FreeBSD 4.5 because of our problems with
more recent httpd code.  So far I haven't seen the spikes.  Also, my patch to
log cpu per request is running.

Greg



Re: FreeBSD load statistics.

2002-01-11 Thread Greg Ames

Brian Pane wrote:
> 
> Greg Ames wrote:
> 
> >>On Wed, Jan 09, 2002 at 11:55:21PM -0800, Brian Pane wrote:
> >>
> >>>My hypothesis upon seeing these numbers is that the high run queue length
> >>>is due to us hitting some bottleneck in the kernel on daedalus--and because
> >>>post-2.0.28 releases waste less time in usr-space code between syscalls,
> >>>they hit that kernel bottleneck a lot harder than 2.0.28 did.
> >>>
> >
> >An interesting theory.  But it doesn't explain the high numbers of CPU ticks
> >I've recorded for trivial requests, nor does it explain the top Brian B sent us
> >with two httpd's both using over 50% of the CPU for a while
> >
> 
> It might explain the high number of CPU ticks for simple requests if
> a lot of processes are hitting, say, a spin lock at the same time.  But
> the two httpds using 50% of the CPU are definitely something different.
 
OK, spin locks sound like a reasonable explanation.  I'm surprised that they
spin that long though.  

I have 2_0_28 with cpu logging up now on port 8092.  I ran log replay against
it, and saw one simple request that used 221 cpu ticks (1.7 sec).  Everything
else was 20 ticks or less.  So either this happens all the time and is a red
herring, or this build has got the problem too.  I suspect it's the former, but
will put it into production later to be sure.

> We really need some data on what's happening in those processes on daedalus.

Yessir.  I'd love it if there were something like ktrace that wrote to a big
array in memory (i.e. not to a file) that we could grab if the run queue
exceeded, say, 180.

Greg



Re: [PATCH] fix segfault in core input filter

2002-01-11 Thread Jeff Trawick

Justin Erenkrantz <[EMAIL PROTECTED]> writes:

> On Fri, Jan 11, 2002 at 09:03:36AM -0500, Jeff Trawick wrote:
> > With current CVS code, prefork, APR_POOL_DEBUG, Linux, and
> > ElectricFence I readily hit a segfault on the APR_BRIGADE_NORMALIZE()
> > call in core input filter.  It segfaulted because the brigade was
> > empty.  With the following patch I can't seem to hit a segfault
> > anymore.
> > 
> > Perhaps the brigade shouldn't be empty for some reason...
> 
> If the brigade in core_input_filter is empty, it means that the
> socket (and its bucket) has disappeared on us.  Most likely,
> someone isn't paying attention to APR_EOF return values.  
> 
> We should return an error or at the very least APR_EOF if we
> see an empty brigade there.  But, it would be more useful to
> find out which input filter isn't paying attention.  -- justin

Does anybody have any concerns before I commit?

(I should run with ElectricFence more often...)

Index: server/core.c
===
RCS file: /home/cvs/httpd-2.0/server/core.c,v
retrieving revision 1.129
diff -u -r1.129 core.c
--- server/core.c   11 Jan 2002 18:55:27 -  1.129
+++ server/core.c   11 Jan 2002 20:13:48 -
@@ -3035,6 +3035,10 @@
 APR_BRIGADE_INSERT_TAIL(ctx->b, e);
 net->in_ctx = ctx;
 }
+else if (APR_BRIGADE_EMPTY(ctx->b)) {
+/* hit EOF on socket already */
+return APR_EOF;
+}
 
 /* ### This is bad. */
 APR_BRIGADE_NORMALIZE(ctx->b);
@@ -3114,9 +3118,6 @@
 
 AP_DEBUG_ASSERT(*readbytes > 0);
 
-if (APR_BRIGADE_EMPTY(ctx->b))
-return APR_EOF;
-
 e = APR_BRIGADE_FIRST(ctx->b);
 rv = apr_bucket_read(e, &str, &len, mode);
 


-- 
Jeff Trawick | [EMAIL PROTECTED] | PGP public key at web site:
   http://www.geocities.com/SiliconValley/Park/9289/
 Born in Roswell... married an alien...



Re: [PATCH] fix segfault in core input filter

2002-01-11 Thread Jeff Trawick

"Bill Stoddard" <[EMAIL PROTECTED]> writes:

> > @@ -260,6 +261,12 @@
> >   */
> >  APR_BRIGADE_INSERT_HEAD(bb, e);
> >  ap_pass_brigade(r->connection->output_filters, bb);
> > +if (rv != APR_SUCCESS) {
> > +/* We got an error earlier reading from the socket.  Make sure
> > + * keepalive is off so that we don't try to read another request.
> > + */
> > +r->connection->keepalive = 0;
> > +}
> >  }
> >  }
> >  
> 
> Should we set r->connection->aborted here?

no, because that disables lingering close...  we just need to know not
to bother trying to read more requests from the socket, and clearing
keepalive does that

but I'm working on a simpler patch now anyway which handles both of
the paths I found where APR_EOF was getting lost

-- 
Jeff Trawick | [EMAIL PROTECTED] | PGP public key at web site:
   http://www.geocities.com/SiliconValley/Park/9289/
 Born in Roswell... married an alien...



Re: [PATCH] fix segfault in core input filter

2002-01-11 Thread Jeff Trawick

Jeff Trawick <[EMAIL PROTECTED]> writes:

> The patch below gets rid of a segfault while processing every HTTP/1.1 
> request (w/ ElectricFence and APR_POOL_DEBUG) but there is a much less
> infrequent segfault remaining :(

The infrequent segfault still remaining is from a scenario where 
ap_rgetline() gets APR_SUCCESS from a call to ap_get_brigade() which
hit EOF on the socket.

1) pid 14795 status 3
2) 14795 getting brigade in ap_rgetline()
3) hit socket error 20514 in 14795, returning immortal
4) 14795 getting brigade returned 0
5) 14795 getting brigade in ap_rgetline()
6) [Fri Jan 11 14:41:47 2002] [notice] child pid 14795 exit signal Seg...

1: entering BUSY_READ state
2: ap_rgetline() about to call ap_get_brigade()
3: socket_read() hits EOF on socket, returns immortal "" bucket
4: ap_get_brigade() returns APR_SUCCESS to ap_rgetline()
   (it has a valid line)
5: ap_rgetline() about to call ap_get_brigade()
6: segfault in core input because ctx->b is empty

It would seem that the simplest patch to solve the last two problems
would be to check the brigade near the start of core-input and return
APR_EOF if it is empty.  (Justin suggested that some hours ago :) ).

-- 
Jeff Trawick | [EMAIL PROTECTED] | PGP public key at web site:
   http://www.geocities.com/SiliconValley/Park/9289/
 Born in Roswell... married an alien...



Re: [PATCH] fix segfault in core input filter

2002-01-11 Thread Bill Stoddard

> @@ -260,6 +261,12 @@
>   */
>  APR_BRIGADE_INSERT_HEAD(bb, e);
>  ap_pass_brigade(r->connection->output_filters, bb);
> +if (rv != APR_SUCCESS) {
> +/* We got an error earlier reading from the socket.  Make sure
> + * keepalive is off so that we don't try to read another request.
> + */
> +r->connection->keepalive = 0;
> +}
>  }
>  }
>  

Should we set r->connection->aborted here?

Bill




Re: Solaris 2.5.1 builds?

2002-01-11 Thread Aaron Bannert

On Fri, Jan 11, 2002 at 06:47:03PM +0100, Mladen Turk wrote:
[snip]
> using gcc3.0.2
> For a start just tried to build the apr.
> 
> bash-2.05$ ./configure --prefix=/whatever \
> --build=sparc-sun-solaris2.251
> --with-gnu-ld \
> --disable-ipv6
> ...
> bash-2.05$ make
> ...
> bash-2.05$ make test
> ...
> bash-2.05$ setenv LD_LIBRARY_PATH /usr/local/lib
> bash-2.05$ ./testfile

Does libgcc_s.so* live in /usr/local/lib? I don't see your LDFLAGS line
in your posting, but I'm assuming you set it.

[snip] 
> All tests passed OK
> Segmentation Fault (core dumped)
> bash-2.05$
> 
> 
> 
> Well core gets dumped for all test, but interesting almost all the test are
> passed except
> the testsock which complains that libgcc_s.so.1 open failed.

The core dumps are interesting, can you post a stack trace?

As for testsock, it's simply not finding libgcc_s.so.1. Try running
ldd .libs/testsock (or ldd .libs/lt-testsock if you have it).

-aaron



Re: [HEAD] --with-mpm=worker under FreeBSD 4.5 does nothing?

2002-01-11 Thread Aaron Bannert

On Fri, Jan 11, 2002 at 01:32:35PM -0400, Marc G. Fournier wrote:
> On Fri, 11 Jan 2002, Aaron Bannert wrote:
> 
> > On Fri, Jan 11, 2002 at 10:27:18AM -0400, Marc G. Fournier wrote:
> > ...
> > > [Fri Jan 11 14:20:19 2002] [crit] (78)Function not implemented: Fatal error: 
>could not open(create) scoreboard
> > ...
> >
> > >   Even if I comment out the 'ScoreBoard' line in httpd.conf, it
> > > gives the 'Function not implemented' error ...
> > >
> > >   Known problem?  If not, suggestions on how to debug and provide
> > > something just a wee bit more useful?  I'm not finding any core files
> > > laying about, so nothing I can gdb ...
> > ...
> >
> > send in the output of `grep SHM srclib/apr/include/apr.h` so we can find
> > out what shared memory subsystems are available on your platform.
> 
> jail# grep SHM srclib/apr/include/apr.h
> #define APR_HAVE_SHMEM_MMAP_TMP 1
> #define APR_HAVE_SHMEM_MMAP_SHM 1
> #define APR_HAVE_SHMEM_MMAP_ZERO1
> #define APR_HAVE_SHMEM_SHMGET_ANON  1
> #define APR_HAVE_SHMEM_SHMGET   1
> #define APR_HAVE_SHMEM_MMAP_ANON1
> #define APR_HAVE_SHMEM_BEOS 0
> #define APR_USE_SHMEM_MMAP_TMP 0
> #define APR_USE_SHMEM_MMAP_SHM 0
> #define APR_USE_SHMEM_MMAP_ZERO0
> #define APR_USE_SHMEM_SHMGET_ANON  0
> #define APR_USE_SHMEM_SHMGET   1
> #define APR_USE_SHMEM_MMAP_ANON1
> #define APR_USE_SHMEM_BEOS 0

These are identical to what I have on 5.0-CURRENT, and I just
verified that it still works for me.

If you are getting "Not implemented on this platform" errors, then
something funny is going on -- that only happens in the scoreboard if
you don't have any anonymous shmem implementations, which according to
your HAVE_SHMEM defines above is not true (you have every shmem type
known to APR on your system).

I'd say first try doing a full "make clean && make distclean && ./buildconf"
to make sure nothing is stale. Let us know if you're still seeing this
problem at that point.

Like Justin suggested, this could just be a problem with the jail. If
the above doesn't work, you might try changing to these defines:
#define APR_USE_SHMEM_SHMGET_ANON  1
#define APR_USE_SHMEM_MMAP_ANON0

So that you're using shmget() for the ANON shmem instead of mmap().

-aaron



Re: FreeBSD load statistics.

2002-01-11 Thread Greg Ames

Aaron Bannert wrote:

> Another thing that was brought up yesterday at dinner was the fact
> that Daedalus underwent a system upgrade to 4.5. AIUI this also means
> that things like libc and gcc were updated, and means that 2.0.28 and
> 2.0.30 were compiled by different compilers. Perhaps we should recompile
> 2.0.28 under the new environment and see if the load spikes are still
> not happening. That would at least exclude the possibilitity that this
> was introduced by the compiler and/or libraries as part of the upgrade.

hmmm...  2.0.30-dev went live on Dec 21.  On Dec 28 Brian B reported to the
infrastructure list that he had upgraded daedalus to 4.5, and had been seeing
load spikes for the last week.

But I want to do another 2_0_28 build anyway to stick in my cpu per request
logging patch, to see if the phenomenon where some trivial requests use a lot of
cpu exists there as well.  This will kill two birds with one stone.

Greg



Re: Apache 2.0.28 memory growth issue.

2002-01-11 Thread Aaron Bannert

On Fri, Jan 11, 2002 at 01:07:00PM -0500, Greg Ames wrote:
> Aaron Bannert wrote:
> 
> > Keep in mind that the multithreaded MPMs will by their very nature have
> > higher memory requirements than their single-threaded counterparts. I
> > regularly see memory usage in the range you've reported. Yesterday
> > while running with 500 threads, I can report that httpd was using 23M
> > (20M RSS).  If you consider that 500 prefork processes would take on
> > the order 500*N, where N is usually 3-5MB, then this is a *significant*
> > decrease in memory requirements -- which was one of the major goals of
> > the hybrid multiprocess/ multithreaded httpd model.
> 
> Good point.  I can see it while worker is getting pounded.  
> 
> hmmmn, but what if the traffic dries up completely?  Should we expect memory
> usage to shrink back down close to where it started?

Nope. Because you can never give memory back to the system, whatever
top shows for the SIZE is always a floor. The best you can do is reuse
memory (as we do with our pool freelists, and as free() does in libc).
The system may decide to steal unused pages from httpd, which shows up
in the discrepancy between SIZE and RSS (or RES on solaris) on the top
output, but as soon as those pages become active again those two columns
should converge.

-aaron



Re: FreeBSD load statistics.

2002-01-11 Thread Brian Pane

Greg Ames wrote:

>>On Wed, Jan 09, 2002 at 11:55:21PM -0800, Brian Pane wrote:
>>
>>>My hypothesis upon seeing these numbers is that the high run queue length
>>>is due to us hitting some bottleneck in the kernel on daedalus--and because
>>>post-2.0.28 releases waste less time in usr-space code between syscalls,
>>>they hit that kernel bottleneck a lot harder than 2.0.28 did.
>>>
>
>An interesting theory.  But it doesn't explain the high numbers of CPU ticks
>I've recorded for trivial requests, nor does it explain the top Brian B sent us
>with two httpd's both using over 50% of the CPU for a while
>

It might explain the high number of CPU ticks for simple requests if
a lot of processes are hitting, say, a spin lock at the same time.  But
the two httpds using 50% of the CPU are definitely something different.

We really need some data on what's happening in those processes on daedalus.

--Brian





Re: [PATCH] fix segfault in core input filter

2002-01-11 Thread Jeff Trawick

Jeff Trawick <[EMAIL PROTECTED]> writes:

> I'm following what happens when we get EOF on socket...
> 
> socket_read() returns APR_SUCCESS and immortal bucket with ""
> 
> core-input doesn't error out since it got APR_SUCCESS
> 
> core-input walks over the "" and deletes the immortal bucket
> 
> core-input sees empty brigade and returns APR_EOF
> 
> it gets returned up through net_time_filter to check_pipeline_flush
> 
> check_pipeline_flush knows ap_get_brigade() failed but it lost the
> retcode and has no way to return the error anyway
> 
> return to caller (ap_process_request)
> 
> do ap_run_log_transaction
> 
> back to ap_process_http_connection
> 
> ap_process_http_connection calls ap_read_request again and we segfault
> since core-input's brigade was empty
> 
> --/--
> 
> if check_pipeline_flush cleared c->keepalive we wouldn't have tried to
> read another request

The patch below gets rid of a segfault while processing every HTTP/1.1 
request (w/ ElectricFence and APR_POOL_DEBUG) but there is a much less
infrequent segfault remaining :(

Index: modules/http/http_request.c
===
RCS file: /home/cvs/httpd-2.0/modules/http/http_request.c,v
retrieving revision 1.122
diff -u -r1.122 http_request.c
--- modules/http/http_request.c 14 Dec 2001 03:29:13 -  1.122
+++ modules/http/http_request.c 11 Jan 2002 18:26:04 -
@@ -240,6 +240,7 @@
### need to send a FLUSH. */
 apr_bucket_brigade *bb = apr_brigade_create(r->pool);
 apr_off_t zero = 0;
+apr_status_t rv = APR_SUCCESS;
 
 /* Flush the filter contents if:
  *
@@ -249,7 +250,7 @@
 /* ### shouldn't this read from the connection input filters? */
 /* ### is zero correct? that means "read one line" */
 if (!r->connection->keepalive || 
-ap_get_brigade(r->input_filters, bb, AP_MODE_PEEK, &zero) != APR_SUCCESS) {
+(rv = ap_get_brigade(r->input_filters, bb, AP_MODE_PEEK, &zero)) != 
+APR_SUCCESS) {
 apr_bucket *e = apr_bucket_flush_create();
 
 /* We just send directly to the connection based filters.  At
@@ -260,6 +261,12 @@
  */
 APR_BRIGADE_INSERT_HEAD(bb, e);
 ap_pass_brigade(r->connection->output_filters, bb);
+if (rv != APR_SUCCESS) {
+/* We got an error earlier reading from the socket.  Make sure
+ * keepalive is off so that we don't try to read another request.
+ */
+r->connection->keepalive = 0;
+}
 }
 }
 


-- 
Jeff Trawick | [EMAIL PROTECTED] | PGP public key at web site:
   http://www.geocities.com/SiliconValley/Park/9289/
 Born in Roswell... married an alien...



Re: Apache 2.0.28 memory growth issue.

2002-01-11 Thread Bill Stoddard



> Aaron Bannert wrote:
>
> > Keep in mind that the multithreaded MPMs will by their very nature have
> > higher memory requirements than their single-threaded counterparts. I
> > regularly see memory usage in the range you've reported. Yesterday
> > while running with 500 threads, I can report that httpd was using 23M
> > (20M RSS).  If you consider that 500 prefork processes would take on
> > the order 500*N, where N is usually 3-5MB, then this is a *significant*
> > decrease in memory requirements -- which was one of the major goals of
> > the hybrid multiprocess/ multithreaded httpd model.
>
> Good point.  I can see it while worker is getting pounded.
>
> hmmmn, but what if the traffic dries up completely?  Should we expect memory
> usage to shrink back down close to where it started?
>
> Greg
>

Depends on the implementation details of the worker MPM. Specifically, do you 
preallocate
a ptrans pool for each and every worker thread or allocate one only when the thread is
dispatched to handle a request? Once a ptrans pool is allocated, do you free it when 
the
thread goes back into the worker pool?

Bill





Re: FreeBSD load statistics.

2002-01-11 Thread Greg Ames

> On Wed, Jan 09, 2002 at 11:55:21PM -0800, Brian Pane wrote:
> > My hypothesis upon seeing these numbers is that the high run queue length
> > is due to us hitting some bottleneck in the kernel on daedalus--and because
> > post-2.0.28 releases waste less time in usr-space code between syscalls,
> > they hit that kernel bottleneck a lot harder than 2.0.28 did.

An interesting theory.  But it doesn't explain the high numbers of CPU ticks
I've recorded for trivial requests, nor does it explain the top Brian B sent us
with two httpd's both using over 50% of the CPU for a while

Justin Erenkrantz wrote:

> FWIW, Aaron was telling me that he remembers seeing high run-queue
> lengths on machines with failing hard drives.  

OK, but daedalus uses the same hard drives under 2_0_28.

Greg



Re: [PATCH] fix segfault in core input filter

2002-01-11 Thread Jeff Trawick

Justin Erenkrantz <[EMAIL PROTECTED]> writes:

> On Fri, Jan 11, 2002 at 09:03:36AM -0500, Jeff Trawick wrote:
> > With current CVS code, prefork, APR_POOL_DEBUG, Linux, and
> > ElectricFence I readily hit a segfault on the APR_BRIGADE_NORMALIZE()
> > call in core input filter.  It segfaulted because the brigade was
> > empty.  With the following patch I can't seem to hit a segfault
> > anymore.
> > 
> > Perhaps the brigade shouldn't be empty for some reason...
> 
> If the brigade in core_input_filter is empty, it means that the
> socket (and its bucket) has disappeared on us.  Most likely,
> someone isn't paying attention to APR_EOF return values.  
> 
> We should return an error or at the very least APR_EOF if we
> see an empty brigade there.  But, it would be more useful to
> find out which input filter isn't paying attention.  -- justin

I'm following what happens when we get EOF on socket...

socket_read() returns APR_SUCCESS and immortal bucket with ""

core-input doesn't error out since it got APR_SUCCESS

core-input walks over the "" and deletes the immortal bucket

core-input sees empty brigade and returns APR_EOF

it gets returned up through net_time_filter to check_pipeline_flush

check_pipeline_flush knows ap_get_brigade() failed but it lost the
retcode and has no way to return the error anyway

return to caller (ap_process_request)

do ap_run_log_transaction

back to ap_process_http_connection

ap_process_http_connection calls ap_read_request again and we segfault
since core-input's brigade was empty

--/--

if check_pipeline_flush cleared c->keepalive we wouldn't have tried to
read another request

any other ideas?

-- 
Jeff Trawick | [EMAIL PROTECTED] | PGP public key at web site:
   http://www.geocities.com/SiliconValley/Park/9289/
 Born in Roswell... married an alien...



Re: Apache 2.0.28 memory growth issue.

2002-01-11 Thread Greg Ames

Aaron Bannert wrote:

> Keep in mind that the multithreaded MPMs will by their very nature have
> higher memory requirements than their single-threaded counterparts. I
> regularly see memory usage in the range you've reported. Yesterday
> while running with 500 threads, I can report that httpd was using 23M
> (20M RSS).  If you consider that 500 prefork processes would take on
> the order 500*N, where N is usually 3-5MB, then this is a *significant*
> decrease in memory requirements -- which was one of the major goals of
> the hybrid multiprocess/ multithreaded httpd model.

Good point.  I can see it while worker is getting pounded.  

hmmmn, but what if the traffic dries up completely?  Should we expect memory
usage to shrink back down close to where it started?

Greg



Re: Apache 2.0.28 memory growth issue.

2002-01-11 Thread Greg Ames

Chris Williams wrote:

> If I want to get the tag'd version of 2.0.30 from CVS, what is the
> command?  The only thing I saw on the developer page was how to get the
> latest and greatest.

cvs checkout -r APACHE_2_0_30 httpd-2.0
cd httpd-2.0/srclib
cvs checkout -r APACHE_2_0_30 apr apr-util

Greg



RE: Apache 2.0.28 memory growth issue.

2002-01-11 Thread Chris Williams

Thanks for the response Ian.  I have one newbie type of question.  I have
been using the beta's that apache has been posting which the latest was
2.0.28.  If I want to get the tag'd version of 2.0.30 from CVS, what is the
command?  The only thing I saw on the developer page was how to get the
latest and greatest.
Thanks for your help
Chris

> -Original Message-
> From: Ian Holsman [mailto:[EMAIL PROTECTED]]
> Sent: Friday, January 11, 2002 11:24 AM
> To: [EMAIL PROTECTED]; Chris Williams
> Subject: Re: Apache 2.0.28 memory growth issue.
>
>
> Chris Williams wrote:
>
> > I am running apache 2.0.28 on Solaris 8 with the worker MPM.  I
> am seeing
> > memory growth when I use flood to hammer apache when just
> serving up static
> > pages.  I have had flood running with 250 farmers constantly running the
> > past hour and the growth of the httpd processes using the ps command has
> > gone from 4200 to 15000 when using the RSS value from ps.  Was
> this growth
> > normal in 2.0.28?  I know the latest tagged version is 2.0.30
> and wonder if
> > I should try and get it setup on my Solaris box(doesn't have libtool and
> > other stuff needed to build from CVS).  Is/was this a known
> issue and will
> > upgrading to a version later than 2.0.28 help?  One other
> question...what is
> > the correct syntax for the CVS command to get a specific label
> out of CVS
> > sat I want to get 2.0.30 instead of the HEAD?
> > Thanks!
> > Chris
> >
> >
>
> Hi Chris.
> I'm not sure about .28, but .29 (+aprtableget patch from 30) seems
> pretty stable for us, and we haven't seen that memory growth you
> describe. does the RSS size constantly grow from the start, or does
> it sit still for a period of time and then start increasing.
> also it could be a module you are running.
>




Re: Solaris 2.5.1 builds?

2002-01-11 Thread Mladen Turk


- Original Message -
From: "Justin Erenkrantz" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, January 11, 2002 2:09 AM
Subject: Re: Solaris 2.5.1 builds?



> That should fix it.  If not, find libgcc_s.so.1 and add
> -R/path/to/libgcc/dir to LDFLAGS.  -- justin

OK... did

using gcc3.0.2
For a start just tried to build the apr.

bash-2.05$ ./configure --prefix=/whatever \
--build=sparc-sun-solaris2.251
--with-gnu-ld \
--disable-ipv6
...
bash-2.05$ make
...
bash-2.05$ make test
...
bash-2.05$ setenv LD_LIBRARY_PATH /usr/local/lib
bash-2.05$ ./testfile
APR File Functions Test
===

Initializing APROK
Creating the main pool we'll useOK
Creating the second pool we'll use  OK
Testing file functions.
Opening fileOK
Checking filename   test.fil
Writing to the file OK
Checking we wrote everythingOK
Moving to the start of file OK
This platform supports files_like_sockets, testing...
Making file look like a socket  OK
Checking for incoming data  OK
End of files as sockets test.
Reading from the file   OK
Checking what we read   OK
Adding user data to the fileOK
Getting user data from the file OK
Checking the data we gotOK
Getting fileinfoOK
Closing the fileOK
Stat'ing file   OK
Getting groupname   OK
Comparing group ID'sOK
 (gid's for other match)
Getting usernameOK
Comparing users OK
 (uid's for root match)
Deleting the file   OK
Making sure it's gone   OK
Testing Directory functions.
Making directoryOK
Creating a file in the new directoryOK
Opening directory   OK
Reading directory   OK
Getting Information about the file...
File name   OK
File type   OK
File size   OK
Done checking file information
Rewind directoryOK
Closing directory   OK
Removing file from directoryOK
Removing directory  OK
Creating the file   OK
Closing the fileOK
Removing the file   OK
Checking it's gone  OK
Testing file read functions.
Buffered file tests OK
Unbuffered file tests   OK
More buffered file testsOK
More unbuffered file tests  OK
Even more buffered file tests   OK
Even more unbuffered file tests OK
All read tests  OK

All tests passed OK
Segmentation Fault (core dumped)
bash-2.05$



Well core gets dumped for all test, but interesting almost all the test are
passed except
the testsock which complains that libgcc_s.so.1 open failed.

Any clues?

MT.




Re: [HEAD] --with-mpm=worker under FreeBSD 4.5 does nothing?

2002-01-11 Thread Marc G. Fournier

On Fri, 11 Jan 2002, Aaron Bannert wrote:

> On Fri, Jan 11, 2002 at 10:27:18AM -0400, Marc G. Fournier wrote:
> ...
> > [Fri Jan 11 14:20:19 2002] [crit] (78)Function not implemented: Fatal error: could 
>not open(create) scoreboard
> ...
>
> > Even if I comment out the 'ScoreBoard' line in httpd.conf, it
> > gives the 'Function not implemented' error ...
> >
> > Known problem?  If not, suggestions on how to debug and provide
> > something just a wee bit more useful?  I'm not finding any core files
> > laying about, so nothing I can gdb ...
> ...
>
> send in the output of `grep SHM srclib/apr/include/apr.h` so we can find
> out what shared memory subsystems are available on your platform.

jail# grep SHM srclib/apr/include/apr.h
#define APR_HAVE_SHMEM_MMAP_TMP 1
#define APR_HAVE_SHMEM_MMAP_SHM 1
#define APR_HAVE_SHMEM_MMAP_ZERO1
#define APR_HAVE_SHMEM_SHMGET_ANON  1
#define APR_HAVE_SHMEM_SHMGET   1
#define APR_HAVE_SHMEM_MMAP_ANON1
#define APR_HAVE_SHMEM_BEOS 0
#define APR_USE_SHMEM_MMAP_TMP 0
#define APR_USE_SHMEM_MMAP_SHM 0
#define APR_USE_SHMEM_MMAP_ZERO0
#define APR_USE_SHMEM_SHMGET_ANON  0
#define APR_USE_SHMEM_SHMGET   1
#define APR_USE_SHMEM_MMAP_ANON1
#define APR_USE_SHMEM_BEOS 0

> I tested this code on 5.0-current and I know Justin as well as others
> have tested this on earlier versions (4.4 IIRC).

jail# uname -a
FreeBSD jail 4.5-PRERELEASE FreeBSD 4.5-PRERELEASE #2: Mon Jan  7 11:19:58 AST 2002
 [EMAIL PROTECTED]:/usr/obj/usr/src/sys/atelier  i386




Re: [HEAD] --with-mpm=worker under FreeBSD 4.5 does nothing?

2002-01-11 Thread Marc G. Fournier

On Fri, 11 Jan 2002, Justin Erenkrantz wrote:

> On Fri, Jan 11, 2002 at 10:27:18AM -0400, Marc G. Fournier wrote:
> >
> > Morning all ...
> >
> > Just built a 'jail' environment under a 4.5 system so that I can
> > putz around with Apache2-HEAD, where I could "reformat" at will to clean
> > up any cruft ... build went great, using:
> >
> > #!/bin/sh
> > ./configure  \
> > --prefix=/usr/local/apache \
> > --with-perl=/usr/bin/perl \
> > --enable-so \
> > --with-suexec-caller=nobody \
> > --with-mpm=worker \
> > --enable-threads \
> > --with-port=80 \
> > --enable-mods-shared='all cgid ssl proxy proxy-connect proxy-ftp 
>proxy-http cache mem-cache file-cache'
> >
> > Install went as smooth ... but I can't connect ...
> >
> > logs/error_log shows:
> >
> > [Fri Jan 11 14:20:17 2002] [info] mod_unique_id: using ip addr 131.162.139.86
> > [Fri Jan 11 14:20:18 2002] [info] mod_unique_id: using ip addr 131.162.139.86
> > [Fri Jan 11 14:20:19 2002] [notice] Digest: generating secret for digest 
>authentication ...
> > [Fri Jan 11 14:20:19 2002] [notice] Digest: done
> > [Fri Jan 11 14:20:19 2002] [warn] pid file /usr/local/apache/logs/httpd.pid 
>overwritten -- Unclean shutdown of previous Apache run?
> > [Fri Jan 11 14:20:19 2002] [crit] (78)Function not implemented: Fatal error: could 
>not open(create) scoreboard
> >
> > And a ps listing shows no root process, only the one nobody
> > process:
> >
> > jail# ps aux | grep http
> > nobody  83618  0.0  1.1  4224 2924  ??  IJ2:20PM   0:00.00 bin/httpd
> >
> > Even if I comment out the 'ScoreBoard' line in httpd.conf, it
> > gives the 'Function not implemented' error ...
>
> I'm not familiar enough with the "jail," but it sounds like
> anonymous mmap may not be supported in this environment.  Can you
> grep for APR_USE_SHMEM in srclib/apr/include/apr.h and send that?
> I'll bet mmap is returning that error.

jail# grep APR_USE_SHMEM srclib/apr/include/apr.h
#define APR_USE_SHMEM_MMAP_TMP 0
#define APR_USE_SHMEM_MMAP_SHM 0
#define APR_USE_SHMEM_MMAP_ZERO0
#define APR_USE_SHMEM_SHMGET_ANON  0
#define APR_USE_SHMEM_SHMGET   1
#define APR_USE_SHMEM_MMAP_ANON1
#define APR_USE_SHMEM_BEOS 0

> Please understand that threads aren't working on FreeBSD.  It's why
> you had to manually enable them.  =)

Thought of that too, so I tried prefork ... got same results ...


> However, worker MPM on FreeBSD isn't usable by anyone at this
> point other than as a conversation piece.  -- justin

Actually, I am using on an older 4.4 jail environment:

Server Version: Apache/2.0.28 (Unix) mod_ssl/3.0a0 OpenSSL/0.9.6 DAV/2

Current Time: Friday, 11-Jan-2002 17:30:18 GMT
Restart Time: Tuesday, 08-Jan-2002 18:28:03 GMT
Parent Server Generation: 0
Server uptime:  2 days 23 hours 2 minutes 15 seconds
Total accesses: 173 - Total Traffic: 163 kB
CPU Usage: u24.5469 s63.2891 cu0 cs0 - .0343% CPU load
.000676 requests/sec - 0 B/second - 964 B/request
1 requests currently being processed, 24 idle workers

Not a heavily loaded server, mind you ... but it is running ...




Re: [HEAD] --with-mpm=worker under FreeBSD 4.5 does nothing?

2002-01-11 Thread David Reid

Justin,

On FreeBSD 4.5 worker is now reasonably usable (albeit in short bursts I
will grant), at least it was for me earlier today.  We'll have to play with
it and see what's going on on other systems and under load though.

david

- Original Message -
From: "Justin Erenkrantz" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, January 11, 2002 4:08 PM
Subject: Re: [HEAD] --with-mpm=worker under FreeBSD 4.5 does nothing?


> On Fri, Jan 11, 2002 at 10:27:18AM -0400, Marc G. Fournier wrote:
> >
> > Morning all ...
> >
> > Just built a 'jail' environment under a 4.5 system so that I can
> > putz around with Apache2-HEAD, where I could "reformat" at will to clean
> > up any cruft ... build went great, using:
> >
> > #!/bin/sh
> > ./configure  \
> > --prefix=/usr/local/apache \
> > --with-perl=/usr/bin/perl \
> > --enable-so \
> > --with-suexec-caller=nobody \
> > --with-mpm=worker \
> > --enable-threads \
> > --with-port=80 \
> > --enable-mods-shared='all cgid ssl proxy proxy-connect proxy-ftp
proxy-http cache mem-cache file-cache'
> >
> > Install went as smooth ... but I can't connect ...
> >
> > logs/error_log shows:
> >
> > [Fri Jan 11 14:20:17 2002] [info] mod_unique_id: using ip addr
131.162.139.86
> > [Fri Jan 11 14:20:18 2002] [info] mod_unique_id: using ip addr
131.162.139.86
> > [Fri Jan 11 14:20:19 2002] [notice] Digest: generating secret for digest
authentication ...
> > [Fri Jan 11 14:20:19 2002] [notice] Digest: done
> > [Fri Jan 11 14:20:19 2002] [warn] pid file
/usr/local/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous
Apache run?
> > [Fri Jan 11 14:20:19 2002] [crit] (78)Function not implemented: Fatal
error: could not open(create) scoreboard
> >
> > And a ps listing shows no root process, only the one nobody
> > process:
> >
> > jail# ps aux | grep http
> > nobody  83618  0.0  1.1  4224 2924  ??  IJ2:20PM   0:00.00 bin/httpd
> >
> > Even if I comment out the 'ScoreBoard' line in httpd.conf, it
> > gives the 'Function not implemented' error ...
>
> I'm not familiar enough with the "jail," but it sounds like
> anonymous mmap may not be supported in this environment.  Can you
> grep for APR_USE_SHMEM in srclib/apr/include/apr.h and send that?
> I'll bet mmap is returning that error.
>
> > Known problem?  If not, suggestions on how to debug and provide
> > something just a wee bit more useful?  I'm not finding any core files
> > laying about, so nothing I can gdb ...
>
> You can do a break in apr_shm_create() and watch the return
> value from mmap.  I bet it'll be an error condition.
>
> Please understand that threads aren't working on FreeBSD.  It's why
> you had to manually enable them.  =)
>
> At the very least, something looks busted with their
> pthread_cond_* implementation (or our usage of it) that blows up
> our worker scheme.
>
> If you want to help out with the development of worker and threads
> on FreeBSD, you are more than welcome to assist.  I would recommend
> reading through the various STATUS files for FreeBSD notes.  We have
> tidbits all over the place.
>
> However, worker MPM on FreeBSD isn't usable by anyone at this
> point other than as a conversation piece.  -- justin
>
>




Re: Apache 2.0.28 memory growth issue.

2002-01-11 Thread Aaron Bannert

On Fri, Jan 11, 2002 at 10:22:45AM -0500, Chris Williams wrote:
> I am running apache 2.0.28 on Solaris 8 with the worker MPM.  I am seeing
> memory growth when I use flood to hammer apache when just serving up static
> pages.  I have had flood running with 250 farmers constantly running the
> past hour and the growth of the httpd processes using the ps command has
> gone from 4200 to 15000 when using the RSS value from ps.  Was this growth
> normal in 2.0.28?  I know the latest tagged version is 2.0.30 and wonder if
> I should try and get it setup on my Solaris box(doesn't have libtool and
> other stuff needed to build from CVS).  Is/was this a known issue and will
> upgrading to a version later than 2.0.28 help?
...

Memory leaks and unbounded memory growth in the worker MPM is not
something that I've seen nor something that I've heard reported to the
list recently.

Keep in mind that the multithreaded MPMs will by their very nature have
higher memory requirements than their single-threaded counterparts. I
regularly see memory usage in the range you've reported. Yesterday
while running with 500 threads, I can report that httpd was using 23M
(20M RSS).  If you consider that 500 prefork processes would take on
the order 500*N, where N is usually 3-5MB, then this is a *significant*
decrease in memory requirements -- which was one of the major goals of
the hybrid multiprocess/ multithreaded httpd model.

-aaron



Re: [HEAD] --with-mpm=worker under FreeBSD 4.5 does nothing?

2002-01-11 Thread Aaron Bannert

On Fri, Jan 11, 2002 at 10:27:18AM -0400, Marc G. Fournier wrote:
...
> [Fri Jan 11 14:20:19 2002] [crit] (78)Function not implemented: Fatal error: could 
>not open(create) scoreboard
...
 
>   Even if I comment out the 'ScoreBoard' line in httpd.conf, it
> gives the 'Function not implemented' error ...
> 
>   Known problem?  If not, suggestions on how to debug and provide
> something just a wee bit more useful?  I'm not finding any core files
> laying about, so nothing I can gdb ...
...

send in the output of `grep SHM srclib/apr/include/apr.h` so we can find
out what shared memory subsystems are available on your platform.

I tested this code on 5.0-current and I know Justin as well as others
have tested this on earlier versions (4.4 IIRC).

-aaron



Re: Apache 2.0.28 memory growth issue.

2002-01-11 Thread Ian Holsman

Chris Williams wrote:

> I am running apache 2.0.28 on Solaris 8 with the worker MPM.  I am seeing
> memory growth when I use flood to hammer apache when just serving up static
> pages.  I have had flood running with 250 farmers constantly running the
> past hour and the growth of the httpd processes using the ps command has
> gone from 4200 to 15000 when using the RSS value from ps.  Was this growth
> normal in 2.0.28?  I know the latest tagged version is 2.0.30 and wonder if
> I should try and get it setup on my Solaris box(doesn't have libtool and
> other stuff needed to build from CVS).  Is/was this a known issue and will
> upgrading to a version later than 2.0.28 help?  One other question...what is
> the correct syntax for the CVS command to get a specific label out of CVS
> sat I want to get 2.0.30 instead of the HEAD?
> Thanks!
> Chris
> 
> 

Hi Chris.
I'm not sure about .28, but .29 (+aprtableget patch from 30) seems 
pretty stable for us, and we haven't seen that memory growth you 
describe. does the RSS size constantly grow from the start, or does
it sit still for a period of time and then start increasing.
also it could be a module you are running.




Re: cvs commit: apache-1.3/src/main http_core.c

2002-01-11 Thread Rodent of Unusual Size

"William A. Rowe, Jr." wrote:
> 
> From: "Roy T. Fielding" <[EMAIL PROTECTED]>
> Sent: Thursday, January 10, 2002 5:47 PM
> 
> And no features should be added to 1.3 without the parallel patch to 2.0,
> if it is at all relevant.  Ken, is there a patch forthcoming?

You betcha.  Docco too. :-)

Okey, MMN bump being changed to minor..
-- 
#kenP-)}

Ken Coar, Sanagendamgagwedweinini  http://Golux.Com/coar/
Author, developer, opinionist  http://Apache-Server.Com/

"All right everyone!  Step away from the glowing hamburger!"



Re: [HEAD] --with-mpm=worker under FreeBSD 4.5 does nothing?

2002-01-11 Thread Justin Erenkrantz

On Fri, Jan 11, 2002 at 10:27:18AM -0400, Marc G. Fournier wrote:
> 
> Morning all ...
> 
>   Just built a 'jail' environment under a 4.5 system so that I can
> putz around with Apache2-HEAD, where I could "reformat" at will to clean
> up any cruft ... build went great, using:
> 
> #!/bin/sh
> ./configure  \
> --prefix=/usr/local/apache \
> --with-perl=/usr/bin/perl \
> --enable-so \
> --with-suexec-caller=nobody \
> --with-mpm=worker \
> --enable-threads \
> --with-port=80 \
> --enable-mods-shared='all cgid ssl proxy proxy-connect proxy-ftp proxy-http 
>cache mem-cache file-cache'
> 
>   Install went as smooth ... but I can't connect ...
> 
>   logs/error_log shows:
> 
> [Fri Jan 11 14:20:17 2002] [info] mod_unique_id: using ip addr 131.162.139.86
> [Fri Jan 11 14:20:18 2002] [info] mod_unique_id: using ip addr 131.162.139.86
> [Fri Jan 11 14:20:19 2002] [notice] Digest: generating secret for digest 
>authentication ...
> [Fri Jan 11 14:20:19 2002] [notice] Digest: done
> [Fri Jan 11 14:20:19 2002] [warn] pid file /usr/local/apache/logs/httpd.pid 
>overwritten -- Unclean shutdown of previous Apache run?
> [Fri Jan 11 14:20:19 2002] [crit] (78)Function not implemented: Fatal error: could 
>not open(create) scoreboard
> 
>   And a ps listing shows no root process, only the one nobody
> process:
> 
> jail# ps aux | grep http
> nobody  83618  0.0  1.1  4224 2924  ??  IJ2:20PM   0:00.00 bin/httpd
> 
>   Even if I comment out the 'ScoreBoard' line in httpd.conf, it
> gives the 'Function not implemented' error ...

I'm not familiar enough with the "jail," but it sounds like
anonymous mmap may not be supported in this environment.  Can you 
grep for APR_USE_SHMEM in srclib/apr/include/apr.h and send that?
I'll bet mmap is returning that error.

>   Known problem?  If not, suggestions on how to debug and provide
> something just a wee bit more useful?  I'm not finding any core files
> laying about, so nothing I can gdb ...

You can do a break in apr_shm_create() and watch the return
value from mmap.  I bet it'll be an error condition.

Please understand that threads aren't working on FreeBSD.  It's why
you had to manually enable them.  =)

At the very least, something looks busted with their 
pthread_cond_* implementation (or our usage of it) that blows up 
our worker scheme. 

If you want to help out with the development of worker and threads
on FreeBSD, you are more than welcome to assist.  I would recommend
reading through the various STATUS files for FreeBSD notes.  We have
tidbits all over the place.  

However, worker MPM on FreeBSD isn't usable by anyone at this
point other than as a conversation piece.  -- justin




Re: [PATCH] fix segfault in core input filter

2002-01-11 Thread Justin Erenkrantz

On Fri, Jan 11, 2002 at 09:03:36AM -0500, Jeff Trawick wrote:
> With current CVS code, prefork, APR_POOL_DEBUG, Linux, and
> ElectricFence I readily hit a segfault on the APR_BRIGADE_NORMALIZE()
> call in core input filter.  It segfaulted because the brigade was
> empty.  With the following patch I can't seem to hit a segfault
> anymore.
> 
> Perhaps the brigade shouldn't be empty for some reason...

If the brigade in core_input_filter is empty, it means that the
socket (and its bucket) has disappeared on us.  Most likely,
someone isn't paying attention to APR_EOF return values.  

We should return an error or at the very least APR_EOF if we
see an empty brigade there.  But, it would be more useful to
find out which input filter isn't paying attention.  -- justin




Re: cvs commit: httpd-2.0 STATUS

2002-01-11 Thread Brian Pane

I was seeing the segraults in a different location on
Solaris, probably because my testing method was different.
I created idle connections to the httpd to use up all the
descriptors, rather than a flood of real requests.  So we
probably had (at least) two different bugs related to running
out of file descriptors.
--Brian

Jeff Trawick wrote:

>[EMAIL PROTECTED] writes:
>
>>brianp  02/01/11 00:07:07
>>
>>  Modified:.STATUS
>>  Log:
>>  Updated STATUS to cover the worker segfault fixes
>>  
>>
>
>>  -* The worker MPM on Solaris segfaults when it runs out of file
>>  -  descriptors.  (This may affect other MPMs and/or platforms.)
>>
>
>I can still readily hit this on current code (the same code that no
>longer segfaults with graceful restart).
>
>[Fri Jan 11 07:26:37 2002] [error] (24)Too many open files:
>apr_accept: (client socket)
>[Fri Jan 11 07:26:37 2002] [error] [client 127.0.0.1] (24)Too many
>open files: file permissions deny server access: /exp
>ort/home/trawick/apacheinst/htdocs/index.html.en
>[Fri Jan 11 07:26:37 2002] [error] [client 127.0.0.1] (24)Too many
>open files: cannot access type map file: /export/home
>/trawick/apacheinst/error/HTTP_FORBIDDEN.html.var
>[Fri Jan 11 07:26:38 2002] [notice] child pid 25493 exit signal
>Segmentation fault (11), possible coredump in /export/ho
>me/trawick/apacheinst
>
>This is the same coredump I saw before:
>
>#0  0xff33a3cc in apr_wait_for_io_or_timeout (sock=0x738360,
> for_read=1) at sendrecv.c:70
>70  FD_SET(sock->socketdes, &fdset);
>
>The socket has already been closed so trying to set bit -1 segfaults.
>






Apache 2.0.28 memory growth issue.

2002-01-11 Thread Chris Williams

I am running apache 2.0.28 on Solaris 8 with the worker MPM.  I am seeing
memory growth when I use flood to hammer apache when just serving up static
pages.  I have had flood running with 250 farmers constantly running the
past hour and the growth of the httpd processes using the ps command has
gone from 4200 to 15000 when using the RSS value from ps.  Was this growth
normal in 2.0.28?  I know the latest tagged version is 2.0.30 and wonder if
I should try and get it setup on my Solaris box(doesn't have libtool and
other stuff needed to build from CVS).  Is/was this a known issue and will
upgrading to a version later than 2.0.28 help?  One other question...what is
the correct syntax for the CVS command to get a specific label out of CVS
sat I want to get 2.0.30 instead of the HEAD?
Thanks!
Chris




Re: cvs commit: httpd-2.0/server/mpm/worker worker.c

2002-01-11 Thread Marc G. Fournier


Is this the same issue I just reported with:

   "Subject: [HEAD] --with-mpm=worker under FreeBSD 4.5 does nothing?"

If so, then there is another bug in there somewhere, since I just checked,
and I'm running v1.60 of worker.c:


revision 1.60
date: 2002/01/11 08:01:11;  author: brianp;  state: Exp;  lines: +1 -1
Fix for a segfault in the worker MPM during graceful shutdown:
The per-transaction pools in the worker MPM can't be children of
the listener thread's pool, because that pool may go out of scope
while some workers are still procesing requests using the transaction
pools.

jail# cvs status worker.c
===
File: worker.c  Status: Up-to-date

   Working revision:1.60
   Repository revision: 1.60/home/cvspublic/httpd-2.0/server/mpm/worker/worker.c,v
   Sticky Tag:  (none)
   Sticky Date: (none)
   Sticky Options:  (none)


On Fri, 11 Jan 2002, David Reid wrote:

> This also fixes the shutdown issue with worker MPM on FreeBSD which is good
> :)
>
> david
>
>
> > brianp  02/01/11 00:01:11
> >
> >   Modified:.CHANGES
> >server/mpm/worker worker.c
> >   Log:
> >   Fix for a segfault in the worker MPM during graceful shutdown:
> >   The per-transaction pools in the worker MPM can't be children of
> >   the listener thread's pool, because that pool may go out of scope
> >   while some workers are still procesing requests using the transaction
> >   pools.
> >
>
>
>




[HEAD] --with-mpm=worker under FreeBSD 4.5 does nothing?

2002-01-11 Thread Marc G. Fournier


Morning all ...

Just built a 'jail' environment under a 4.5 system so that I can
putz around with Apache2-HEAD, where I could "reformat" at will to clean
up any cruft ... build went great, using:

#!/bin/sh
./configure  \
--prefix=/usr/local/apache \
--with-perl=/usr/bin/perl \
--enable-so \
--with-suexec-caller=nobody \
--with-mpm=worker \
--enable-threads \
--with-port=80 \
--enable-mods-shared='all cgid ssl proxy proxy-connect proxy-ftp proxy-http 
cache mem-cache file-cache'

Install went as smooth ... but I can't connect ...

logs/error_log shows:

[Fri Jan 11 14:20:17 2002] [info] mod_unique_id: using ip addr 131.162.139.86
[Fri Jan 11 14:20:18 2002] [info] mod_unique_id: using ip addr 131.162.139.86
[Fri Jan 11 14:20:19 2002] [notice] Digest: generating secret for digest 
authentication ...
[Fri Jan 11 14:20:19 2002] [notice] Digest: done
[Fri Jan 11 14:20:19 2002] [warn] pid file /usr/local/apache/logs/httpd.pid 
overwritten -- Unclean shutdown of previous Apache run?
[Fri Jan 11 14:20:19 2002] [crit] (78)Function not implemented: Fatal error: could not 
open(create) scoreboard

And a ps listing shows no root process, only the one nobody
process:

jail# ps aux | grep http
nobody  83618  0.0  1.1  4224 2924  ??  IJ2:20PM   0:00.00 bin/httpd

Even if I comment out the 'ScoreBoard' line in httpd.conf, it
gives the 'Function not implemented' error ...

Known problem?  If not, suggestions on how to debug and provide
something just a wee bit more useful?  I'm not finding any core files
laying about, so nothing I can gdb ...

Oh, I haven't compiled anything into it other then the base source
code (ie. no php or mod_perl or anything ... just straight apache right
now) ... am going to try out a prefork version next ...






[PATCH] fix segfault in core input filter

2002-01-11 Thread Jeff Trawick

With current CVS code, prefork, APR_POOL_DEBUG, Linux, and
ElectricFence I readily hit a segfault on the APR_BRIGADE_NORMALIZE()
call in core input filter.  It segfaulted because the brigade was
empty.  With the following patch I can't seem to hit a segfault
anymore.

Perhaps the brigade shouldn't be empty for some reason...

If this is really the right issue, APR_BRIGADE_NORMALIZE() should
probably have the logic to check for an empty brigade.

Index: server/core.c
===
RCS file: /home/cvs/httpd-2.0/server/core.c,v
retrieving revision 1.128
diff -u -r1.128 core.c
--- server/core.c   8 Jan 2002 17:07:19 -   1.128
+++ server/core.c   11 Jan 2002 13:57:30 -
@@ -2879,7 +2879,9 @@
 }
 
 /* ### This is bad. */
-APR_BRIGADE_NORMALIZE(ctx->b);
+if (!APR_BRIGADE_EMPTY(ctx->b)) {
+APR_BRIGADE_NORMALIZE(ctx->b);
+}
 
 /* ### AP_MODE_PEEK is a horrific name for this mode because we also
  * eat any CRLFs that we see.  That's not the obvious intention of

-- 
Jeff Trawick | [EMAIL PROTECTED] | PGP public key at web site:
   http://www.geocities.com/SiliconValley/Park/9289/
 Born in Roswell... married an alien...



Re: cvs commit: httpd-2.0/server/mpm/worker worker.c

2002-01-11 Thread David Reid

This also fixes the shutdown issue with worker MPM on FreeBSD which is good
:)

david


> brianp  02/01/11 00:01:11
>
>   Modified:.CHANGES
>server/mpm/worker worker.c
>   Log:
>   Fix for a segfault in the worker MPM during graceful shutdown:
>   The per-transaction pools in the worker MPM can't be children of
>   the listener thread's pool, because that pool may go out of scope
>   while some workers are still procesing requests using the transaction
>   pools.
>





Re: mod_include???

2002-01-11 Thread David Reid

OK, all seems to have returned to normality, though I have absolutely no
idea how/why...

david
- Original Message -
From: "David Reid" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, January 11, 2002 12:40 PM
Subject: Re: mod_include???


> FWIW, I've just done an update and build on beos and have the same
problem,
> this time with mod_access.  Either I've got something screwy in my build
> tree's or Houston, we have a problem.
>
> david
>
> - Original Message -
> From: "David Reid" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Friday, January 11, 2002 10:53 AM
> Subject: Re: mod_include???
>
>
> > Following Will's advise to do a make clean;make failed to correct the
> > problem.
> >
> > Here is what i did...
> >
> > cvs update -dP
> > ./buildconf
> > ./configure ...
> > make clean;make
> > rm -rf /usr/local/apache2/*
> > make install
> > cd /usr/local/apache2/bin
> > ./apachectl start
> >
> > And the result?
> >
> > httpd: module "mod_include.c" is not compatible with this version of
> Apache.
> > Please contact the vendor for the correct version.
> >
> > This has only been happenning since I last updated (3 days ago).
> >
> > david
> >
> > - Original Message -
> > From: "David Reid" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Friday, January 11, 2002 9:27 AM
> > Subject: mod_include???
> >
> >
> > > Just done a cvs update/buildconf/make/make install and I'm seeing an
> error
> > > message that mod_include.c is not compatible with this version of
> apache!
> > >
> > > Anyone any ideas?
> > >
> > > david
> > >
> > >
> >
> >
>
>




Re: pool problems with HEAD??

2002-01-11 Thread Jeff Trawick

Jeff Trawick <[EMAIL PROTECTED]> writes:

> . Current code (worker MPM on Linux, at least) will segfault like
>   crazy if you turn on APR_POOL_DEBUG and add "-lefence " to the
>   beginning of EXTRA_LIBS in config_vars.mk (I guess this is the
>   right way to use ElectricFence).

After sufficient sleep and/or caffiene, it occurred to me that I
should try a non-threaded build with efence and APR_POOL_DEBUG on this
Linux box.  Sure enough, plentiful segfaults, but more importantly
usable coredumps...

I just fixed one of the causes of segfaults (bad parm in mod_rewrite)
(another misstep on my part though...  in the hurry to try to find
the problem in different environments I neglected to modernize this
config file...  but at least we got a fix out of it :) ).

I'm still getting this segfault:

#0  0x80ceb33 in core_input_filter (f=0x40af7fec, b=0x40c13ff4,
 mode=AP_MODE_BLOCKING,
readbytes=0xb9c8) at core.c:2882
2882APR_BRIGADE_NORMALIZE(ctx->b);
(gdb) where
#0  0x80ceb33 in core_input_filter (f=0x40af7fec, b=0x40c13ff4,
 mode=AP_MODE_BLOCKING,
readbytes=0xb9c8) at core.c:2882
#1  0x80c56d9 in ap_get_brigade (next=0x40af7fec, bb=0x40c13ff4,
 mode=AP_MODE_BLOCKING,
readbytes=0xb9c8) at util_filter.c:362
#2  0x80cea2b in net_time_filter (f=0x40c2dfec, b=0x40c13ff4,
 mode=AP_MODE_BLOCKING,
readbytes=0xb9c8) at core.c:2844
#3  0x80c56d9 in ap_get_brigade (next=0x40c2dfec, bb=0x40c13ff4,
 mode=AP_MODE_BLOCKING,
readbytes=0xb9c8) at util_filter.c:362
#4  0x80c6c38 in ap_rgetline (s=0x40b1fe9c, n=8192, r=0x40b1fe84,
 fold=0) at protocol.c:225
#5  0x80c7227 in read_request_line (r=0x40b1fe84) at protocol.c:429
#6  0x80c789b in ap_read_request (conn=0x40aabfb8) at protocol.c:608
#7  0x807a2f9 in ap_process_http_connection (c=0x40aabfb8) at
 http_core.c:273
#8  0x80c2f1d in ap_run_process_connection (c=0x40aabfb8) at
 connection.c:84
#9  0x80c335d in ap_process_connection (c=0x40aabfb8) at
 connection.c:230
#10 0x80b49e0 in child_main (child_num_arg=28) at prefork.c:716
#11 0x80b4b79 in make_child (s=0x41af9f9c, slot=28) at prefork.c:806
#12 0x80b4e74 in perform_idle_server_maintenance (p=0x4021afd8) at
 prefork.c:947
#13 0x80b52be in ap_mpm_run (_pconf=0x4021afd8, plog=0x40797fd8,
 s=0x41af9f9c)
at prefork.c:1118
#14 0x80bbd8e in main (argc=1, argv=0xbca4) at main.c:461
(gdb) p ctx
$1 = (core_ctx_t *) 0x40c43ffc
(gdb) p *ctx
$2 = {b = 0x40c49ff4}
(gdb)

This is fairly close to one of the segfaults I was trying to find
yesterday when I ended up going down other paths due to other bugs in
the server and due to missteps of my own.

That segfault has a similar traceback to the one shown above except
that it dies on this apr_bucket_read():

/* we are reading a single LF line, e.g. the HTTP headers */
while (!APR_BRIGADE_EMPTY(ctx->b)) {
const char *pos;

e = APR_BRIGADE_FIRST(ctx->b);
rv = apr_bucket_read(e, &str, &len, mode);

/* We should treat EAGAIN here the same as we do for EOF
(brigade is

have coredump, will debug... 
-- 
Jeff Trawick | [EMAIL PROTECTED] | PGP public key at web site:
   http://www.geocities.com/SiliconValley/Park/9289/
 Born in Roswell... married an alien...



Re: mod_include???

2002-01-11 Thread David Reid

FWIW, I've just done an update and build on beos and have the same problem,
this time with mod_access.  Either I've got something screwy in my build
tree's or Houston, we have a problem.

david

- Original Message -
From: "David Reid" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, January 11, 2002 10:53 AM
Subject: Re: mod_include???


> Following Will's advise to do a make clean;make failed to correct the
> problem.
>
> Here is what i did...
>
> cvs update -dP
> ./buildconf
> ./configure ...
> make clean;make
> rm -rf /usr/local/apache2/*
> make install
> cd /usr/local/apache2/bin
> ./apachectl start
>
> And the result?
>
> httpd: module "mod_include.c" is not compatible with this version of
Apache.
> Please contact the vendor for the correct version.
>
> This has only been happenning since I last updated (3 days ago).
>
> david
>
> - Original Message -
> From: "David Reid" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Friday, January 11, 2002 9:27 AM
> Subject: mod_include???
>
>
> > Just done a cvs update/buildconf/make/make install and I'm seeing an
error
> > message that mod_include.c is not compatible with this version of
apache!
> >
> > Anyone any ideas?
> >
> > david
> >
> >
>
>




Re: cvs commit: httpd-2.0 STATUS

2002-01-11 Thread Jeff Trawick

[EMAIL PROTECTED] writes:

> brianp  02/01/11 00:07:07
> 
>   Modified:.STATUS
>   Log:
>   Updated STATUS to cover the worker segfault fixes
>   

>   -* The worker MPM on Solaris segfaults when it runs out of file
>   -  descriptors.  (This may affect other MPMs and/or platforms.)

I can still readily hit this on current code (the same code that no
longer segfaults with graceful restart).

[Fri Jan 11 07:26:37 2002] [error] (24)Too many open files:
apr_accept: (client socket)
[Fri Jan 11 07:26:37 2002] [error] [client 127.0.0.1] (24)Too many
open files: file permissions deny server access: /exp
ort/home/trawick/apacheinst/htdocs/index.html.en
[Fri Jan 11 07:26:37 2002] [error] [client 127.0.0.1] (24)Too many
open files: cannot access type map file: /export/home
/trawick/apacheinst/error/HTTP_FORBIDDEN.html.var
[Fri Jan 11 07:26:38 2002] [notice] child pid 25493 exit signal
Segmentation fault (11), possible coredump in /export/ho
me/trawick/apacheinst

This is the same coredump I saw before:

#0  0xff33a3cc in apr_wait_for_io_or_timeout (sock=0x738360,
 for_read=1) at sendrecv.c:70
70  FD_SET(sock->socketdes, &fdset);

The socket has already been closed so trying to set bit -1 segfaults.

-- 
Jeff Trawick | [EMAIL PROTECTED] | PGP public key at web site:
   http://www.geocities.com/SiliconValley/Park/9289/
 Born in Roswell... married an alien...



Re: FreeBSD load statistics.

2002-01-11 Thread Justin Erenkrantz

On Fri, Jan 11, 2002 at 12:31:28AM -0800, Brian Pane wrote:
> The other way to isolate the problem would be to get a snapshot of
> what the kernel is doing on daedalus during these spikes.  Is there
> a way to do that in FreeBSD?

The only debugging tool I know of is ktrace.  But, that only shows
the syscalls made by the program, not what the kernel is doing
internally.  

This is why Solaris is so nice - pstack and /usr/proc/bin/* progs
can tell you what the kernel itself is doing.

Furthermore, the kernel debuggers are only available locally and 
stop the machine, so I don't think that's an option for daedalus 
since its in a NOC that none of us have access to.  

Anyone else have ideas or suggestions?  Brian (FirstBrian, that
is) or Manoj might have some ideas here.  -- justin




Re: cvs commit: httpd-2.0/server/mpm/worker worker.c

2002-01-11 Thread Jeff Trawick

[EMAIL PROTECTED] writes:

> brianp  02/01/11 00:01:11
> 
>   Modified:.CHANGES
>server/mpm/worker worker.c
>   Log:
>   Fix for a segfault in the worker MPM during graceful shutdown:
>   The per-transaction pools in the worker MPM can't be children of
>   the listener thread's pool, because that pool may go out of scope
>   while some workers are still procesing requests using the transaction
>   pools.

Thanks!  I can no longer hit the graceful restart segfault on either
AIX or Solaris.

-- 
Jeff Trawick | [EMAIL PROTECTED] | PGP public key at web site:
   http://www.geocities.com/SiliconValley/Park/9289/
 Born in Roswell... married an alien...



[ANNOUNCE] OpenPKG 1.0 (cross-platform RPM-based Unix software packaging)

2002-01-11 Thread Ralf S. Engelschall


Please excuse this slightly off-topic posting.

People have wondered what I've done over the last 14 months and why
further development on mod_ssl and my engagement in the OpenSSL
and Apache projects had to be slowed down in this time. Most of my
contributions were moved to the silent background. Some people even
feared that Ralf is doing closed source software development now. No,
the opposite is true. I'm still the same Open Source fanatic, believe
me. I just avoided to make something public until is is really ready
for the public. But since today the result of over one year of strong
development is now publically available and I'm proudly announcing it:
OpenPKG, the world of cross-platform RPM-based Unix software packaging.

OpenPKG is one of the largest projects I've ever done in my life. My
development team at Cable & Wireless Germany plus dozens of contributors
have helped together since November 2000 to solve a problem I already
tried to solve two times in the last 10 years. And the third solution
OpenPKG is the one which finally successfully solved it (at least for
me ;) We are using it in production since April 2001 to establish all
customer servers in the Internet Solution Center (ISC) of Cable &
Wireless Germany and certainly there will be some other groups in this
world which benefit from our work, too. That's why it is both based on
Open Source software and itself released again as Open Source.

If you want to know more, glance over the attached PR text and visit our
project site at http://www.openpkg.org/. Thanks for listening and...
happy packaging! Oh, and we have also packaged OpenSSL and Apache+modssl
in OpenPKG, of course ;)

Yours,
   Ralf S. Engelschall
   [EMAIL PROTECTED]
   www.engelschall.com
 
=
Now available:
OpenPKG 1.0
www.openpkg.org

A flexible and powerful software packaging facility, OpenPKG eases
installation and administration of Unix software across several
platforms. It primarily targets the Unix platforms FreeBSD, Linux
and Solaris, but is portable across mostly all modern Unix flavors.
Consolidating different vendor approaches into a unified architecture,
it assists in administration of large networks previously complicated by
nonconformant systems.

OpenPKG leverages proven technologies like Red Hat Package Manager (RPM)
and neatly provides an additional system layer on top of the operating
system. It is a fully self-contained with minimal external dependencies
(no RPM pre-installation required), and installs itself by means of a
tricky bootstrapping procedure with minimal operating system intrusion.
OpenPKG especially supports multiple installation instances on the same
system.

OpenPKG was created in November 2000 and after over one year of
development it is already a mature technology in production use. It
is available as Open Source and is further maintained by both Ralf S.
Engelschall's development team at Cable & Wireless Germany and their
contributors.

For more details visit:
http://www.openpkg.org/
 ftp://ftp.openpkg.org/
=




Re: mod_include???

2002-01-11 Thread David Reid

Following Will's advise to do a make clean;make failed to correct the
problem.

Here is what i did...

cvs update -dP
./buildconf
./configure ...
make clean;make
rm -rf /usr/local/apache2/*
make install
cd /usr/local/apache2/bin
./apachectl start

And the result?

httpd: module "mod_include.c" is not compatible with this version of Apache.
Please contact the vendor for the correct version.

This has only been happenning since I last updated (3 days ago).

david

- Original Message -
From: "David Reid" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, January 11, 2002 9:27 AM
Subject: mod_include???


> Just done a cvs update/buildconf/make/make install and I'm seeing an error
> message that mod_include.c is not compatible with this version of apache!
>
> Anyone any ideas?
>
> david
>
>




Re: mod_include???

2002-01-11 Thread William A. Rowe, Jr.

Bumped the MMN for big scoreboard changes.  Score no longer contains that 
global, server, worker pointers bit, that's all private now.  The scoreboard
global member became a pointer into the beginning of the scoreboard, and
scores are now relocation-safe.

Bill

- Original Message - 
From: "David Reid" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, January 11, 2002 3:27 AM
Subject: mod_include???


> Just done a cvs update/buildconf/make/make install and I'm seeing an error
> message that mod_include.c is not compatible with this version of apache!
> 
> Anyone any ideas?
> 
> david
> 
> 




Re: [PATCH] 1.3: further Cygwin platform support

2002-01-11 Thread Martin Kraemer

On Fri, Jan 11, 2002 at 10:37:12AM +0100, Stipe Tolj wrote:
> Hi Martin,
> 
> > 
> > Testing for [ ! -f "$src." ] is not the same thing
> > as testing for [ ! -f "$src" ].
> 
> I know! -- somehow I have to trick the beast on Cygwin to get a clean
> make install to copy the whole executables.
> 
> Should I add a uname case switch here to be on the same side?!
> Or maybe a checking of env var $OSTYPE?!

Yes, either would be ok with me. OSTYPE is probably cheaper ;-)

> Wie wär's mit einem Treffen auf der CeBIT? Schätze werden einige von
> uns da sein?!

Sorry, I think no :-(

  Martin
-- 
<[EMAIL PROTECTED]> | Fujitsu Siemens
Fon: +49-89-636-46021, FAX: +49-89-636-47655 | 81730  Munich,  Germany



Re: [PATCH] 1.3: further Cygwin platform support

2002-01-11 Thread Stipe Tolj

Hi Martin,

> Sorry to be picky here (Slowly, you're beginning to convince
> me that the extra test for "! -f $src" is not worth the trouble
> of fighting against cygwin's stupidity)...
> 
> Testing for [ ! -f "$src." ] is not the same thing
> as testing for [ ! -f "$src" ].

I know! -- somehow I have to trick the beast on Cygwin to get a clean
make install to copy the whole executables.

Should I add a uname case switch here to be on the same side?!
Or maybe a checking of env var $OSTYPE?!

Have you any other proposal for getting this *done*?

> And it is the latter which I was worried about:
> what happens if -on a unix platform- I happen
> to have a $src.exe in my directory? Yes, Apache will assume
> that my platform uses the .exe extension. And it will break.

That's true -- but, there is no Unix platform (at least currently)
that *build* httpd.exe  (or any other .exe extension executable), is
there?!

> But if it breaks on Cygwin, I am much less worried that when
> it breaks on unix, to be honest. So IMHO, it is cygwin that
> should be fixed so that it will allow us to make such a test.

I agree and I'll try to propose a change to that. But the stupidity
was introduced to demands the Cygwin folks had, so I'm not that eager
that the change will be done on that side very easily.

Wie wär's mit einem Treffen auf der CeBIT? Schätze werden einige von
uns da sein?!


Stipe


[EMAIL PROTECTED]
---
Wapme Systems AG

Münsterstr. 248
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



mod_include???

2002-01-11 Thread David Reid

Just done a cvs update/buildconf/make/make install and I'm seeing an error
message that mod_include.c is not compatible with this version of apache!

Anyone any ideas?

david




Re: FreeBSD load statistics.

2002-01-11 Thread Brian Pane

Justin Erenkrantz wrote:

>FWIW, Aaron was telling me that he remembers seeing high run-queue
>lengths on machines with failing hard drives.  Can anyone reproduce
>this behavior (high run-queue with idle CPU) on any other machines?
>Perhaps we could perform some testing on icarus (which should be a
>daedalus clone).
>

The other way to isolate the problem would be to get a snapshot of
what the kernel is doing on daedalus during these spikes.  Is there
a way to do that in FreeBSD?

--Brian






Fw: Current CVS on Win32

2002-01-11 Thread William A. Rowe, Jr.

From: "Sebastian Bergmann" <[EMAIL PROTECTED]>
Sent: Friday, January 11, 2002 1:33 AM


> "William A. Rowe, Jr." wrote:
> > ScoreboardFile logs/apache.score should work fine.
> 
>   Yep, doesn't crash now.


Ok... consider this a bug, no default ScoreboardFile name.  One that
I don't have time to trace right now.  The errors lie in;

  apr_shm_{create|attach} cleanup - may not have a filename [anon].

  win32 scoreboard should _not_ use anon with no scoreboard name, it
  should revert to the old method if scoreboard name is null (use the
  NOT_SHARED bit that we do in -X).  At this moment Win32 doesn't 
  -need- to have a shared score, until we create multiple processes,
  or unless a module in the parent wants scoreboard data from the child.
  If such a module is installed [for the moment] they aught to configure
  the ScoreboardFile directive.

Simple patch for anyone looking for a mini-project.  I'll fix soon if
noone steps up, but those of you hacking WinNT might need to set your
ScoreboardFile directive, as a workaround for right now.

Second Win32 bugaboo at this moment;

  mod_rewrite's locks were messed up by the recent changes to the 
  apr_lock_t api (which we were deprecating in the first place, so
  I'm far from certain why it changed.)  It has to do with creating
  the rewrite logs mutex.  Either don't load mod_rewrite, or give
  the rewrite log mutex a name {dunno what that syntax is, offhand.}
  The solution is to find the brokenness in apr_lock_t, but if it goes
  away, why waste the time?

  Of course, to deprecate apr_lock_t, I see that we still need to add
  an apr_procthread_lock (LOCKALL), since Aaron informs me that on some
  Unicies, thread locks don't work cross-proc, and proc locks won't work
  cross-threads.  Geesh.

I refuse to look up the directive, because I refuse to fix the problem
on my machine till the bug is licked.  ITMT, I've run out of time chasing
that mutex destruction in ssl to hack any further; won't have alot of
Apache time on my hands till midweek next week, maybe even next weekend.

Bill




Re: cvs commit: httpd-2.0/server/mpm/worker worker.c

2002-01-11 Thread Brian Pane

[EMAIL PROTECTED] wrote:

>brianp  02/01/11 00:01:11
>
>  Modified:.CHANGES
>   server/mpm/worker worker.c
>  Log:
>  Fix for a segfault in the worker MPM during graceful shutdown:
>  The per-transaction pools in the worker MPM can't be children of
>  the listener thread's pool, because that pool may go out of scope
>  while some workers are still procesing requests using the transaction
>  pools.
>

This should fix both segfaults that Jeff reported on Solaris: the
graceful shutdown one, and the out-of-file-descriptors one.

--Brian