Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread Brian Pane

Tested successfully on Linux 2.6.13/x86_64 (Fedora Core 4) with
both worker and prefork MPMs.

I encountered lots of errors in perl-framework's t/TEST with prefork
on Darwin 8.2.0/PPC (OS X 10.4.2).  I don't yet know whether these
are due to httpd-2.0.55 problems or just problems with my Perl
installation.

Brian

On Oct 9, 2005, at 9:42 PM, William A. Rowe, Jr. wrote:

The httpd-2.0.55 candidate, including win32 source .zip and  
installers*,

is now available for testing at

  http://httpd.apache.org/dev/dist/

Please review this candidate, and when responding, indicate the  
precise

operating system that you have tested.

Thank you for your assistance!

Bill

* note that win32 binary installers were uploaded only at this  
hour, and
  it will take up to another two hours for the public server to  
resync.

  Thanks for your patience.





async write completion prototype

2005-10-10 Thread Brian Pane

With the batch of commits I did this weekend, the Event MPM in
the async-dev Subversion branch now does write completion
in a nonblocking manner.  Once an entire response has been
generated and passed to the output filter chain, the MPM's
poller/listener thread watches the connection for writability
events.  When the connection becomes writable, the poller
thread sends it to one of the worker threads, which writes
some more output.

At this point, the event-handling code is ready for testing and
review by other developers.

The main changes on the async-dev branch (compared
to the 2.3-dev trunk) are:

1. ap_core_output_filter: rewrite to do nonblocking writes
   whenever possible.

2. core, http module, and mod_logio: removed the generation
   of flush buckets where possible.

3. request cleanup and logging: the logger phase and
   subsequent destruction of the request's pool are now
   triggered by the destruction of an End-Of-Request
   bucket in the core output filter.

4. event MPM: asynchronous handling of CONN_STATE_WRITE_COMPLETION.

There are several more things that need to be fixed in order
to make the asynchronous write completion useful in a
production release of httpd-2.x:

- The main pollset in the Event MPM currently is sized to
  hold up to one socket descriptor per worker thread.  With
  asynchronous keepalives and write completion, the pollset
  should accommodate many descriptors per thread.

- The logic for starting more child processes, which Event
  inherited from Worker, is based on assumptions about
  the number of concurrent connections being equal to
  the number of threads.  These assumptions aren't valid
  for a multiple-connections-per-thread MPM.

- Similarly, there may be some changes needed in the
  flow control logic that the listener thread uses to decide
  whether it can do an accept.

- The scoreboard probably needs a redesign.

- It may be valuable to have a separate thread pool to
  run handlers that do arbitrarily lengthy processing, such
  as mod_perl and mod_php.

Brian


Re: async write completion prototype

2005-10-10 Thread Paul Querna

Brian Pane wrote:

With the batch of commits I did this weekend, the Event MPM in
the async-dev Subversion branch now does write completion
in a nonblocking manner.  Once an entire response has been
generated and passed to the output filter chain, the MPM's
poller/listener thread watches the connection for writability
events.  When the connection becomes writable, the poller
thread sends it to one of the worker threads, which writes
some more output.


If the content has already been generated, why add the overhead of the 
context switch/sending to another thread?  Can't the same event thread 
do a non-blocking write?


Once it finishes writing, then yes, we do require a context-switch to 
another thread to do logging/cleanup.


I am mostly thinking about downloading a 1 gig file with the current 
pattern against a slow client.  A non-blocking write might only do ~64k 
at a time, and causing 1 gig/64k context switches, which seems less than 
optimal.


...

- The main pollset in the Event MPM currently is sized to
  hold up to one socket descriptor per worker thread.  With
  asynchronous keepalives and write completion, the pollset
  should accommodate many descriptors per thread.


The pollset is auto-resizable.  That number is just the maximum number 
of events that will ever be returned by a single call to _poll().  This 
number if perfect for the number of threads, since we can never dispatch 
to more than the number of threads we have...



- The scoreboard probably needs a redesign.


Yes.. it is completely unhelpful with the maximum number of connections 
being  number of threads. I suspect going forward there will be many 
other areas where this assumption is broken by the event mpm.


-Paul



Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread Oden Eriksson
måndag 10 oktober 2005 06.42 skrev William A. Rowe, Jr.:
 The httpd-2.0.55 candidate, including win32 source .zip and installers*,
 is now available for testing at

http://httpd.apache.org/dev/dist/

 Please review this candidate, and when responding, indicate the precise
 operating system that you have tested.

There's no fix for CAN-2005-2088 in this one.

-- 
Regards // Oden Eriksson
Mandriva: http://www.mandriva.com
NUX: http://nux.se


Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread Oden Eriksson
måndag 10 oktober 2005 09.54 skrev Oden Eriksson:
 måndag 10 oktober 2005 06.42 skrev William A. Rowe, Jr.:
  The httpd-2.0.55 candidate, including win32 source .zip and installers*,
  is now available for testing at
 
 http://httpd.apache.org/dev/dist/
 
  Please review this candidate, and when responding, indicate the precise
  operating system that you have tested.

 There's no fix for CAN-2005-2088 in this one.

Duh! Too early in the morning...

-- 
Regards // Oden Eriksson
Mandriva: http://www.mandriva.com
NUX: http://nux.se


Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread Graham Leggett
Brian Pane said:

 I encountered lots of errors in perl-framework's t/TEST with prefork
 on Darwin 8.2.0/PPC (OS X 10.4.2).  I don't yet know whether these
 are due to httpd-2.0.55 problems or just problems with my Perl
 installation.

I ran the build/binbuild.sh script, and httpd built clean on my Darwin 8.2.0.

I didn't see any tests being run though, is the test suite fired off from
the binbuild script?

Regards,
Graham
--



Re: svn commit: r220307 - in /httpd/httpd/trunk/modules: metadata/mod_setenvif.c ssl/mod_ssl.c ssl/mod_ssl.h ssl/ssl_expr_eval.c

2005-10-10 Thread Ben Laurie

David Reid wrote:

Joe Orton wrote:


On Fri, Aug 05, 2005 at 08:00:01PM +0200, Martin Kraemer wrote:



On Tue, Aug 02, 2005 at 07:14:10PM +0200, Martin Kraemer wrote:



I wanted something like

SSLRequire committers in SSLPeerExtList(1.3.6.1.4.1.18060.1);

to mean at least one extension with an OID of
1.3.6.1.4.1.18060.1 with a value of 'committers' exists in the
client cert.


I'll be on vacation next week, and will send in another patch after
that.



OK, hope you had a good holiday.  I wasn't trying to argue about the 
semantics just to nitpick the naming.  Having SSL in the SSLRequire 
function is redundant, but not in the context of mod_setenvif.  So, my 
preference is:


   SSLRequire committers in PeerExtList(1.3.6.1.4.1.18060.1);

   SetEnvIf SSL_PeerExtList(etc) ...



+1 on the revised naming.

Patch looks OK as well.


Late to the party here, but giving the same function two different names 
sucks! Or am I misunderstanding?


Cheers,

Ben.

--
http://www.apache-ssl.org/ben.html   http://www.thebunker.net/

There is no limit to what a man can do or how far he can go if he
doesn't mind who gets the credit. - Robert Woodruff


Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread Oden Eriksson
måndag 10 oktober 2005 06.42 skrev William A. Rowe, Jr.:
 The httpd-2.0.55 candidate, including win32 source .zip and installers*,
 is now available for testing at

http://httpd.apache.org/dev/dist/

 Please review this candidate, and when responding, indicate the precise
 operating system that you have tested.

 Thank you for your assistance!

 Bill

 * note that win32 binary installers were uploaded only at this hour, and
it will take up to another two hours for the public server to resync.
Thanks for your patience.


I saw this:

Cannot load /etc/httpd/modules/mod_cgi.so into 
server: /etc/httpd/modules/mod_cgi.so: undefined symbol: 
apr_procattr_addrspace_set

And some investigations told me it requires apr 0.9.7, maybe the autotools 
stuff should check for this or be documented?


-- 
Regards // Oden Eriksson
Mandriva: http://www.mandriva.com
NUX: http://nux.se


Re: AP_INIT_* macros in httpd-2.1

2005-10-10 Thread Joe Orton
On Sat, Oct 08, 2005 at 08:52:23PM +0100, Nick Kew wrote:
 I've just stumbled on something perplexing.  Compiling mod_validator[1],
 a large C++ module, for 2.1, I found each entry in the command_rec
 generating a syntax error.  They are fine with 2.0.x.

AP_HAVE_DESIGNATED_INITIALIZER is defined in ap_config.h in 2.1.x rather 
than in CPPFLAGS per 2.0.x, but I guess this is a reason why not to do 
that.  Alternatively I guess ap_config.h could do

#ifdef __cplusplus
#undef AP_HAVE_DESIGNATED_INITIALIZER
#endif

if this is simply not kosher C++ syntax.

joe


MMN and branches (was Re: svn commit: r307031)

2005-10-10 Thread Joe Orton
On Sat, Oct 08, 2005 at 04:51:51PM -0500, William Rowe wrote:
 Joe Orton wrote:
 I'd suggest just incrementing the MMN by one rather than bumping it by 
 date on the branch unless and until the API is the same as the trunk.
 
 I previously considered that.  Although you are right; they are out of 
 sync, I think it's inevitable with two branches following different
 history, no?

It's not inevitable but it is the status quo ;)

 This is why the MODULE_MAGIC_COOKIE is now AP24 on svn head, because the
 two branches can't remain binary compatible, at least not except for
 some very short periods of time.

 Perhaps you are right, perhaps it's time to drop date stamps as the 
 MODULE_MAGIC_NUMBER_MAJOR signature?

Maintaining an MMN which is intended to reflect every single ABI change 
and multiple branches with independent ABIs is going to be a tricky 
problem.

Alternatives I can see:

a) partition the MMN major by MODULE_MAGIC_COOKIE, so modules
must test an (MODULE_MAGIC_COOKIE, MODULE_MAGIC_NUMBER_MAJOR) pair to 
target a particular API

 - results are then reliable across history and across branches
 - icky

b) stop bumping the MMN by date on branches, just increment by one and 
hope that enough gap is left

 - results are then reliable across branches but not across history

c) don't backport ABI changes to branches; a branch much fork from a 
specific MODULE_MAGIC_NUMBER_MAJOR and must be rebased entirely to move 
to a new major

 - avoids the problem entirely

d) drop the requirement that the MMN must reflect every single ABI 
change and make some more fundamental change

joe


Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread Brian Pane

On Oct 10, 2005, at 2:22 AM, Graham Leggett wrote:


Brian Pane said:



I encountered lots of errors in perl-framework's t/TEST with prefork
on Darwin 8.2.0/PPC (OS X 10.4.2).  I don't yet know whether these
are due to httpd-2.0.55 problems or just problems with my Perl
installation.



I ran the build/binbuild.sh script, and httpd built clean on my  
Darwin 8.2.0.


I didn't see any tests being run though, is the test suite fired  
off from

the binbuild script?


The test suite has to be downloaded and run separately.  Basically,
- do a make install of the httpd
- checkout asf/repos/httpd/test/trunk from SVN
- cd to the perl-framework subdirectory
- perl Makefile.pl -apxs /path/to/the/httpd/installation/bin/apxs
- ./t/TEST

Brian



Re: MMN and branches (was Re: svn commit: r307031)

2005-10-10 Thread William A. Rowe, Jr.

Joe Orton wrote:


c) don't backport ABI changes to branches; a branch much fork from a 
specific MODULE_MAGIC_NUMBER_MAJOR and must be rebased entirely to move 
to a new major


 - avoids the problem entirely


It's always this way on even branches, but we are talking about odd #'ed
branches, here.

d) drop the requirement that the MMN must reflect every single ABI 
change and make some more fundamental change


I've always considered the possibility that we only bump MMN major, by
date, exactly once when we roll rev x.y.n shrug.

Better idea; let's refactor the whole MMN magic in httpd 3.0?

(It's already looking, from the scope of the experimental asynch branch,
that it's likely to become 3.0.)

Bill


Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread William A. Rowe, Jr.

Oden Eriksson wrote:


And some investigations told me it requires apr 0.9.7, maybe the autotools 
stuff should check for this or be documented?


Yup - apr 0.9.7 is part of the bundle.  We can spell this out in the
announce, certainly, and on the downloads page README - would that
suffice?



Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread William A. Rowe, Jr.

Brian Pane wrote:


I encountered lots of errors in perl-framework's t/TEST with prefork
on Darwin 8.2.0/PPC (OS X 10.4.2).  I don't yet know whether these
are due to httpd-2.0.55 problems or just problems with my Perl
installation.


Hmmm... review this bug (not fixed in 0.9.7, afaict);

http://issues.apache.org/bugzilla/show_bug.cgi?id=34332

Bill


Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread Oden Eriksson
måndag 10 oktober 2005 16.27 skrev William A. Rowe, Jr.:
 Oden Eriksson wrote:
  And some investigations told me it requires apr 0.9.7, maybe the
  autotools stuff should check for this or be documented?

 Yup - apr 0.9.7 is part of the bundle.  We can spell this out in the
 announce, certainly, and on the downloads page README - would that
 suffice?

Yep. Thanks.

-- 
Regards // Oden Eriksson
Mandriva: http://www.mandriva.com
NUX: http://nux.se


Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread Brian Akins

William A. Rowe, Jr. wrote:



Yup - apr 0.9.7 is part of the bundle.  We can spell this out in the
announce, certainly, and on the downloads page README - would that
suffice?



How horrible would it be to have the apr_reslist_invalidate patch 
applied to the bundled apr?


ducks and runs /

--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies


Re: async write completion prototype

2005-10-10 Thread Phillip Susi
Nicely done.  Have you done any benchmarking to see if this improved 
performance as one would expect?  Would it be much more work to use true 
async IO instead of non blocking IO and polling?  What about doing the 
same for reads, as well as writes?


Brian Pane wrote:

With the batch of commits I did this weekend, the Event MPM in
the async-dev Subversion branch now does write completion
in a nonblocking manner.  Once an entire response has been
generated and passed to the output filter chain, the MPM's
poller/listener thread watches the connection for writability
events.  When the connection becomes writable, the poller
thread sends it to one of the worker threads, which writes
some more output.

At this point, the event-handling code is ready for testing and
review by other developers.

The main changes on the async-dev branch (compared
to the 2.3-dev trunk) are:

1. ap_core_output_filter: rewrite to do nonblocking writes
   whenever possible.

2. core, http module, and mod_logio: removed the generation
   of flush buckets where possible.

3. request cleanup and logging: the logger phase and
   subsequent destruction of the request's pool are now
   triggered by the destruction of an End-Of-Request
   bucket in the core output filter.

4. event MPM: asynchronous handling of CONN_STATE_WRITE_COMPLETION.

There are several more things that need to be fixed in order
to make the asynchronous write completion useful in a
production release of httpd-2.x:

- The main pollset in the Event MPM currently is sized to
  hold up to one socket descriptor per worker thread.  With
  asynchronous keepalives and write completion, the pollset
  should accommodate many descriptors per thread.

- The logic for starting more child processes, which Event
  inherited from Worker, is based on assumptions about
  the number of concurrent connections being equal to
  the number of threads.  These assumptions aren't valid
  for a multiple-connections-per-thread MPM.

- Similarly, there may be some changes needed in the
  flow control logic that the listener thread uses to decide
  whether it can do an accept.

- The scoreboard probably needs a redesign.

- It may be valuable to have a separate thread pool to
  run handlers that do arbitrarily lengthy processing, such
  as mod_perl and mod_php.

Brian





Re: [PATCH] Bug 36816: balancer_manager doesn't work if worker name contains port

2005-10-10 Thread Jim Jagielski

I agree... For some reason in ap_proxy_get_worker() we specifically
skip over the path info, even though it is part of the stored name.
This also means that, afaik, we will miss finding valid workers
when needed.

A forthcoming patch will normalize this.


Re: async write completion prototype

2005-10-10 Thread Paul Querna

Phillip Susi wrote:
Nicely done.  Have you done any benchmarking to see if this improved 
performance as one would expect?  Would it be much more work to use true 
async IO instead of non blocking IO and polling?  What about doing the 
same for reads, as well as writes?




All current async_io methods require you to read the data off disk, ie 
there is no async_sendfile()


Reads are much harder in the current httpd.  There are several core 
functions that would need to be rewritten first.


-Paul


Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread Paul Querna

Brian Akins wrote:

William A. Rowe, Jr. wrote:



Yup - apr 0.9.7 is part of the bundle.  We can spell this out in the
announce, certainly, and on the downloads page README - would that
suffice?



How horrible would it be to have the apr_reslist_invalidate patch 
applied to the bundled apr?


Huh? It is already in 0.9.7 :)  I committed it to the 0.9.x branch right 
after 0.9.6 was released.


-Paul


Notice of Intent: TR 1.3.34

2005-10-10 Thread Jim Jagielski

I will be TR'ing 1.3.34 On Tues or Weds


Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread Brian Akins

Paul Querna wrote:

Huh? It is already in 0.9.7 :)  I committed it to the 0.9.x branch right 
after 0.9.6 was released.


Thank you!  I guess I didn't check the CHANGELOG closely enough.

hangs head in shame /




--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies


Re: async write completion prototype

2005-10-10 Thread Phillip Susi
On what OS?  Linux?  NT supports async IO on sockets rather nicely, as 
does FreeBSD iirc.


Paul Querna wrote:

Phillip Susi wrote:

Nicely done.  Have you done any benchmarking to see if this improved 
performance as one would expect?  Would it be much more work to use 
true async IO instead of non blocking IO and polling?  What about 
doing the same for reads, as well as writes?




All current async_io methods require you to read the data off disk, ie 
there is no async_sendfile()


Reads are much harder in the current httpd.  There are several core 
functions that would need to be rewritten first.


-Paul





Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread Oden Eriksson
måndag 10 oktober 2005 16.56 skrev Brian Akins:
 Paul Querna wrote:
  Huh? It is already in 0.9.7 :)  I committed it to the 0.9.x branch right
  after 0.9.6 was released.

 Thank you!  I guess I didn't check the CHANGELOG closely enough.

i think it's not there :)

-- 
Regards // Oden Eriksson
Mandriva: http://www.mandriva.com
NUX: http://nux.se


Re: async write completion prototype

2005-10-10 Thread Paul Querna

Phillip Susi wrote:
On what OS?  Linux?  NT supports async IO on sockets rather nicely, as 
does FreeBSD iirc.


The event MPM doesn't run on NT at all, only Unixes.

Yes, FreeBSD (and linux) support async_write().. But this requires that 
you read the file off of disk, and into a buffer, and then copy it back 
into the kernel.  With a non-blocking sendfile, we can avoid all the 
data copying (aka 'zero copy'), and let the kernel do everything itself.


There is currently no such thing as 'async sendfile', which would be the 
perfect solution for this use case.  There have been various people 
mentioning it as an idea, but no one has gone out and done it.



-Paul


Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread William A. Rowe, Jr.

Brian Akins wrote:

William A. Rowe, Jr. wrote:


Yup - apr 0.9.7 is part of the bundle.  We can spell this out in the
announce, certainly, and on the downloads page README - would that
suffice?



How horrible would it be to have the apr_reslist_invalidate patch 
applied to the bundled apr?


I'm wondering if we all woke up this morning on different planets :)

$ cd httpd-2.0.55
$ grep -r apr_reslist_invalidate *
srclib/apr-util/include/apr_reslist.h:APU_DECLARE(apr_status_t) 
apr_reslist_invalidate(apr_reslist_t *reslist,
srclib/apr-util/misc/apr_reslist.c:APU_DECLARE(apr_status_t) 
apr_reslist_invalidate(apr_reslist_t *reslist,
srclib/apr-util/CHANGES:  *) Backport the apr_reslist_timeout_set and 
apr_reslist_invalidate


Which patch are you thinking about?  The next window of opportunity is
apr-0.9.8, which if it's substantial, probably will have its day before
2.0.56.

With several other apr-based projects, including arbitrary patches in
the release tarball is a non-starter.  If you have additional patches
for some specific cases, we can consider adding them in dist/httpd/
to patches/apply_to_2.0.55/.

Bill


Re: async write completion prototype

2005-10-10 Thread Phillip Susi
On NT you can set the kernel buffer size on the socket to 0 ( with 
setockopt() or ioctlsocket()? ), and the NIC can DMA directly from the 
user buffers to send rather than copy to kernel space.  This of course, 
requires that you keep more than one pending async operation so the nic 
allways has a buffer availible so it can keep the line saturated.  If 
you memory map the source file from the disk, then zero copy IO can be 
done entirely from user space.  Is this optimization not availible on 
linux or freebsd?


As an alternative, you can bypass the cache and do direct async IO to 
the disk with zero copies.  IIRC, this is supported on linux with the 
O_DIRECT flag.  Doing this though, means that you will need to handle 
caching yourself, which might not be such a good idea.  Does Linux not 
support O_DIRECT on sockets?


By using this technique I have been able to achieve TransmitFile() 
performance levels entirely from user space, without any of the 
drawbacks of TransmitFile().  Specifically virtually zero cpu time is 
needed to saturate multiple 100 MBps links, pushing 11,820 KB/s, 
progress is known the entire time and can be canceled at any time, and a 
small handfull of threads can service thousonds of clients.


Paul Querna wrote:

Phillip Susi wrote:

On what OS?  Linux?  NT supports async IO on sockets rather nicely, as 
does FreeBSD iirc.



The event MPM doesn't run on NT at all, only Unixes.

Yes, FreeBSD (and linux) support async_write().. But this requires that 
you read the file off of disk, and into a buffer, and then copy it back 
into the kernel.  With a non-blocking sendfile, we can avoid all the 
data copying (aka 'zero copy'), and let the kernel do everything itself.


There is currently no such thing as 'async sendfile', which would be the 
perfect solution for this use case.  There have been various people 
mentioning it as an idea, but no one has gone out and done it.



-Paul





Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread William A. Rowe, Jr.

Oden Eriksson wrote:


i think it's not there :)


Oden, just looked again, would you check your package signature?

b45f16a9878e709497820565d42b00b9  httpd-2.0.55.tar.gz

and ensure that you are building against the included srclib/apr/ and
not against some system installed 0.9.6 version?

Bill


Re: async write completion prototype

2005-10-10 Thread Brian Akins

Phillip Susi wrote:

As an alternative, you can bypass the cache and do direct async IO to 
the disk with zero copies.  IIRC, this is supported on linux with the 
O_DIRECT flag.  Doing this though, means that you will need to handle 
caching yourself, which might not be such a good idea.  Does Linux not 
support O_DIRECT on sockets?


Can you not just set the socket to non-blocking using O_NONBLOCK?

--
Brian Akins
Lead Systems Engineer
CNN Internet Technologies


Re: [PATCH] Bug 36816: balancer_manager doesn't work if worker name contains port

2005-10-10 Thread Jim Jagielski

For consideration:

Index: modules/proxy/mod_proxy_balancer.c
===
--- modules/proxy/mod_proxy_balancer.c(revision 312628)
+++ modules/proxy/mod_proxy_balancer.c(working copy)
@@ -477,8 +477,12 @@
 *val++ = '\0';
 if ((tok = ap_strchr(val, '')))
 *tok++ = '\0';
+/*
+ * Special case: workers are allowed path information
+ */
 if ((access_status = ap_unescape_url(val)) != OK)
-return access_status;
+if (strcmp(args, w) || (access_status !=  
HTTP_NOT_FOUND))

+return access_status;
 apr_table_setn(params, args, val);
 args = tok;
 }
@@ -490,13 +494,9 @@
 bsel = ap_proxy_get_balancer(r-pool, conf,
 apr_pstrcat(r-pool, balancer://, name, NULL));
 if ((name = apr_table_get(params, w))) {
-const char *sc = apr_table_get(params, s);
-char *asname = NULL;
-proxy_worker *ws = NULL;
-if (sc) {
-asname = apr_pstrcat(r-pool, sc, ://, name, NULL);
-ws = ap_proxy_get_worker(r-pool, conf, asname);
-}
+proxy_worker *ws;
+
+ws = ap_proxy_get_worker(r-pool, conf, name);
 if (ws) {
 worker = (proxy_worker *)bsel-workers-elts;
 for (n = 0; n  bsel-workers-nelts; n++) {
@@ -634,10 +634,10 @@
 ap_rvputs(r, tr\ntd, worker-scheme, / 
tdtd, NULL);

 ap_rvputs(r, a href=\, r-uri, ?b=,
-  balancer-name + sizeof(balancer://) - 1,
-  s=, worker-scheme, w=, worker- 
hostname,
+  balancer-name + sizeof(balancer://) -  
1, w=,

+  ap_escape_uri(r-pool, worker-name),
   \, NULL);
-ap_rvputs(r, worker-hostname, /a/td, NULL);
+ap_rvputs(r, worker-name, /a/td, NULL);
 ap_rvputs(r, td, worker-s-route, NULL);
 ap_rvputs(r, /tdtd, worker-s-redirect, NULL);
 ap_rprintf(r, /tdtd%d/tdtd, worker-s- 
lbfactor);

@@ -678,10 +678,8 @@
 ap_rputs( checked, r);
 ap_rputs(/tdtr\n, r);
 ap_rputs(trtd colspan=2input type=submit value= 
\Submit\/td/tr\n, r);
-ap_rvputs(r, /table\ninput type=hidden name=\s\ ,  
NULL);

-ap_rvputs(r, value=\, wsel-scheme, \\n, NULL);
-ap_rvputs(r, input type=hidden name=\w\ , NULL);
-ap_rvputs(r, value=\, wsel-hostname, \\n, NULL);
+ap_rvputs(r, /table\ninput type=hidden name=\w\ ,  
NULL);
+ap_rvputs(r, value=\, ap_escape_uri(r-pool, wsel- 
name), \\n, NULL);

 ap_rvputs(r, input type=hidden name=\b\ , NULL);
 ap_rvputs(r, value=\, bsel-name + sizeof 
(balancer://) - 1,

   \\n/form\n, NULL);
Index: modules/proxy/proxy_util.c
===
--- modules/proxy/proxy_util.c(revision 312628)
+++ modules/proxy/proxy_util.c(working copy)
@@ -1218,9 +1218,6 @@
 c = strchr(uri, ':');
 if (c == NULL || c[1] != '/' || c[2] != '/' || c[3] == '\0')
return NULL;
-/* remove path from uri */
-if ((c = strchr(c + 3, '/')))
-*c = '\0';
 worker = (proxy_worker *)conf-workers-elts;
 for (i = 0; i  conf-workers-nelts; i++) {



Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread Oden Eriksson
måndag 10 oktober 2005 17.33 skrev William A. Rowe, Jr.:
 Oden Eriksson wrote:
  i think it's not there :)

 Oden, just looked again, would you check your package signature?

 b45f16a9878e709497820565d42b00b9  httpd-2.0.55.tar.gz

 and ensure that you are building against the included srclib/apr/ and
 not against some system installed 0.9.6 version?

Argh! I looked in the wrong place (wrong changelog). Sorry for the noise.

Anyway, 2.0.55 works for me on my Mandriva boxes.

-- 
Regards // Oden Eriksson
Mandriva: http://www.mandriva.com
NUX: http://nux.se


Re: async write completion prototype

2005-10-10 Thread Phillip Susi
Non blocking is not async IO.  It is not really possible to perform zero 
copy IO with non blocking IO semantics, you must have full async IO to 
issue multiple pending requests.


Brian Akins wrote:

Phillip Susi wrote:

As an alternative, you can bypass the cache and do direct async IO to 
the disk with zero copies.  IIRC, this is supported on linux with the 
O_DIRECT flag.  Doing this though, means that you will need to handle 
caching yourself, which might not be such a good idea.  Does Linux not 
support O_DIRECT on sockets?



Can you not just set the socket to non-blocking using O_NONBLOCK?





Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread Brad Nicholes
+1 NetWare

Brad

 On 10/9/2005 at 10:42:43 pm, in message
[EMAIL PROTECTED],
[EMAIL PROTECTED] wrote:
 The httpd-2.0.55 candidate, including win32 source .zip and
installers*,
 is now available for testing at
 
http://httpd.apache.org/dev/dist/ 
 
 Please review this candidate, and when responding, indicate the
precise
 operating system that you have tested.
 
 Thank you for your assistance!
 
 Bill
 
 * note that win32 binary installers were uploaded only at this hour,
and
it will take up to another two hours for the public server to
resync.
Thanks for your patience.


Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread Sander Temme


On Oct 9, 2005, at 9:42 PM, William A. Rowe, Jr. wrote:

The httpd-2.0.55 candidate, including win32 source .zip and  
installers*,


As of 17:59 CEST (15 minutes ago), 2.0.55 is running on  
www.apache.org. Please report any anomalies.


We're now also running a very current version of mod_mbox (tagged  
www.apache.org-20051010). No cores so far but I'll keep an eye on it.


S.

--
[EMAIL PROTECTED]  http://www.temme.net/sander/
PGP FP: 51B4 8727 466A 0BC3 69F4  B7B8 B2BE BC40 1529 24AF



smime.p7s
Description: S/MIME cryptographic signature


Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread Oden Eriksson
måndag 10 oktober 2005 17.28 skrev William A. Rowe, Jr.:
 Brian Akins wrote:
  William A. Rowe, Jr. wrote:
  Yup - apr 0.9.7 is part of the bundle.  We can spell this out in the
  announce, certainly, and on the downloads page README - would that
  suffice?
 
  How horrible would it be to have the apr_reslist_invalidate patch
  applied to the bundled apr?

 I'm wondering if we all woke up this morning on different planets :)

I must have :)

-- 
Regards // Oden Eriksson
Mandriva: http://www.mandriva.com
NUX: http://nux.se


Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread William A. Rowe, Jr.

Sander Temme wrote:


On Oct 9, 2005, at 9:42 PM, William A. Rowe, Jr. wrote:


The httpd-2.0.55 candidate, including win32 source .zip and  installers*,


As of 17:59 CEST (15 minutes ago), 2.0.55 is running on  www.apache.org. 
Please report any anomalies.


Ack, starting clock with 72 hours to GA, contingent upon an absence
of problem reports (specificially regressions).

We're now also running a very current version of mod_mbox (tagged  
www.apache.org-20051010). No cores so far but I'll keep an eye on it.


Nice!  Hope this licks the earlier chaos.

Bill


Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread The Doctor
On Mon, Oct 10, 2005 at 10:11:13AM -0600, Brad Nicholes wrote:
 +1 NetWare
 
 Brad



BSD/OS using Openssl 0.9.8 is spot on!
 
  On 10/9/2005 at 10:42:43 pm, in message
 [EMAIL PROTECTED],
 [EMAIL PROTECTED] wrote:
  The httpd-2.0.55 candidate, including win32 source .zip and
 installers*,
  is now available for testing at
  
 http://httpd.apache.org/dev/dist/ 
  
  Please review this candidate, and when responding, indicate the
 precise
  operating system that you have tested.
  
  Thank you for your assistance!
  
  Bill
  
  * note that win32 binary installers were uploaded only at this hour,
 and
 it will take up to another two hours for the public server to
 resync.
 Thanks for your patience.
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 -- 
 This message has been scanned for viruses and
 dangerous content by MailScanner, and is
 believed to be clean.
 

-- 
Member - Liberal International  
This is [EMAIL PROTECTED]   Ici [EMAIL PROTECTED]
God Queen and country! Beware Anti-Christ rising!
Better to serve in Heaven that to Rule in Hell.

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.



Re: svn commit: r312704 - in /httpd/httpd/dist: Announcement.html Announcement.txt

2005-10-10 Thread William A. Rowe, Jr.

[EMAIL PROTECTED] wrote:

Author: jim
Date: Mon Oct 10 11:05:52 2005
New Revision: 312704

URL: http://svn.apache.org/viewcvs?rev=312704view=rev
Log:
Reverse preload - prevent site update


Jim, nothing is cron'ned up to the website, and this is strictly the
/dist/httpd/ location.  I think we are safe here letting the translators
attack these documents and organize them.

The only two folks I expect would push the website up to trunk are you,
or me, in the next few days.  We can just sync.  I'm actually hoping
that we blast the announcements in sync, so that 2.0 users aren't
compelled to downgrade to 1.3 this time around :)

Bill



Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread Luc Pardon
 Oden Eriksson wrote:
  
  And some investigations told me it requires apr 0.9.7, maybe the autotools 
  stuff should check for this or be documented?
 
 Yup - apr 0.9.7 is part of the bundle.  We can spell this out in the
 announce, certainly, and on the downloads page README - would that
 suffice?
 

  There seems to be a bug in the httpd.spec file.

  It says: 

Requires: apr = 0.9.5, apr-util 0.9.5

  and the devel packages (on the httpd package specs) have no version
number:

BuildPrereq: apr-devel, apr-util-devel
  
  Also, the changelog section in the spec file does not show the upping
to 2.0.55. The last documented chenge is for 2.0.53. And it says:
changed build to use external apr and apr-util.

  This confuses me, since apr seems to be present in the 2.0.53 and
2.0.55 tarballs ... 

  Sure enough, 2.0.55 compiles just fine using my old spec file (derived
from an old RedHat httpd 2.0.44 spec file). The resulting httpd rpm
package does contain libapr and libaprutil 0.9.7.

  However, with the spec file from the tarball (with the apr
BuildPrereq's commented out to get it to confgure/make), I get compile
errors.

  I plead guilty to not having followed the apr-related threads, but I'd
expect the RPM spec file to keep me out of trouble with any deps. IMHO,
it should rpmbuild right out of the box.

  If somebody can get me updated on the status of apr (version, bundled
or not) and on what the spec file is trying to accomplish (e.g. separate
apr packages), I'd probably be able to fix it myself.

   Luc Pardon
   Skopos Consulting
   Belgium


Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread William A. Rowe, Jr.

William A. Rowe, Jr. wrote:

The httpd-2.0.55 candidate, including win32 source .zip and installers*,
is now available for testing at

  http://httpd.apache.org/dev/dist/


My appologies; I should have provided this with the announcement to
testers@ and dev@, to avoid confusion;

  http://httpd.apache.org/dev/dist/CHANGES_2.0.55

includes the summary of the APR libraries as well as HTTP Server,
since 2.0.54 (apr 0.9.6).

Bill


Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread William A. Rowe, Jr.

Luc Pardon wrote:

Oden Eriksson wrote:

And some investigations told me it requires apr 0.9.7, maybe the autotools 
stuff should check for this or be documented?


Yup - apr 0.9.7 is part of the bundle.  We can spell this out in the
announce, certainly, and on the downloads page README - would that
suffice?


  There seems to be a bug in the httpd.spec file.

  It says: 
Requires: apr = 0.9.5, apr-util 0.9.5

  and the devel packages (on the httpd package specs) have no version
number:
BuildPrereq: apr-devel, apr-util-devel
  
  Also, the changelog section in the spec file does not show the upping

to 2.0.55. The last documented chenge is for 2.0.53. And it says:
changed build to use external apr and apr-util.

  This confuses me, since apr seems to be present in the 2.0.53 and
2.0.55 tarballs ... 


APR was also present in the 2.0.54 tarball.

This was a snafu in the way the rpm change was presented, not in the
tarballs.  httpd-2.0's distribution tarball will always contain apr 0.9.

That doesn't mean httpd-2.2 (with apr 1.x) will do the same; that's yet
to be determined.

Coming back to rpm's for the moment; I do *not* mean to suggest that
this is the best solution for any specific platform or distribution
method, be it .rpm, .depot, .pkg, .msi, or any other facility.

The problem is that packaging is almost a 20/20 hindsite game.  There's
no way we should expect that all of these many platform specifics can
all be maintained pre-release.  That's why, in the Win32 .msi case,
there is a seperate httpd/httpd/win32-msi/trunk/ containing the win32
packaging flavor.  It doesn't get fixed for a specific release until
we know exactly what needed to be fixed :)

I'm concerned that the current .spec solution is wrong; it's very
platform specific (platform meaning deployment mechanics, in this
case, I'm not slamming non-unix rpm implementations).  Perhaps we
rejigger the tree to

  httpd/
package/
  roll-release/
  win32-msi/
  rpm/
  pkg/

Thoughts?

In the interim; is this a showstopper?  Do we generally do the right
thing (e.g. without changes, can we package up using the existing
rpm files?)  Obviously 2.0.54 was mispackaged as well, it's minimum
apr package dependency should have been 0.9.6 apr, not 0.9.5.

Bill





Re: [PATCH] Bug 36816: balancer_manager doesn't work if worker name contains port

2005-10-10 Thread Ruediger Pluem


On 10/10/2005 05:43 PM, Jim Jagielski wrote:
 For consideration:

[..cut..]

Thanks for your thoughts.
BTW: It was a little bit tricky to apply the patch as my Mozilla
seems to have changed things in the mail spaces / empty lines.
So I guess attached patches are easier to handle :-).

I think I found one big problem with the patch:

When we call ap_proxy_get_worker in line 1316 of proxy_util.c
(ap_proxy_pre_request), then the parameter url already contains
the complete URL we must call on the remote server. Example:

ServerName example.com
ProxyPass /mirror/foo http://backend.com/rsync

This would result in a worker named

http://backend.com/rsync


Calling http://example.com/mirror/foo/bar would be translated to

proxy:http://backend.com/rsync/bar in the translate_name hook of mod_proxy.

Thus ap_proxy_get_worker would be called with the URL 
http://backend.com/rsync/bar
which would lead to a no match. I guess instead of a simple strcasecmp
we need something like a longest match here since I think we cannot rely
on the order the workers got stored. Do you know if a longest match function
is already at hand somewhere in apr / apr-util or httpd?

BTW: A similar problem should exist with the current code as in this case
ap_proxy_get_worker tries to compare http://backend.com/ with 
http://backend.com/rsync
which also fails.

Other smaller problems that need to be solved:

1. Some style and output issues with the manager html interface (e.g.delete 
column scheme)
   I already did this and extended your patch with these things.
   Please have a look if you like the design :-).

2. The xml output is currently broken as it only works with schema and hostname.
   I am not quite sure if

   1. there is an xml schema already defined for this and needs to be adjusted
   2. we need to parse the worker name and replace some of the characters with
  xml entities.

   I think we need to fix this or if not at least a remark in the documentation
   should be made that the xml output is currently broken.


Regards

Rüdiger
Index: modules/proxy/mod_proxy_balancer.c
===
--- modules/proxy/mod_proxy_balancer.c  (Revision 312708)
+++ modules/proxy/mod_proxy_balancer.c  (Arbeitskopie)
@@ -477,8 +477,12 @@
 *val++ = '\0';
 if ((tok = ap_strchr(val, '')))
 *tok++ = '\0';
+/*
+ * Special case: workers are allowed path information
+ */
 if ((access_status = ap_unescape_url(val)) != OK)
-return access_status;
+if (strcmp(args, w) || (access_status !=  
HTTP_NOT_FOUND))
+return access_status;
 apr_table_setn(params, args, val);
 args = tok;
 }
@@ -490,13 +494,9 @@
 bsel = ap_proxy_get_balancer(r-pool, conf,
 apr_pstrcat(r-pool, balancer://, name, NULL));
 if ((name = apr_table_get(params, w))) {
-const char *sc = apr_table_get(params, s);
-char *asname = NULL;
-proxy_worker *ws = NULL;
-if (sc) {
-asname = apr_pstrcat(r-pool, sc, ://, name, NULL);
-ws = ap_proxy_get_worker(r-pool, conf, asname);
-}
+proxy_worker *ws;
+
+ws = ap_proxy_get_worker(r-pool, conf, name);
 if (ws) {
 worker = (proxy_worker *)bsel-workers-elts;
 for (n = 0; n  bsel-workers-nelts; n++) {
@@ -613,7 +613,7 @@
   balancer-name + sizeof(balancer://) - 1,
   \, NULL); 
 ap_rvputs(r, balancer-name, /a/h3\n\n, NULL);
-ap_rputs(\n\ntable border=\0\tr
+ap_rputs(\n\ntable border=\0\ style=\text-align: left;\tr
 
thStickySession/ththTimeout/ththFailoverAttempts/ththMethod/th
 /tr\ntr, r);
 ap_rvputs(r, td, balancer-sticky, NULL);
@@ -622,9 +622,9 @@
 ap_rprintf(r, td%d/td\n, balancer-max_attempts);
 ap_rprintf(r, td%s/td\n,
balancer-lbmethod-name);
-ap_rputs(/table\n, r);
-ap_rputs(\n\ntable border=\0\tr
-thScheme/ththHost/th
+ap_rputs(/table\nbr /, r);
+ap_rputs(\n\ntable border=\0\ style=\text-align: left;\tr
+thWorker URL/th
 thRoute/ththRouteRedir/th
 thFactor/ththStatus/th
 /tr\n, r);
@@ -632,12 +632,11 @@
 worker = (proxy_worker *)balancer-workers-elts;
 for (n = 0; n  balancer-workers-nelts; n++) {
 
-ap_rvputs(r, tr\ntd, worker-scheme, /tdtd, NULL);
-ap_rvputs(r, a href=\, r-uri, ?b=, 
-  balancer-name + sizeof(balancer://) - 1,
-  s=, worker-scheme, w=, worker-hostname,
+ap_rvputs(r, tr\ntda href=\, r-uri, ?b=,
+

Re: [PATCH] Bug 36816: balancer_manager doesn't work if worker name contains port

2005-10-10 Thread Ruediger Pluem


On 10/10/2005 11:13 PM, Ruediger Pluem wrote:



[..cut..]

 
 Thus ap_proxy_get_worker would be called with the URL 
 http://backend.com/rsync/bar
 which would lead to a no match. I guess instead of a simple strcasecmp
 we need something like a longest match here since I think we cannot rely
 on the order the workers got stored. Do you know if a longest match function

Attached a new version which does a longest match and should fix the problem.

[..cut..]

BTW: Tomorrow I will have a look a the log messages, where it makes sense to 
exchange
worker-hostname against worker-name.

Regards

Rüdiger
Index: modules/proxy/mod_proxy_balancer.c
===
--- modules/proxy/mod_proxy_balancer.c  (Revision 312708)
+++ modules/proxy/mod_proxy_balancer.c  (Arbeitskopie)
@@ -477,8 +477,12 @@
 *val++ = '\0';
 if ((tok = ap_strchr(val, '')))
 *tok++ = '\0';
+/*
+ * Special case: workers are allowed path information
+ */
 if ((access_status = ap_unescape_url(val)) != OK)
-return access_status;
+if (strcmp(args, w) || (access_status !=  
HTTP_NOT_FOUND))
+return access_status;
 apr_table_setn(params, args, val);
 args = tok;
 }
@@ -490,13 +494,9 @@
 bsel = ap_proxy_get_balancer(r-pool, conf,
 apr_pstrcat(r-pool, balancer://, name, NULL));
 if ((name = apr_table_get(params, w))) {
-const char *sc = apr_table_get(params, s);
-char *asname = NULL;
-proxy_worker *ws = NULL;
-if (sc) {
-asname = apr_pstrcat(r-pool, sc, ://, name, NULL);
-ws = ap_proxy_get_worker(r-pool, conf, asname);
-}
+proxy_worker *ws;
+
+ws = ap_proxy_get_worker(r-pool, conf, name);
 if (ws) {
 worker = (proxy_worker *)bsel-workers-elts;
 for (n = 0; n  bsel-workers-nelts; n++) {
@@ -613,7 +613,7 @@
   balancer-name + sizeof(balancer://) - 1,
   \, NULL); 
 ap_rvputs(r, balancer-name, /a/h3\n\n, NULL);
-ap_rputs(\n\ntable border=\0\tr
+ap_rputs(\n\ntable border=\0\ style=\text-align: left;\tr
 
thStickySession/ththTimeout/ththFailoverAttempts/ththMethod/th
 /tr\ntr, r);
 ap_rvputs(r, td, balancer-sticky, NULL);
@@ -622,9 +622,9 @@
 ap_rprintf(r, td%d/td\n, balancer-max_attempts);
 ap_rprintf(r, td%s/td\n,
balancer-lbmethod-name);
-ap_rputs(/table\n, r);
-ap_rputs(\n\ntable border=\0\tr
-thScheme/ththHost/th
+ap_rputs(/table\nbr /, r);
+ap_rputs(\n\ntable border=\0\ style=\text-align: left;\tr
+thWorker URL/th
 thRoute/ththRouteRedir/th
 thFactor/ththStatus/th
 /tr\n, r);
@@ -632,12 +632,11 @@
 worker = (proxy_worker *)balancer-workers-elts;
 for (n = 0; n  balancer-workers-nelts; n++) {
 
-ap_rvputs(r, tr\ntd, worker-scheme, /tdtd, NULL);
-ap_rvputs(r, a href=\, r-uri, ?b=, 
-  balancer-name + sizeof(balancer://) - 1,
-  s=, worker-scheme, w=, worker-hostname,
+ap_rvputs(r, tr\ntda href=\, r-uri, ?b=,
+  balancer-name + sizeof(balancer://) - 1, w=,
+  ap_escape_uri(r-pool, worker-name),
   \, NULL); 
-ap_rvputs(r, worker-hostname, /a/td, NULL);
+ap_rvputs(r, worker-name, /a/td, NULL);
 ap_rvputs(r, td, worker-s-route, NULL);
 ap_rvputs(r, /tdtd, worker-s-redirect, NULL);
 ap_rprintf(r, /tdtd%d/tdtd, worker-s-lbfactor);
@@ -678,10 +677,8 @@
 ap_rputs( checked, r);
 ap_rputs(/tdtr\n, r);
 ap_rputs(trtd colspan=2input type=submit 
value=\Submit\/td/tr\n, r);
-ap_rvputs(r, /table\ninput type=hidden name=\s\ , NULL);
-ap_rvputs(r, value=\, wsel-scheme, \\n, NULL);
-ap_rvputs(r, input type=hidden name=\w\ , NULL);
-ap_rvputs(r, value=\, wsel-hostname, \\n, NULL);
+ap_rvputs(r, /table\ninput type=hidden name=\w\ ,  NULL);
+ap_rvputs(r, value=\, ap_escape_uri(r-pool, wsel-name), 
\\n, NULL); 
 ap_rvputs(r, input type=hidden name=\b\ , NULL);
 ap_rvputs(r, value=\, bsel-name + sizeof(balancer://) - 1,
   \\n/form\n, NULL);
Index: modules/proxy/proxy_util.c
===
--- modules/proxy/proxy_util.c  (Revision 312708)
+++ modules/proxy/proxy_util.c  

Re: FileSession automatic cleaning seems to be on vacation

2005-10-10 Thread Jim Gallacher

dharana wrote:
I think there is a problem with the autocleaning function in 
FileSession. I'm using Mod_Python 3.2.2b in a live server and I today I 
noticed this:



/tmp/mp_sess # df -h /tmp
FilesystemSize  Used Avail Use% Mounted on
/dev/sda7 989M  544M  395M  58% /tmp


/tmp/mp_sess # df -i /tmp
FilesystemInodes   IUsed   IFree IUse% Mounted on
/dev/sda7 128768  128768   0  100% /tmp


/tmp/mp_sess # ll /tmp/
total 24
drwxrwxrwt2 root root 4096 Oct  6 11:43 .ICE-unix/
drwx--2 root root16384 Jun 14 22:30 lost+found/
drwxr-x---  258 httpdsys  4096 Oct  6 06:04 mp_sess/


And, after executing this:

/tmp/mp_sess # find ./ -mmin +1440 -exec rm {} \;



I get this:

/tmp/mp_sess # df -i /tmp
FilesystemInodes   IUsed   IFree IUse% Mounted on
/dev/sda7 128768   23857  104911   19% /tmp

So I think FileSession isn't doing its work. Any ideas?



Could you check:
   ls -l /tmp/mp_sess/.mp_sess.lck

It should only exist when a cleanup is running.

.mp_sess.lck is a lock file to ensure only one cleanup process/thread is 
running at one time. If something went wrong during a cleanup 
(segfault?) then this lock file might not have been deleted. If an stale 
lock file exists any subsequent cleanup will exit without doing 
anything. If it exists delete it and see if the cleanup will run to 
completion.


If this lock file looks like it might create problems I can add a check 
to see if it's stale.


Regards,
Jim



Re: Typo in ./configure --help

2005-10-10 Thread Jim Gallacher

dharana wrote:

--with-python=DIR   Path to specific Python binary

It should say:

--with-python=PATHPath to specific Python binary

---
checking Python version... ./configure: line 2869: 
/usr/local/hosting/bin/: is a directory

./configure: line 2870: /usr/local/hosting/bin/: is a directory

configure: error: This version of mod_python only works with Python 
major version 2. The one you have seems to be .

---



Noted. Will fix.

Jim


mod_mbox

2005-10-10 Thread Joshua Slive
The new mod_mbox looks really great.  No cores so far, and a big 
interface improvement.


A few comments:

1. Do we really want people subscribing to mailing lists using atom 
over http?  This would consume way more resources than a standard 
mailing list subscription (due to the polling nature of atom).  I don't 
have any evidence, but this worrys me.


2. There are several formats for each mail message (regular, raw, mime). 
 Probably the links to everything other than the standard format should 
use the rel=nofollow modifier to keep the search engines out.  Keeping 
 the robots off of 2/3 of the links could make a big difference in load 
considering the number of pages on this site.


3. We should probably turn on the email-address-obfiscation feature.  I 
personally would prefer if everyone could just use proper spam 
filtering, but I think the general expectation nowadays is that we try 
to avoid displaying raw addresses.


4. The non-ajax form of the site could probably use a little more 
attention.  It is usuable, but a little dirty in places (overlapping 
boxes, too-big fonts, etc).


Joshua.


Re: mod_mbox

2005-10-10 Thread William A. Rowe, Jr.

Joshua Slive wrote:
3. We should probably turn on the email-address-obfiscation feature.  I 
personally would prefer if everyone could just use proper spam 
filtering, but I think the general expectation nowadays is that we try 
to avoid displaying raw addresses.


Consider the other side of that coin, please.  Everyone on this list
is a regular victim of email impersonation.  Let's turn it on for the
whole host of reasons.

Bill


Re: async write completion prototype

2005-10-10 Thread Greg Ames

Brian Pane wrote:

With the batch of commits I did this weekend, the Event MPM in
the async-dev Subversion branch now does write completion
in a nonblocking manner.  


very cool!


There are several more things that need to be fixed in order
to make the asynchronous write completion useful in a
production release of httpd-2.x:


...


- The logic for starting more child processes, which Event
  inherited from Worker, is based on assumptions about
  the number of concurrent connections being equal to
  the number of threads.  These assumptions aren't valid
  for a multiple-connections-per-thread MPM.


certainly the name MaxClients is wrong - it's really MaxWorkerThreads 
for event.  but the logic does a pretty good job of managing the threads 
if you can get past the name.



- Similarly, there may be some changes needed in the
  flow control logic that the listener thread uses to decide
  whether it can do an accept.


the flow control I'm aware of is that ap_queue_info_wait_for_idler 
blocks, therefore the listener temporarily quits accept()ing until 
worker threads are available.  clearly that is needed.  the question is 
should there be some other cap on the number of connections per process.


if we do a really good job of raising the connections per thread ratio 
and continue to use ThreadsPerChild as the throttle, we will be bumping 
against OS file descriptor per process limits more often.  that sounds 
kinda ugly, so I think we will want some kind of MaxConnectionsPerChild.


if the async write completions are moved to the listener thread as Paul 
suggests, we might want another flow control change.  there's no need to 
reserve/block for a worker thread in that case.



- The scoreboard probably needs a redesign.


yep.  Jeff T and I discussed this offline a while back.  a scoreboard 
slot per connection definately has some appeal.


...

my list:

- make it work with mod_ssl and http pipelining. this 
http://mail-archives.apache.org/mod_mbox/httpd-dev/200411.mbox/[EMAIL PROTECTED] 
fixes it in theory.  my problem is testing/verifying it.  if I knew how 
to make mod_ssl's input filters stash data it shouldn't be too bad.


- event-ize lingering close.  it eats up roughly the same number of 
worker threads as synchronous writes for SPECweb99.


Greg


Re: mod_mbox

2005-10-10 Thread Garrett Rooney
On 10/10/05, Joshua Slive [EMAIL PROTECTED] wrote:

 1. Do we really want people subscribing to mailing lists using atom
 over http?  This would consume way more resources than a standard
 mailing list subscription (due to the polling nature of atom).  I don't
 have any evidence, but this worrys me.

I guess the question is, what are we concerned about?

Is it the bandwidth used by people downloading the feeds?  Is it the
CPU server side that we need to spend serving them up?  Is it both?

If it's both, pretty much the only answer is to offload the feed
hosting to another service (feedburner or something like that).  If
it's one or the other there are steps that can be taken.  To reduce
CPU mod_cache can be used.  To reduce bandwidth something like my
mod_speedyfeed module can be used to cut down the response bandwidth
for clients that send If-Modified-Since and/or Last-Modified headers. 
You could even combine the two, but keep in mind that mod_speedyfeed
burns CPU, and if you use mod_cache alone you end up sending back an
entire feed even if a client only cares about a single entry.

It just comes down to two questions.  Do we want to offer the service,
and if so, what resource utilization do we want to optimize for?

-garrett


Re: mod_mbox

2005-10-10 Thread Paul Querna

Garrett Rooney wrote:

On 10/10/05, Joshua Slive [EMAIL PROTECTED] wrote:


1. Do we really want people subscribing to mailing lists using atom
over http?  This would consume way more resources than a standard
mailing list subscription (due to the polling nature of atom).  I don't
have any evidence, but this worrys me.


I guess the question is, what are we concerned about?

Is it the bandwidth used by people downloading the feeds?  Is it the
CPU server side that we need to spend serving them up?  Is it both?

If it's both, pretty much the only answer is to offload the feed
hosting to another service (feedburner or something like that).  If
it's one or the other there are steps that can be taken.  To reduce
CPU mod_cache can be used.  To reduce bandwidth something like my
mod_speedyfeed module can be used to cut down the response bandwidth
for clients that send If-Modified-Since and/or Last-Modified headers. 
You could even combine the two, but keep in mind that mod_speedyfeed

burns CPU, and if you use mod_cache alone you end up sending back an
entire feed even if a client only cares about a single entry.

It just comes down to two questions.  Do we want to offer the service,
and if so, what resource utilization do we want to optimize for?


Hell, if we want to optimize for bandwidth, we really should enable 
mod_deflate, which is pretty damn effective


-Paul



Re: [pre-release] 2.0.55 *candidate* available for testing

2005-10-10 Thread Brian Pane

On Oct 10, 2005, at 7:32 AM, William A. Rowe, Jr. wrote:


Brian Pane wrote:


I encountered lots of errors in perl-framework's t/TEST with prefork
on Darwin 8.2.0/PPC (OS X 10.4.2).  I don't yet know whether these
are due to httpd-2.0.55 problems or just problems with my Perl
installation.



Hmmm... review this bug (not fixed in 0.9.7, afaict);

http://issues.apache.org/bugzilla/show_bug.cgi?id=34332


It looks like most of the errors I saw were due to environmental
problems.  I just cleaned up my Perl installation on OS X, and
now there's just one test case that's failing now: test 10 of
t/apache/limits.t.

I _think_ the fix for 34332 is in apr-0.9.7; the CHANGES file
includes:

  *) Fix issue with poll() followed by net I/O yielding EAGAIN on
 Mac OS 10.4 (Darwin 8). [Wilfredo Sanchez]

I probably won't be able to look at that failed test case in limits.t in
detail for a few days.  If anybody else with OS X has time to test
2.0.55 before then, I'd be grateful.

Thanks,
Brian



Re: async write completion prototype

2005-10-10 Thread Brian Pane

On Oct 10, 2005, at 12:01 AM, Paul Querna wrote:


Brian Pane wrote:


With the batch of commits I did this weekend, the Event MPM in
the async-dev Subversion branch now does write completion
in a nonblocking manner.  Once an entire response has been
generated and passed to the output filter chain, the MPM's
poller/listener thread watches the connection for writability
events.  When the connection becomes writable, the poller
thread sends it to one of the worker threads, which writes
some more output.



If the content has already been generated, why add the overhead of  
the context switch/sending to another thread?  Can't the same event  
thread do a non-blocking write?


Once it finishes writing, then yes, we do require a context-switch  
to another thread to do logging/cleanup.


I am mostly thinking about downloading a 1 gig file with the  
current pattern against a slow client.  A non-blocking write might  
only do ~64k at a time, and causing 1 gig/64k context switches,  
which seems less than optimal.


If I had to choose, I'd rather do the context switches than devote a
thread (and the associated stack space) to the connection until
the writes are finished--especially if the server is delivering a
thousand 1GB files to slow clients concurrently.

However, it's probably possible to have _both_ a high ratio
of connections to threads (for scalability) and a low ratio of
context switches to megabytes delivered (for efficiency).
The Event MPM currently has to do a lot of context switching
because it detects events in one thread and processes them
in another.  If we add async write completion to the
Leader/Followers MPM (or incorporate a leader/follower
thread model into Event), it should reduce the context
switches considerably.


...


- The main pollset in the Event MPM currently is sized to
  hold up to one socket descriptor per worker thread.  With
  asynchronous keepalives and write completion, the pollset
  should accommodate many descriptors per thread.



The pollset is auto-resizable.  That number is just the maximum  
number of events that will ever be returned by a single call to  
_poll().  This number if perfect for the number of threads, since  
we can never dispatch to more than the number of threads we have...


Ah, thanks.  I missed that key point.  It makes more sense now.

Brian



Re: mod_mbox

2005-10-10 Thread Justin Erenkrantz
On Mon, Oct 10, 2005 at 06:46:57PM -0400, Joshua Slive wrote:
 1. Do we really want people subscribing to mailing lists using atom 
 over http?  This would consume way more resources than a standard 
 mailing list subscription (due to the polling nature of atom).  I don't 
 have any evidence, but this worrys me.

I thought they were static files?

 2. There are several formats for each mail message (regular, raw, mime). 
  Probably the links to everything other than the standard format should 
 use the rel=nofollow modifier to keep the search engines out.  Keeping 
  the robots off of 2/3 of the links could make a big difference in load 
 considering the number of pages on this site.

*shrug*

 3. We should probably turn on the email-address-obfiscation feature.  I 
 personally would prefer if everyone could just use proper spam 
 filtering, but I think the general expectation nowadays is that we try 
 to avoid displaying raw addresses.

I think this feature is lame (and said so when it was proposed).
Spammers are just going to de-obfuscate anyway.  Enabling this provides
a false layer of security that does no one any good.

 4. The non-ajax form of the site could probably use a little more 
 attention.  It is usuable, but a little dirty in places (overlapping 
 boxes, too-big fonts, etc).

Agreed.  -- justin


Re: mod_mbox

2005-10-10 Thread Paul Querna

Justin Erenkrantz wrote:

On Mon, Oct 10, 2005 at 06:46:57PM -0400, Joshua Slive wrote:
1. Do we really want people subscribing to mailing lists using atom 
over http?  This would consume way more resources than a standard 
mailing list subscription (due to the polling nature of atom).  I don't 
have any evidence, but this worrys me.


I thought they were static files?


No, it is generated from the mbox files on request.  It does include 
E-Tag and Last-Modified.


It could be made into a static file.  I proposed doing this originally, 
but it does add a few issues like creating correct absolute URLs from 
mod-mbox-util, and no one seemed to really care at the time, so I just 
made it another handler inside the module, since it was easier.


-Paul


nofollow was Re: mod_mbox

2005-10-10 Thread Paul Querna
2. There are several formats for each mail message (regular, raw, mime). 
 Probably the links to everything other than the standard format should 
use the rel=nofollow modifier to keep the search engines out.  Keeping 
 the robots off of 2/3 of the links could make a big difference in load 
considering the number of pages on this site.


I agree. We don't want Google and friends indexing the raw format, and 
then ranking it higher than the normal presentation.


Re: mod_mbox

2005-10-10 Thread Maxime Petazzoni
* Justin Erenkrantz [EMAIL PROTECTED] [2005-10-10 22:33:16]:

  3. We should probably turn on the email-address-obfiscation feature.  I 
  personally would prefer if everyone could just use proper spam 
  filtering, but I think the general expectation nowadays is that we try 
  to avoid displaying raw addresses.
 
 I think this feature is lame (and said so when it was proposed).
 Spammers are just going to de-obfuscate anyway.  Enabling this provides
 a false layer of security that does no one any good.

Ok, you are a spam bot and you don't have the slightest idea of who
f*** I am.

Now, please, de-obfuscate this : [EMAIL PROTECTED]
Or even this : [EMAIL PROTECTED]

- Sam
-- 
Maxime Petazzoni (http://www.bulix.org)
 -- gone crazy, back soon. leave message.


signature.asc
Description: Digital signature


Re: mod_mbox

2005-10-10 Thread Paul Querna

Maxime Petazzoni wrote:

* Justin Erenkrantz [EMAIL PROTECTED] [2005-10-10 22:33:16]:

3. We should probably turn on the email-address-obfiscation feature.  I 
personally would prefer if everyone could just use proper spam 
filtering, but I think the general expectation nowadays is that we try 
to avoid displaying raw addresses.

I think this feature is lame (and said so when it was proposed).
Spammers are just going to de-obfuscate anyway.  Enabling this provides
a false layer of security that does no one any good.


Ok, you are a spam bot and you don't have the slightest idea of who
f*** I am.

Now, please, de-obfuscate this : [EMAIL PROTECTED]
Or even this : [EMAIL PROTECTED]


Actually, I feel that last example makes it a pain in the ass for the 
rest of us humans to email someone about something.


-Paul