Re: zlib inclusion and mod_gz(ip) recap

2001-09-05 Thread TOKILEY

 
Greg Stein wrote...

   Kevin Kiley asked...
  
   What's it going to take to find out once and for all if
   ZLIB can be included in the Apache source tree?
  
  It won't go in. No need for it. That hasn't been well-stated...

It has now, it seems ( finally! ).

Only takes one veto and looks like between you ( and/or Ryan )
there will never be any ZLIB sources in Apache. End of story.
Good to know.

  As stated elsewhere, pcre and expat are in there because they aren't
  typically available, like zlib is.

Ah... so that's the criteria? Ok.

I believe the other libs you mention have been 'tweaked' 
and that's another reason why the source is there, yes?

What if you ever need to 'tweak' ZLIB because it was never
really designed to be a real-time data compression engine? 
Would that remove the 'no ZLIB source' dictum?

  Nothing needs to happen, so it shouldn't be surprising :-). If/when we need
  it, then we will include it. As I said, it is just config macros.

You are putting an awful lot of faith in ZLIB and the assumption that it
will suit your needs 'out of the box' but I hear ya...

  There are three options on the table:
  
  1) include mod_gzip
  2) include mod_gz
  3) include neither
  
  I believe there is consensus that (3) is not an option. 

Huh?

I didn't see any real consensus on that.
Only a real vote will tell you that.

Why note call for one?... not a vote on any particular piece of code
but whether or not to include anything to do with IETF Content-Encoding 
into the actual CORE or standard module base ( for now ).
That will tell the story about option 3 for sure.

Ryan himself said he prefers 3 right off the bat when Jerry
said 'Let's dump Ian's mod_gz into the core!' which is what
started this whole entire thread.

His (Ryan's) preference is that for the time being ( and I'm beginning to 
lean that 
way myself in light of this discussion ) is just leave the IETF 
Content-Encoding 
stuff out of the core and let 3rd party modules handle it. That'll work.
That's the way it works right now and thousands of real Apache users don't 
seem to have a problem with that.

No one ( including myself ) has made any kind of airtight case
yet as to WHY IETF Content-Encoding support SHOULD be in
the core Server itself. I am not sure I could, at this point, after
seeing that anyone who really wants to compress responses 
knows how to locate and install a module that will do so ( mod_gzip ).

I guess it would be easier for folks to 'get' it in the tarball but that 
hasn't stopped
a few thousand people finding/using mod_gzip over the last year or so even I 
have
to admit putting it all in the core doesn't seem like a house on fire.

 Despite yours and
 Peters pushing and stressing and overbearing sell job to get mod_gz(ip)
 type functionality into the core, it was just preaching to the choir. (well,
 okay: maybe Ryan didn't want to see it in there :-)  That sell job mostly
 served to create an air of hostility.

Yea... okay... whatever... we are the 'bad guys' again for trying to
improve your Server. Mea Culpa.

  So now the question comes down to using (1) or (2). People are *not* voting
  on including mod_gz because they want to see your alternative. I think it 
is
  pretty much that simple.

Yea... I guess.
  
  But then you say to look at the 1.3 version. 

What I meant was... if anyone wants to see right away if a whole bunch
of pure 'coding style' bullshit is going to be the show stopper right off the
bat then there's no need to wait for anything. As I have said 3 times now...
it doesn't take rocket scientist to look at an existing module and imagine
what it will STILL look like with filtering calls in it.

I assure you... I did not rewrite the 1.3.x module just for 2.0. All I did
was add the filtering calls. It was no big deal.

Ian himself could have probably done the same in less time than it took
him to write the mod_gz demo in the first place.

I also haven't gotten an answer to my question regarding the weird comment 
that appeared in this discussion about any module being submitted that 
supports both 1.3.x AND 2.0 in the same code ( which the mod_gzip I have
here certainly does ) will be rejected for that reason alone. 

Is that true?

If so... then this is all a moot point. I don't have the time at the moment
to hack up a perfectly fine module that supports ALL versions of Apache
into something that ONLY cares about Apache 2.0. I am not even
sure I would... it seems like a really stupid thing to do.

  Whether the changes are
  large or small, they'd rather see your current work because we already know
  the port has been completed and *tested*. We'd have to redo all of that
  work, which just seems silly.

Yep... sure would be.
  
  So the inclusion of either is blocked on seeing the source to mod_gzip for
  Apache 2.0.

Not really...

The vote about mod_gz was still in progress.

It was about to 'pass', I think. Why not start it over again and 
see if it actually does?

Maybe a legal 

[PATCH] Potential replacement for find_start_sequence...

2001-09-05 Thread Justin Erenkrantz

I'm not totally sure I'm sold on this approach being better.  But,
I'm not sure that it is any worse either.  Don't have time to
benchmark this right now.  I'm going to throw it to the wolves and 
see what you think.  

Basically, replace the inner search with a Rabin-Karp search (which 
seemed to best describe whatever OtherBill posted - I read what you 
posted and then I looked through my books and this seems to be the 
closest one to whatever you were describing - it uses a hash value
- it's probably not even close to what you had in mind).

This patch also handles the leftover case independently (why there 
is a new function as a portion of the code gets called twice).  (Too
bad we don't have a super-bucket that would allow a portion of a
bucket to get added to another bucket.  If this were there, a lot of
code could be simplified throughout the server, I think...)

You could, in theory, replace it with a KMP search (the search 
algorithm doesn't matter too much in this patch).  I think 
Rabin-Karp gets you linear time.  But, I think we already had 
that.  However, the inner loop gets dramatically reduced (two 
mathematical formulas versus 3 ifs that may have been nullifying 
branch predicition).

I'm wondering where we are spending our time in find_start_sequence.
BTW, I know this works in the limited testing I gave it.  -- justin

Index: modules/filters/mod_include.c
===
RCS file: /home/cvs/httpd-2.0/modules/filters/mod_include.c,v
retrieving revision 1.143
diff -u -r1.143 mod_include.c
--- modules/filters/mod_include.c   2001/09/04 02:13:58 1.143
+++ modules/filters/mod_include.c   2001/09/05 08:23:31
@@ -206,6 +206,54 @@
 
 /* --- Parser functions --- */
 
+/* Rabin-Karp search as described in Sedgewick 2nd Ed, */
+int rksearch(const char *p, int pLen, const char *a, int aLen)
+{
+const int q = 33554393;
+const int d = 32;
+int i, dM = 1, h1 = 0, h2 = 0;
+int M = pLen, N = aLen;
+for (i = 1; i  M; i++) dM = (d*dM) % q;
+for (i = 0; i  M; i++) {
+h1 = (h1*d+p[i]) % q;
+h2 = (h2*d+a[i]) % q;
+}
+for (i = 0; h1 != h2; i++) {
+h2 = (h2+d*q-a[i]*dM) % q;
+h2 = (h2*d+a[i+M]) % q;
+if (i  N - M) return N;
+}
+return i;
+}
+
+/* We've now found a start sequence tag... */
+static apr_bucket* found_start_sequence(apr_bucket *dptr,
+  include_ctx_t *ctx, 
+  int tagStart)
+{
+/* We want to split the bucket at the ''. */
+ctx-state = PARSE_DIRECTIVE;
+ctx-tag_length = 0;
+ctx-parse_pos = 0;
+ctx-tag_start_bucket = dptr;
+ctx-tag_start_index = tagStart;
+if (ctx-head_start_index  0) {
+apr_bucket *tmp_bkt;
+
+/* Split the bucket with the start of the tag in it */
+apr_bucket_split(ctx-head_start_bucket, ctx-head_start_index);
+tmp_bkt = APR_BUCKET_NEXT(ctx-head_start_bucket);
+/* If it was a one bucket match */
+if (dptr == ctx-head_start_bucket) {
+ctx-tag_start_bucket = tmp_bkt;
+ctx-tag_start_index = tagStart - ctx-head_start_index;
+}
+ctx-head_start_bucket = tmp_bkt;
+ctx-head_start_index = 0;
+}
+return ctx-head_start_bucket;
+}
+
 /* This function returns either a pointer to the split bucket containing the
  * first byte of the BEGINNING_SEQUENCE (after finding a complete match) or it
  * returns NULL if no match found.
@@ -217,8 +265,8 @@
 const char *c;
 const char *buf;
 const char *str = STARTING_SEQUENCE;
-apr_bucket *tmp_bkt;
-apr_size_t  start_index;
+int slen = strlen(str);
+int pos;
 
 *do_cleanup = 0;
 
@@ -269,8 +317,53 @@
 if (len == 0) { /* end of pipe? */
 break;
 }
+
+/* Set our buffer to use. */
+
 c = buf;
-while (c  buf + len) {
+/* The last bucket had a left over partial match that we need to
+ * complete. 
+ */
+if (ctx-state == PARSE_HEAD)
+{
+apr_size_t tmpLen;
+tmpLen = (len  (slen - 1)) ? len : (slen - 1);
+
+while (c  buf + tmpLen  *c == str[ctx-parse_pos])
+{
+c++; 
+ctx-parse_pos++;
+}
+
+if (str[ctx-parse_pos] == '\0')
+{
+ctx-bytes_parsed += c - buf;
+return found_start_sequence(dptr, ctx, c - buf);
+}
+
+/* False alarm... */
+ctx-state = PRE_HEAD;
+}
+
+if (len)
+{
+pos = rksearch(str, slen, c, len);
+if (pos != len)
+{
+ctx-head_start_bucket = dptr;
+ctx-head_start_index = pos;
+ctx-bytes_parsed += pos + slen;
+return 

mod_include.c WAS: RE: remaining CPU bottlenecks in 2.0

2001-09-05 Thread Sander Striker

 * find_start_sequence() is the main scanning function within
   mod_include.  There's some research in progress to try to speed
   this up significantly.
 
 Based on the patches you submitted (and my quasi-errant formatting
 patch), I had to read most of the code in mod_include, so I'm more 
 familiar with mod_include now.  I do think there are some obvious 
 ways to optimize find_start_sequence.  I wonder if we could apply 
 a KMP-string matching algorithm here.  I dunno.  I'll take a look 
 at it though.  Something bugs me about the restarts.  I bet that 
 we spend even more time in find_start_sequence when a HTML file 
 has lots of comments.  =-)

I suggested to Ian yesterday night that I'd look into a Boyer-Moore
matching algorithm.  I'll work on that too.

Sander




RE: [PATCH] Potential replacement for find_start_sequence...

2001-09-05 Thread Sander Striker

 I'm not totally sure I'm sold on this approach being better.  But,
 I'm not sure that it is any worse either.  Don't have time to
 benchmark this right now.  I'm going to throw it to the wolves and 
 see what you think.  

Me neither.  Rabin-Karp introduces a lot of * and %.
I'll try Boyer-Moore with precalced tables for '!--#' and '---'.

[...]

Sander




sub requests are all GETs

2001-09-05 Thread Eric Prud'hommeaux

Can anybody explain why ap_set_sub_req_protocol does
rnew-method  = GET;
rnew-method_number   = M_GET;
instead of
rnew-method  = r-method;
rnew-method_number   = r-method_number;
? The consequence is that functions like negotiation
sub_req = ap_sub_req_lookup_file(dirent.name, r, NULL);
check auth on the wrong method. You can check this by POSTing to
foo and having a limit on POST for foo.php3 (as opposed to the
whole directory). A quick way to check is to set a breakpoint in
ap_set_sub_req_protocol and
  telnet localhost 80
  POST /Overview HTTP/1.0
  Content-Length: 5
  
  abcd
Any calls to the auth modules will have a method of GET despite
the POST action they will eventually execute.

All auth modules and the like could check for this:
  int method = r-main ? r-main-method_number : r-method_number;
but it seems better to have the sub request default to the method
of the request that inspired it. There may be some modules that
may count on the default behavior, like mod_include, but I think
they should specifically make the new method be a GET as they are
not duplicating the parent request's behaviour.

-- 
-eric

([EMAIL PROTECTED])
Feel free to forward this message to any list for any purpose other than
email address distribution.



Re: cvs commit: apache-1.3/src/modules/standard mod_rewrite.h

2001-09-05 Thread Jeff Trawick

[EMAIL PROTECTED] writes:

 jim 01/09/04 11:15:16
 
   Modified:src  CHANGES PORTING
src/include ap_config.h http_main.h
src/lib/sdbm sdbm_lock.c
src/main http_core.c http_main.c
src/modules/standard mod_rewrite.h
   Log:
   Add the AcceptMutex runtime directive, which allows for the
   accept mutexing method to be set at runtime (the suite of
   methods is set at compile time still).

I don't like the feature of selecting a default mechanism if the
AcceptMutex foo directive is invalid.  I think the admin should get
the same feedback she'd get if she miscoded anything else.  I'm not
accustomed to Apache continuing to initialize if a directive is
miscoded.

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



Re: sub requests are all GETs

2001-09-05 Thread Greg Stein

Take a look at ap_sub_req_method_uri. That might do the trick for you.

I don't think there is a similar one for files right now.

Cheers,
-g

On Wed, Sep 05, 2001 at 08:17:15AM -0400, Eric Prud'hommeaux wrote:
 Can anybody explain why ap_set_sub_req_protocol does
 rnew-method  = GET;
 rnew-method_number   = M_GET;
 instead of
 rnew-method  = r-method;
 rnew-method_number   = r-method_number;
 ? The consequence is that functions like negotiation
 sub_req = ap_sub_req_lookup_file(dirent.name, r, NULL);
 check auth on the wrong method. You can check this by POSTing to
 foo and having a limit on POST for foo.php3 (as opposed to the
 whole directory). A quick way to check is to set a breakpoint in
 ap_set_sub_req_protocol and
   telnet localhost 80
   POST /Overview HTTP/1.0
   Content-Length: 5
   
   abcd
 Any calls to the auth modules will have a method of GET despite
 the POST action they will eventually execute.
 
 All auth modules and the like could check for this:
   int method = r-main ? r-main-method_number : r-method_number;
 but it seems better to have the sub request default to the method
 of the request that inspired it. There may be some modules that
 may count on the default behavior, like mod_include, but I think
 they should specifically make the new method be a GET as they are
 not duplicating the parent request's behaviour.
 
 -- 
 -eric
 
 ([EMAIL PROTECTED])
 Feel free to forward this message to any list for any purpose other than
 email address distribution.

-- 
Greg Stein, http://www.lyra.org/



Re: cvs commit: apache-1.3/src/modules/standard mod_rewrite.h

2001-09-05 Thread Jim Jagielski

 
  I don't like the feature of selecting a default mechanism if the
  AcceptMutex foo directive is invalid.  I think the admin should get
  the same feedback she'd get if she miscoded anything else.  I'm not
  accustomed to Apache continuing to initialize if a directive is
  miscoded.
 
 
 Yea, I think I agree.
 

Easy to change...

The switch to default *is* logged, however...


-- 
===
   Jim Jagielski   [|]   [EMAIL PROTECTED]   [|]   http://www.jaguNET.com/
  A society that will trade a little liberty for a little order
   will lose both and deserve neither



Re: zlib inclusion and mod_gz(ip) recap

2001-09-05 Thread Greg Stein

On Wed, Sep 05, 2001 at 03:56:32AM -0400, [EMAIL PROTECTED] wrote:
 Greg Stein wrote...
...
   As stated elsewhere, pcre and expat are in there because they aren't
   typically available, like zlib is.
 
 Ah... so that's the criteria? Ok.

Generally, yes. But size matters :-)  OpenSSL 0.9.6 isn't commonly
installed, but it is too big for us to include. (not to mention the general
crypto issues)

 I believe the other libs you mention have been 'tweaked' 
 and that's another reason why the source is there, yes?

We try to avoid it. Speaking for Expat, any differnces from Expat's CVS is
simply because I haven't done the cross-patching needed yet.

 What if you ever need to 'tweak' ZLIB because it was never
 really designed to be a real-time data compression engine? 
 Would that remove the 'no ZLIB source' dictum?

It certainly could, yes.

   Nothing needs to happen, so it shouldn't be surprising :-). If/when we need
   it, then we will include it. As I said, it is just config macros.
 
 You are putting an awful lot of faith in ZLIB and the assumption that it
 will suit your needs 'out of the box' but I hear ya...

Until I learn differently, I'll trust that all the other zillions of zlib
users have ironed out the problems. At this point, I have no concrete
evidence that problems exist in zlib; just some FUD :-)

   There are three options on the table:
   
   1) include mod_gzip
   2) include mod_gz
   3) include neither
   
   I believe there is consensus that (3) is not an option. 
 
 Huh?
 
 I didn't see any real consensus on that.
 Only a real vote will tell you that.

We don't always need votes to get a general feeling of people's thoughts on
various issues.

 Why note call for one?... not a vote on any particular piece of code

Because we don't need to. General consensus is supportive. We'll continue on
the assumption that *something* will go in, until somebody actually gets up
and vetoes it. But that probably wouldn't happen until we've selected mod_gz
or mod_gzip for what goes into Apache.

...
 Ryan himself said he prefers 3 right off the bat when Jerry
 said 'Let's dump Ian's mod_gz into the core!' which is what
 started this whole entire thread.

Ask him what he thinks now :-)  Knowing Ryan, he is probably fine with
adding it at this point.

...
 No one ( including myself ) has made any kind of airtight case

There is very little that goes into Apache nowadays that has an airtight
case. A general feeling of consensus implies we don't need it.

...
  Despite yours and
  Peters pushing and stressing and overbearing sell job to get mod_gz(ip)
  type functionality into the core, it was just preaching to the choir. (well,
  okay: maybe Ryan didn't want to see it in there :-)  That sell job mostly
  served to create an air of hostility.
 
 Yea... okay... whatever... we are the 'bad guys' again for trying to
 improve your Server. Mea Culpa.

Now you're just misconstruing what I said. I talked about your *approach*.
Your intent/hope to improve Apache is welcome and appreciated. But you
consistently aggravate people with how you approach and handle discussions.

...
   But then you say to look at the 1.3 version. 
 
 What I meant was... if anyone wants to see right away if a whole bunch
 of pure 'coding style' bullshit is going to be the show stopper right off the

Coding style is never a showstopper. When it goes it, we will make it fit
the Apache coding style. Just ask Ben Laurie what some of his contributions
look like now :-)

Yes, people have complained about stuff in mod_gzip 1.x, but don't
misinterpret that as a flat out veto.

 bat then there's no need to wait for anything. As I have said 3 times now...
 it doesn't take rocket scientist to look at an existing module and imagine
 what it will STILL look like with filtering calls in it.

Of course. But people want to see mod_gzip 2.0, not the old one.

 I assure you... I did not rewrite the 1.3.x module just for 2.0. All I did
 was add the filtering calls. It was no big deal.

The post the fucker already. Just what is your problem with posting it? If
you want us to integrate it, then why not post it NOW? Please explain.

...
 I also haven't gotten an answer to my question regarding the weird comment 
 that appeared in this discussion about any module being submitted that 
 supports both 1.3.x AND 2.0 in the same code ( which the mod_gzip I have
 here certainly does ) will be rejected for that reason alone.

As with the coding style, you are conflating acceptance of a module with
things that people will want to see changed. Just because people want
changes to be made doesn't mean they are flat out reject the *entire*
module.

When it goes into source control, people will:

* adjust the coding style to match Apache
* possibly strip unnecessary debug stuff
* strip out Apache 1.3 support since the code resides in the 2.0 repository

...
 If so... then this is all a moot point. I don't have the time at the moment
 to hack up a perfectly fine module that 

Re: remaining CPU bottlenecks in 2.0

2001-09-05 Thread Greg Stein

On Tue, Sep 04, 2001 at 11:56:48PM -0500, William A. Rowe, Jr. wrote:
...
 You were discussing the possibility of parsing for !--# as a skip by 5.
 
 Consider jumping to a 4 byte alignment, truncating to char and skip by
 dwords.  E.g., you only have to test for three values, not four, and you
 can use the machine's most optimal path.  But I'd ask if strstr() isn't
 optimized on the platform, why are we reinventing it?

strstr() can't find strings that span a bucket boundary.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/



Re: Fw: Regarding lower-case HTML tags

2001-09-05 Thread Greg Marr

At 11:12 PM 09/04/2001, William A. Rowe, Jr. wrote:
   I've been using tidy, from the w3c, for a while now, to do
   pretty-reformatting of HTML documents. One of the things that 
 it does is
   lower-case HTML tags. I was wondering, in light of comments 
 made a week
   or two ago, whether it would be worthwhile to do this with 
 files in the
   docs as I a working with them?

The reason it does that is that XML is case-sensitive for tag names, 
and the HTML working group chose to use lowercase for XHTML.  Thus, 
if the pages were ever to be marked as XHTML, they'd need to be 
lowercase.

-- 
Greg Marr
[EMAIL PROTECTED]
We thought you were dead.
I was, but I'm better now. - Sheridan, The Summoning




Re: sub requests are all GETs

2001-09-05 Thread Eric Prud'hommeaux

On Wed, Sep 05, 2001 at 05:46:15AM -0700, Greg Stein wrote:
 Take a look at ap_sub_req_method_uri. That might do the trick for you.
 
 I don't think there is a similar one for files right now.

Thanks. I took a look at ap_sub_req_method_uri and am still whining:

ap_sub_req_method_uri takes a method string argument and returns a sub
req with that method. All functions that could be creating POST, PUT,
etc requests should perhaps use it like this:
  rnew = ap_sub_req_method_uri(r-method, newUri, r, somefilter)
but they don't. They all call ap_sub_req_lookup_uri wich hard codes it:
  return ap_sub_req_method_uri(GET, new_file, r, next_filter);

I haven't tested, but it seems like a number of the callers of
ap_sub_req_lookup_uri may be subject to the problem I'm addressing
in ap_sub_req_lookup_file.

The problem I'm trying to solve here is to make the ACLs on negotiated
files work out of the box. As it is, if the ACL is only on foo.php3, a
POST to foo will cause, for instance, mod_auth's check_user_access to
check the ACLs for POST on foo and later, after mod_negotiation does
its trick, check the ACLs for GET on foo.php3. If Joe user is allowed
to GET foo.php3 he can sneak around the ACLs by POSTing to foo.

I saw this problem back in 1.3 and figured I'd tackle it if it was
still around in 2.0. I think the solution proposed below will work
but I haven't checked mod_{dav,include,autoindex} to see that they
don't mean to create a sub req that truly is a GET and not whatever
the parent req was.

 On Wed, Sep 05, 2001 at 08:17:15AM -0400, Eric Prud'hommeaux wrote:
  Can anybody explain why ap_set_sub_req_protocol does
  rnew-method  = GET;
  rnew-method_number   = M_GET;
  instead of
  rnew-method  = r-method;
  rnew-method_number   = r-method_number;
  ? The consequence is that functions like negotiation
  sub_req = ap_sub_req_lookup_file(dirent.name, r, NULL);
  check auth on the wrong method. You can check this by POSTing to
  foo and having a limit on POST for foo.php3 (as opposed to the
  whole directory). A quick way to check is to set a breakpoint in
  ap_set_sub_req_protocol and
telnet localhost 80
POST /Overview HTTP/1.0
Content-Length: 5

abcd
  Any calls to the auth modules will have a method of GET despite
  the POST action they will eventually execute.
  
  All auth modules and the like could check for this:
int method = r-main ? r-main-method_number : r-method_number;
  but it seems better to have the sub request default to the method
  of the request that inspired it. There may be some modules that
  may count on the default behavior, like mod_include, but I think
  they should specifically make the new method be a GET as they are
  not duplicating the parent request's behaviour.
  
  -- 
  -eric
  
  ([EMAIL PROTECTED])
  Feel free to forward this message to any list for any purpose other than
  email address distribution.
 
 -- 
 Greg Stein, http://www.lyra.org/

-- 
-eric

([EMAIL PROTECTED])
Feel free to forward this message to any list for any purpose other than
email address distribution.



Re: zlib inclusion and mod_gz(ip) recap

2001-09-05 Thread Ryan Bloom


  Ryan himself said he prefers 3 right off the bat when Jerry
  said 'Let's dump Ian's mod_gz into the core!' which is what
  started this whole entire thread.

 Ask him what he thinks now :-)  Knowing Ryan, he is probably fine with
 adding it at this point.

Nope.  My opinion hasn't changed.  I won't veto, but I continue to think
this is a bad idea.

Ryan 

__
Ryan Bloom  [EMAIL PROTECTED]
Covalent Technologies   [EMAIL PROTECTED]
--



Re: mod_include performance update

2001-09-05 Thread Ian Holsman

On Wed, 2001-09-05 at 00:45, Eli Marmor wrote:
 Brian Pane wrote:
 
http://webperf.org/a2/v25/
 
 From that page:
 
  Tests run on the 9 of September
 
 I guess that one of the tools that Apache is using now, is Time Machine ;-)
 Or the year is 2000?  ;-)
 
doing 3 things at the same time.
;-)
  One phenomenon in the truss data looks a bit strange:
http://webperf.org/a2/v25/truss.2001_01_04
 
http://webperf.org/a2/v25/truss.2001_09_04

 This page doesn't exist.
 
 P.S. Aside from those narrow minded notes, I must say that your work
 looks impressive!
 (Is Mike Abott present anywhere?)
doubt it.


-- 
Ian Holsman  [EMAIL PROTECTED]
Performance Measurement  Analysis
CNET Networks   -   (415) 364-8608




Re: sub requests are all GETs

2001-09-05 Thread Rasmus Lerdorf

Whoa, deja vu...  I could have sworn I fixed something very similar to
this more than 5 years ago now.  In fact, here is the patch for Apache
1.2.x:

Fri Mar 1 03:01:06 1996 UTC (66 months, 1 week ago)
http://cvs.apache.org/viewcvs.cgi/apache-1.2/src/http_request.c.diff?r1=1.2r2=1.3

Not exactly the same issue, I know, but very close.

-Rasmus


On Wed, 5 Sep 2001, Eric Prud'hommeaux wrote:

 Can anybody explain why ap_set_sub_req_protocol does
 rnew-method  = GET;
 rnew-method_number   = M_GET;
 instead of
 rnew-method  = r-method;
 rnew-method_number   = r-method_number;
 ? The consequence is that functions like negotiation
 sub_req = ap_sub_req_lookup_file(dirent.name, r, NULL);
 check auth on the wrong method. You can check this by POSTing to
 foo and having a limit on POST for foo.php3 (as opposed to the
 whole directory). A quick way to check is to set a breakpoint in
 ap_set_sub_req_protocol and
   telnet localhost 80
   POST /Overview HTTP/1.0
   Content-Length: 5

   abcd
 Any calls to the auth modules will have a method of GET despite
 the POST action they will eventually execute.

 All auth modules and the like could check for this:
   int method = r-main ? r-main-method_number : r-method_number;
 but it seems better to have the sub request default to the method
 of the request that inspired it. There may be some modules that
 may count on the default behavior, like mod_include, but I think
 they should specifically make the new method be a GET as they are
 not duplicating the parent request's behaviour.






Re: cvs commit: httpd-2.0 configure.in

2001-09-05 Thread Ryan Bloom

On Wednesday 05 September 2001 09:40, [EMAIL PROTECTED] wrote:
 trawick 01/09/05 09:40:35

   Modified:.configure.in
   Log:
   on AIX we need to pass in --disable-shared to apr and apr-util
   configurations; otherwise we get goofy executable files

   obviously libtool isn't doing the right thing, but I don't know
   what that is

If you pass in --disable-shared with libtool 1.4, you will remove the ability to
create shared modules.

Ryan

__
Ryan Bloom  [EMAIL PROTECTED]
Covalent Technologies   [EMAIL PROTECTED]
--



Re: remaining CPU bottlenecks in 2.0

2001-09-05 Thread Brian Pane

Greg Stein wrote:

On Tue, Sep 04, 2001 at 11:56:48PM -0500, William A. Rowe, Jr. wrote:

...
You were discussing the possibility of parsing for !--# as a skip by 5.

Consider jumping to a 4 byte alignment, truncating to char and skip by
dwords.  E.g., you only have to test for three values, not four, and you
can use the machine's most optimal path.  But I'd ask if strstr() isn't
optimized on the platform, why are we reinventing it?


strstr() can't find strings that span a bucket boundary.

In addition, the most promising search algorithms for this problem
require a lookup table that contains metadata about the search pattern.
We can save time by precomputing the lookup table for !--# at server
startup (or even at compile time), which is something that strstr()
can't do.

--Brian






RE: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread Peter J. Cranstone

After 3-4 years we know exactly how you work.


Peter

-Original Message-
From: Rodent of Unusual Size [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, September 05, 2001 11:58 AM
To: [EMAIL PROTECTED]
Subject: Re: [PATCH] Add mod_gz to httpd-2.0


[EMAIL PROTECTED] wrote:
 
 Ian... are you a committer?
 What do you say about adding ZLIB to Apache source ASAP.
 Yea or nay?

This only demonstrates your non-understanding of how we work, and/or how
to work with us.
-- 
#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: zlib inclusion and mod_gz(ip) recap

2001-09-05 Thread Doug MacEachern

On Wed, 5 Sep 2001, Ryan Bloom wrote:

 
   Ryan himself said he prefers 3 right off the bat when Jerry
   said 'Let's dump Ian's mod_gz into the core!' which is what
   started this whole entire thread.
 
  Ask him what he thinks now :-)  Knowing Ryan, he is probably fine with
  adding it at this point.
 
 Nope.  My opinion hasn't changed.  I won't veto, but I continue to think
 this is a bad idea.

i have the same opinion, for the same reason i was stunned (and still
am) to see ldap modules in the 2.0 tree.  new modules at this point are
only going to further delay the release of 2.0, hell even discussing
adding new modules is contributing to the delay.

i do think apache should be bundled with one or the other (mod_gz or
mod_gzip), but it should wait until 2.1.  i'm pretty sure most people
(myself included), are most interested in being able to just use 2.0
feature-wise as-is and won't mind waiting until 2.1+ for new features.

we're in the 9th month of year 2001, i saw the first glimpse of a '2.0'
server in early 1996 (rob thau's), i have no problem waiting longer for
bug fixes, performance, doing things right, etc., but there is no good
reason to add new modules or big features at this point.  they should wait
for 2.1+.

fitting quote from mod_ssl.h:
 /* ``The Apache Group: a collection
  of talented individuals who are
  trying to perfect the art of
  never finishing something.''
 -- Rob Hartill */





Re: zlib inclusion and mod_gz(ip) recap

2001-09-05 Thread Graham Leggett

Doug MacEachern wrote:

 we're in the 9th month of year 2001, i saw the first glimpse of a '2.0'
 server in early 1996 (rob thau's), i have no problem waiting longer for
 bug fixes, performance, doing things right, etc., but there is no good
 reason to add new modules or big features at this point.  they should wait
 for 2.1+.

Then where is the v2.1 development tree?

v2.0 represents the latest bleeding egde server development. Until a
v2.1 development tree exists then there is no choice but to commit
things to v2.0.

Regards,
Graham
-- 
-
[EMAIL PROTECTED]There's a moon
over Bourbon Street
tonight...
 S/MIME Cryptographic Signature


Re: zlib inclusion and mod_gz(ip) recap

2001-09-05 Thread Ryan Bloom

On Wednesday 05 September 2001 11:09, Graham Leggett wrote:
 Doug MacEachern wrote:
  we're in the 9th month of year 2001, i saw the first glimpse of a '2.0'
  server in early 1996 (rob thau's), i have no problem waiting longer for
  bug fixes, performance, doing things right, etc., but there is no good
  reason to add new modules or big features at this point.  they should
  wait for 2.1+.

 Then where is the v2.1 development tree?

 v2.0 represents the latest bleeding egde server development. Until a
 v2.1 development tree exists then there is no choice but to commit
 things to v2.0.

That is bunk.  If you want to start 2.1, then just say so, and we can create
a 2.1 repository.  I would warn you that doing that means you have to keep
the two in sync, which sucks, big time.  Otherwise, just commit mod_gzip to
an external repository, and add a note to the 2.0 STATUS file that when we
go to 2.1, it should be moved to the 2.1 tree.

Ryan
__
Ryan Bloom  [EMAIL PROTECTED]
Covalent Technologies   [EMAIL PROTECTED]
--



Re: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread Rodent of Unusual Size

Peter J. Cranstone wrote:
 
 After 3-4 years we know exactly how you work.

Oh?  Then what is the explanation for Kevin publicly soliciting
an individual to do something that recent discussion has shown
the group considers moot?

Regardless of facts, it is perception that matters.  Not speaking
for anyone else, my perception of the practises in which you and
Kevin have seemingly engaged makes me personally wary and unwilling
to take anything you write at face value.  Little things, like
Kevin's post just now, and the multiplicity of 'I'm not with RC'
mail origins a couple of years ago, and the overall tenor of
your posts..

I try very hard to keep an open mind; when I committed to you to
get you a session at ApacheCon to talk about generic content
compression issue, I meant it -- but was overruled 4 to 1.
Despite my best efforts at open-mindedness, something about your
collective tactics and polemic keeps making me want to close my
mind against you.  And I suspect (but do not know) that others
have the same perception, which may have been the cause of that
4-1 vote.

Most people I take at face value -- but you seem to change positions
so much that I feel I cannot but suspect you of having a hidden
agenda.  Maybe you do not, and maybe you do -- and maybe it is
no more than trying to get RC's package into the Apache distribution
because of the marketing bulge that would give RC.  But.. maybe
it is more than that.  I cannot tell, and you have not made it
easy to tell, and I am not sure I would blindly accept it if you
did.

This is not technical, this is social and political.
-- 
#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: zlib inclusion and mod_gz(ip) recap

2001-09-05 Thread Doug MacEachern

On Wed, 5 Sep 2001, Graham Leggett wrote:
 
 v2.0 represents the latest bleeding egde server development. Until a
 v2.1 development tree exists then there is no choice but to commit
 things to v2.0.

for new modules?  no, you create a separate tree for the new module
(either on apache.org or sourceforge or your own laptop or wherever).
if the httpd-2.0 tree needs tweaking for smooth integration of a new
module, that's fine.





Re: zlib inclusion and mod_gz(ip) recap

2001-09-05 Thread Graham Leggett

Doug MacEachern wrote:

 for new modules?  no, you create a separate tree for the new module
 (either on apache.org or sourceforge or your own laptop or wherever).
 if the httpd-2.0 tree needs tweaking for smooth integration of a new
 module, that's fine.

That's wonderful news for users. No longer do they download the tarball,
build it, and enable the features they want, now they trawl the web
looking for this module and that module - assuming they even know the
modules exist in the first place.

We need to keep things simple from a user perspective, and not just
focus on keeping things simple from a developers perspective.

Regards,
Graham
-- 
-
[EMAIL PROTECTED]There's a moon
over Bourbon Street
tonight...
 S/MIME Cryptographic Signature


Coredump in mod-include (INTERNALLY generated...

2001-09-05 Thread Ian Holsman

hi.
just wondering if anyone care's for Cliff's fix to this
core dump that he posted a while back

..Ian

-- 
Ian Holsman  [EMAIL PROTECTED]
Performance Measurement  Analysis
CNET Networks   -   (415) 364-8608




Re: zlib inclusion and mod_gz(ip) recap

2001-09-05 Thread Ryan Bloom

On Wednesday 05 September 2001 11:27, Graham Leggett wrote:
 Doug MacEachern wrote:
  for new modules?  no, you create a separate tree for the new module
  (either on apache.org or sourceforge or your own laptop or wherever).
  if the httpd-2.0 tree needs tweaking for smooth integration of a new
  module, that's fine.

 That's wonderful news for users. No longer do they download the tarball,
 build it, and enable the features they want, now they trawl the web
 looking for this module and that module - assuming they even know the
 modules exist in the first place.

 We need to keep things simple from a user perspective, and not just
 focus on keeping things simple from a developers perspective.

What trawl the web?  Register the thing with modules.apache.org, and then
all users just go there.  If modules.apache.org isn't good enough, then let's
fix that problem.

Again, rolling EVERY possible module into one Apache dist is not the solution
to the module problem.  It is a band-aid to the problem.

If the only reason to include the module in the core is so that users don't have
to trawl the web, then I will veto it right now.  That is NOT a valid reason to 
include the module in the core IMNSHO.

Ryan
__
Ryan Bloom  [EMAIL PROTECTED]
Covalent Technologies   [EMAIL PROTECTED]
--



Re: Coredump in mod-include (INTERNALLY generated...

2001-09-05 Thread Justin Erenkrantz

On Wed, Sep 05, 2001 at 11:28:59AM -0700, Ian Holsman wrote:
 hi.
 just wondering if anyone care's for Cliff's fix to this
 core dump that he posted a while back

I think OtherBill said he was going to fix this the right way.
I forget what the right way is.

I think he's in an airplane now, so I dunno what his timetable is.
-- justin




Re: Coredump in mod-include (INTERNALLY generated...

2001-09-05 Thread Cliff Woolley

On 5 Sep 2001, Ian Holsman wrote:

 hi.
 just wondering if anyone care's for Cliff's fix to this
 core dump that he posted a while back

I never even convinced _myself_ that it was the Right Way, since the whole
purpose of the INTERNALLY GENERATED FUBAR r-uri is that there might not
even be a uri for the file if it's in a different directory.  That part
makes sense.  You can mask the behavior with my patch, and sometimes it
works, but I'm willing to bet that if you gave it a file with no valid URI
that it'd puke.  My patch only fixes (works around) the cases *I've*
thought up, which isn't very many.  =-)

I have no idea what the Right Way is.

--Cliff

--
   Cliff Woolley
   [EMAIL PROTECTED]
   Charlottesville, VA





Re: sub requests are all GETs

2001-09-05 Thread Rodent of Unusual Size

Eric Prud'hommeaux wrote:
 
 Can anybody suggest a reason that sub request methods would _not_
 default to the parent requests method?

Well, consider the situation of the parent request using POST.
When you constructed your subrequest you would need to also
provide an entity-body or explicitly set Content-length to zero.
I suspect one of the original arguments may have been that GET
and HEAD are defined as idempotent and therefore essentially
repeatable and transparent to the effect of the original request.
-- 
#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: mod_include performance update

2001-09-05 Thread Brian Pane

Bill Stoddard wrote:

One phenomenon in the truss data looks a bit strange:
  http://webperf.org/a2/v25/truss.2001_01_04

The server appears to be logging the request (the write to file descriptor
4) before closing its connection to the client (the shutdown that
follows the
write).  For a non-keepalive request, shouldn't it do the shutdown first?


Nah, what you are seeing is normal.  The socket is shutdown and closed during the 
call to
ap_lingering_close in the MPMs. That's the way it should work.

That sounds like a bug to me.  The client shouldn't have to wait for
the logger to run before the request completes.

--Brian





Re: [PATCH] Round 2 of mod_include/find_start_sequence...

2001-09-05 Thread Ian Holsman

On Wed, 2001-09-05 at 12:10, Rasmus Lerdorf wrote:
 On Wed, 5 Sep 2001, Justin Erenkrantz wrote:
 
  Replaced Rabin-Karp with the bndm algorithm as implemented by
  Sascha.  Seems to work.
 
i'll crank up the benchmark boxes I used to test the other versions with

.. I'll have an answer to that in ~1 hour
 Is it faster?
-- 
Ian Holsman  [EMAIL PROTECTED]
Performance Measurement  Analysis
CNET Networks   -   (415) 364-8608




Re: [PATCH] Round 2 of mod_include/find_start_sequence...

2001-09-05 Thread Brian Pane

Rasmus Lerdorf wrote:

On Wed, 5 Sep 2001, Justin Erenkrantz wrote:

Replaced Rabin-Karp with the bndm algorithm as implemented by
Sascha.  Seems to work.


Is it faster?

I just tried this patch, and I'm seeing a 10% throughput improvement on 
Linux
in some lightweight testing, compared to the original find_start_sequence.

--Brian





Re: mod_include performance update

2001-09-05 Thread Bill Stoddard



 Bill Stoddard wrote:

 One phenomenon in the truss data looks a bit strange:
   http://webperf.org/a2/v25/truss.2001_01_04
 
 The server appears to be logging the request (the write to file descriptor
 4) before closing its connection to the client (the shutdown that
 follows the
 write).  For a non-keepalive request, shouldn't it do the shutdown first?
 
 
 Nah, what you are seeing is normal.  The socket is shutdown and closed during the 
call
to
 ap_lingering_close in the MPMs. That's the way it should work.
 
 That sounds like a bug to me.  The client shouldn't have to wait for
 the logger to run before the request completes.


You may not like the design, but it's not a bug.

Keep in mind, completing the HTTP request is not the same thing as closing the socket.
Making the client wait an extra couple of millisconds for the server to close the 
socket
is a non-issue. Not flushing our output buffers before logging... now that would be a 
bug.

Bill




RE: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread Peter J. Cranstone

I suppose the only thing we can do is contribute. Kevin has, mod_gzip
was released under an ASF license which was approved by the ASF Board.
If there is a hidden agenda there then you're better than I at spotting
it.

Mod_gzip is available for 1.3.x

It will be available for 2.x when you hit beta.

It will contain the same license as before.

There are no patents, TM's or anything else associated with it.

We will continue to support both versions.

Now tell me where the hidden agenda is. 

If it's not technical, then it's social (you just plain don't like us...
Not a problem) or political (the powers that be don't like us... Again
not a problem)

From a political standpoint I'm pissed that Covalent Technologies can
cut a deal with Compaq for the new Compaq Apache server (wonder if it
will ship with or without compression (details are tough to find on this
whole deal). But you know what, more power to Ryan and his crew for
doing something like that. Did I ever see a vote for something like
that, no... I even checked the ASF minutes... Nothing since February.
Whatever.

This whole conversation is mute, include, exclude, revoke whatever,
mod_gzip will always be available from Kevin and I and we will support
it.

If you don't include it, all it means is another click to our website.

Later...


Peter



-Original Message-
From: Rodent of Unusual Size [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, September 05, 2001 12:20 PM
To: [EMAIL PROTECTED]
Subject: Re: [PATCH] Add mod_gz to httpd-2.0


Peter J. Cranstone wrote:
 
 After 3-4 years we know exactly how you work.

Oh?  Then what is the explanation for Kevin publicly soliciting an
individual to do something that recent discussion has shown the group
considers moot?

Regardless of facts, it is perception that matters.  Not speaking for
anyone else, my perception of the practises in which you and Kevin have
seemingly engaged makes me personally wary and unwilling to take
anything you write at face value.  Little things, like Kevin's post just
now, and the multiplicity of 'I'm not with RC' mail origins a couple of
years ago, and the overall tenor of your posts..

I try very hard to keep an open mind; when I committed to you to get you
a session at ApacheCon to talk about generic content compression issue,
I meant it -- but was overruled 4 to 1. Despite my best efforts at
open-mindedness, something about your collective tactics and polemic
keeps making me want to close my mind against you.  And I suspect (but
do not know) that others have the same perception, which may have been
the cause of that 4-1 vote.

Most people I take at face value -- but you seem to change positions so
much that I feel I cannot but suspect you of having a hidden agenda.
Maybe you do not, and maybe you do -- and maybe it is no more than
trying to get RC's package into the Apache distribution because of the
marketing bulge that would give RC.  But.. maybe it is more than that.
I cannot tell, and you have not made it easy to tell, and I am not sure
I would blindly accept it if you did.

This is not technical, this is social and political.
-- 
#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: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread Ryan Bloom


I really should just ignore this.  But oh well

 From a political standpoint I'm pissed that Covalent Technologies can
 cut a deal with Compaq for the new Compaq Apache server (wonder if it
 will ship with or without compression (details are tough to find on this
 whole deal). But you know what, more power to Ryan and his crew for
 doing something like that. Did I ever see a vote for something like
 that, no... I even checked the ASF minutes... Nothing since February.
 Whatever.

a)  This is not Ryan and his crew.  I am an engineering manager at Covalent.
I have 0 control over partnerships and the like.

b)  Why does this deal piss you off?  Covalent and Compaq are partnering to
promote the use of Apache and Compaq hardware with Linux in the 
marketplace.  They were looking for an company to partner with to help, and for
Apache that was us.

c)  Right now, the solution does not include compression at all.  That may
change in the future, but I don't know of any plans along those lines.

d)  This has nothing to do with the ASF, so the ASF wasn't involved.  Covalent
sells a version of Apache (with only EAPI patches applied), and proprietary 
modules.  We do not need to check with the ASF to partner with a company that
wants our help to do the same basic thing.  If RemoteCommunications wants to
sell Apache, feel free, you don't need ASF permission to do so.  You do need
to follow the license, which Covalent does.

Ryan

__
Ryan Bloom  [EMAIL PROTECTED]
Covalent Technologies   [EMAIL PROTECTED]
--



Re: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread Thomas Eibner

Okay, I'll bite.

On Wed, Sep 05, 2001 at 01:46:55PM -0600, Peter J. Cranstone wrote:
[Snip: nothing that hasn't been said in this thread before]

 If it's not technical, then it's social (you just plain don't like us...
 Not a problem) or political (the powers that be don't like us... Again
 not a problem)
 
 From a political standpoint I'm pissed that Covalent Technologies can
 cut a deal with Compaq for the new Compaq Apache server (wonder if it
 will ship with or without compression (details are tough to find on this
 whole deal). But you know what, more power to Ryan and his crew for
 doing something like that. Did I ever see a vote for something like
 that, no... I even checked the ASF minutes... Nothing since February.
 Whatever.

Why are you dragging this into the discussion? I can't see that it has
anything to do with it. Anyone else seeing this as a bad thing for 
Apache?

I don't see why they shouldn't be allowed to do this, anyone should be
able to do this, even your company. But do you have the expertise?

Looking at the License of Apache it doesn't make it sound like they
wouldn't be able to do so, as long as they state like written in the
license: This product includes software developed by the Apache Group
for use in the Apache HTTP server project (http://www.apache.org/).
Which I am quite sure they will, Covalent will probably use every chance
they get to promote Apache.

The reason why there might not be more information on this deal than
what Covalents website gives[1] might be that the rest is to be worked
out?

When I heard this I was kind of happy for Apache, 'cause it can only be
a good thing if Covalent gets a deal like this. More money, more likely
that Ryan, Randy, Dough, William, etc. will keep up their very good work
on Apache.

my $cent = 2;

[1] http://www.covalent.net/company/press/news-20010828.php

-- 
  Thomas Eibner



RE: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread Peter J. Cranstone

Guys,

Conversation is over. I have nothing more to add. This whole
conversation is degenerating into meaningless nonsense. 

Someone else can carry the thread.


Peter

-Original Message-
From: Thomas Eibner [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, September 05, 2001 2:21 PM
To: [EMAIL PROTECTED]
Subject: Re: [PATCH] Add mod_gz to httpd-2.0


Okay, I'll bite.

On Wed, Sep 05, 2001 at 01:46:55PM -0600, Peter J. Cranstone wrote:
[Snip: nothing that hasn't been said in this thread before]

 If it's not technical, then it's social (you just plain don't like 
 us... Not a problem) or political (the powers that be don't like us...

 Again not a problem)
 
 From a political standpoint I'm pissed that Covalent Technologies can
 cut a deal with Compaq for the new Compaq Apache server (wonder if it 
 will ship with or without compression (details are tough to find on 
 this whole deal). But you know what, more power to Ryan and his crew 
 for doing something like that. Did I ever see a vote for something 
 like that, no... I even checked the ASF minutes... Nothing since 
 February. Whatever.

Why are you dragging this into the discussion? I can't see that it has
anything to do with it. Anyone else seeing this as a bad thing for 
Apache?

I don't see why they shouldn't be allowed to do this, anyone should be
able to do this, even your company. But do you have the expertise?

Looking at the License of Apache it doesn't make it sound like they
wouldn't be able to do so, as long as they state like written in the
license: This product includes software developed by the Apache Group
for use in the Apache HTTP server project (http://www.apache.org/).
Which I am quite sure they will, Covalent will probably use every chance
they get to promote Apache.

The reason why there might not be more information on this deal than
what Covalents website gives[1] might be that the rest is to be worked
out?

When I heard this I was kind of happy for Apache, 'cause it can only be
a good thing if Covalent gets a deal like this. More money, more likely
that Ryan, Randy, Dough, William, etc. will keep up their very good work
on Apache.

my $cent = 2;

[1] http://www.covalent.net/company/press/news-20010828.php

-- 
  Thomas Eibner




Re: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread Ryan Bloom


  From a political standpoint I'm pissed that Covalent
  Technologies can cut a deal with Compaq for the new
  Compaq Apache server (wonder if it will ship with or
  without compression (details are tough to find on this
  whole deal).

 This is news to me, and certainly no permission has been
 given to either Compaq nor Covalent to call anything a
 'Compaq Apache server.'  I am on the ASF board and I
 can tell you this has not come before us.

I should point out that AFAIK, Compaq Apache server is not a
product name that I have ever heard before.  A quick look at
Compaq's web site also does not come up with that name anywhere.

If somebody does find that name as a product anyplace, please
let me know ASAP.  However, Covalent knows very well what we
can and can not call products, so I can't imagine that we would
use that name.

Ryan
__
Ryan Bloom  [EMAIL PROTECTED]
Covalent Technologies   [EMAIL PROTECTED]
--



Re: Lost connection

2001-09-05 Thread Rodent of Unusual Size

Daniel Abad wrote:
 
 In my apache server, when I start it, I lost the connection with the
 network.

This is not the best place for this sort of question.  I recommend
the [EMAIL PROTECTED] mailing list.
-- 
#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: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread Peter J. Cranstone

 If somebody does find that name as a product anyplace, please let me
know ASAP.

It was on a recent CNET release:
http://news.cnet.com/news/0-1003-200-6963955.html

 Compaq Computer has signed a deal with Covalent Technology to jointly
develop and market Covalent's Apache Web server software, the companies
plan to announce Monday. 


-Original Message-
From: Ryan Bloom [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, September 05, 2001 2:27 PM
To: [EMAIL PROTECTED]; Rodent of Unusual Size
Subject: Re: [PATCH] Add mod_gz to httpd-2.0



  From a political standpoint I'm pissed that Covalent Technologies 
  can cut a deal with Compaq for the new Compaq Apache server (wonder 
  if it will ship with or without compression (details are tough to 
  find on this whole deal).

 This is news to me, and certainly no permission has been given to 
 either Compaq nor Covalent to call anything a 'Compaq Apache server.'

 I am on the ASF board and I can tell you this has not come before us.

I should point out that AFAIK, Compaq Apache server is not a product
name that I have ever heard before.  A quick look at Compaq's web site
also does not come up with that name anywhere.

If somebody does find that name as a product anyplace, please let me
know ASAP.  However, Covalent knows very well what we can and can not
call products, so I can't imagine that we would use that name.

Ryan __
Ryan Bloom  [EMAIL PROTECTED]
Covalent Technologies   [EMAIL PROTECTED]
--



Re: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread Rodent of Unusual Size

Peter J. Cranstone wrote:
 
 Conversation is over. I have nothing more to add. This whole
 conversation is degenerating into meaningless nonsense.
 
 Someone else can carry the thread.

This clever technique of ducking out of the conversation rather
than answering pointed questions is just *so* endearing, Peter.
And it is one of the tactics to which I alluded earlier as
making me wary of your motives.  You bring something up, we
question you about it, you say the conversation is meaningless.
You made remarks, statements, and allegations -- stand up to
them.

As for 'nothing more to add' -- well, you could add the answers
to the questions you have been asked..

But you do have one thing partly right, IMO -- trying to converse
with you seems to frequently be an exercise in futility.  That
is a social issue, and if the rest of the group cannot have
a reasonable conversation with a module developer, no technical
merit of the module is going to overcome the irritation and
frustration the rest of the group is going to experience if
it gets included.

So, in short, if you have any interest in mod_gzip being included,
stop behaving like an ass and *converse*.  'Conversation over,'
forsooth!
-- 
#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: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread Peter J. Cranstone

Ken,

Kiss my ass... I have work to do. You want to continue the conversation
take it off line you know where I am.


Peter

-Original Message-
From: Rodent of Unusual Size [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, September 05, 2001 2:42 PM
To: [EMAIL PROTECTED]
Subject: Re: [PATCH] Add mod_gz to httpd-2.0


Peter J. Cranstone wrote:
 
 Conversation is over. I have nothing more to add. This whole 
 conversation is degenerating into meaningless nonsense.
 
 Someone else can carry the thread.

This clever technique of ducking out of the conversation rather than
answering pointed questions is just *so* endearing, Peter. And it is one
of the tactics to which I alluded earlier as making me wary of your
motives.  You bring something up, we question you about it, you say the
conversation is meaningless. You made remarks, statements, and
allegations -- stand up to them.

As for 'nothing more to add' -- well, you could add the answers to the
questions you have been asked..

But you do have one thing partly right, IMO -- trying to converse with
you seems to frequently be an exercise in futility.  That is a social
issue, and if the rest of the group cannot have a reasonable
conversation with a module developer, no technical merit of the module
is going to overcome the irritation and frustration the rest of the
group is going to experience if it gets included.

So, in short, if you have any interest in mod_gzip being included, stop
behaving like an ass and *converse*.  'Conversation over,' forsooth!
-- 
#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: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread Rodent of Unusual Size

Peter J. Cranstone wrote:
 
 It was on a recent CNET release:
 http://news.cnet.com/news/0-1003-200-6963955.html
 
  Compaq Computer has signed a deal with Covalent Technology
 to jointly develop and market Covalent's Apache Web server
 software, the companies plan to announce Monday. 

Thank you for the reference.  Yes, that is phrased ambiguously;
it can either be taken as Covalent owning Apache, or Covalent's
software *for* Apache.  I expect Ryan will have someone contact
C!NET about it.
-- 
#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: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread Rodent of Unusual Size

Peter J. Cranstone wrote:
 
 Kiss my ass...

And now to the invective.

 I have work to do.

Which apparently does not include answering questions about
your previous posts.  Well, you did answer one of the ones
about the 'Compaq Apache Server' thing, so thanks for that.

 You want to continue the conversation
 take it off line you know where I am.

No, thanks.  I have nothing to hide, so I will keep my remarks
and responses right here in the public eye.  If you have
something you want to say privately, you can send to *me* offline,
and I will keep it private.

You know, you are showing a definite talent for moving me from
'wary' to 'hostile.'
-- 
#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: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread TOKILEY


In a message dated 01-09-05 14:16:59 EDT, Marc Slemko wrote...

 This is not technical, this is social and political.

Then keep it off the forum... you fucking didactic self-righteous asshole.
When was the last fucking time you posted anything useful?

Send your 'social and political' commentary to us privately.
You know where we are.

Yours...
Kevin Kiley

BTW: Seen the latest press release regarding Covalent and Compaq?
Any comments for those boys?



Re: zlib inclusion and mod_gz(ip) recap

2001-09-05 Thread TOKILEY

In a message dated 01-09-05 14:28:29 EDT, you write:

 That's wonderful news for users. No longer do they download the tarball,
  build it, and enable the features they want, now they trawl the web
  looking for this module and that module - assuming they even know the
  modules exist in the first place.

That's the way it's always been.
Your users are used to it.

Every tried to install mod_ssl for 1.3.x?

They will kiss your foot once you simply make sure they
don't have to go through that bullshit anymore. Anything
else is icing on the cake.
  
  We need to keep things simple from a user perspective, and not just
  focus on keeping things simple from a developers perspective.

The I suggest you only assault them with multithreading and
filtering on a first go-around with your ( 5 years in the making )
new release.

Those 2 alone are going to be hard enough for them to get
configured correctly. 

Heck... there aren't even a whole lotta developers on the forum
that know how to set up the filtering right yet.

Yours...
Kevin Kiley



Re: zlib inclusion and mod_gz(ip) recap

2001-09-05 Thread TOKILEY


In a message dated 01-09-05 14:44:54 EDT, Marc Selmko wrote...

  And your motives are entirely altruistic?  Why do I have
  problems with that?  See, if you were going about this right
  it would not be RC versus AG, it would be 'us'.

See previous message reagrding 'didactic self-righteous asshole'.

Also see previous message regarding any comment about
recent Covalent/Compaq deal and/or similar deals going on
right under your motive-sniffing nose.

None of us have to ever come here at all. ( See... I used US...
that means EVERYONE... happy now? ).
The pay is too low.

If we ever show our faces here at all it's because we
want to be here.

Yours...
Kevin Kiley





Re: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread TOKILEY


In a message dated 01-09-05 14:16:59 EDT, Marc wrote...

  After 3-4 years we know exactly how you work.
  
  Oh?  Then what is the explanation for Kevin publicly soliciting
  an individual to do something that recent discussion has shown
  the group considers moot?

I asked him what he 'thought', asshole.

Are you seriously telling me you think I can't come onto this PUBLIC
forum for a non-profit organization and ask someone what
their opinon is?

Give me a fucking break.

Yours...
Kevin Kiley
  



Re: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread TOKILEY

In a message dated 01-09-05 16:14:01 EDT, you write:

 This is news to me, and certainly no permission has been
  given to either Compaq nor Covalent to call anything a
  'Compaq Apache server.'  I am on the ASF board and I
  can tell you this has not come before us.

Actually... it's called the 'Covalent Apache Web Server'.
There isn't anything in your board meeting minutes that
authorizes that, either.

Not complaining... just pointing out a fact.
I am with Peter on this. More power to them.

Randy Terbrush hasn't appeared here for awhile but there
is no question he should benefit financially from his early
work with Apache. Ryan and Dirk and Harrie and Doug and 
Daniel and Jon and Bill Wrowe ( others?... Apache contibutors
all ) deserve the same. I hope they all get to buy their own
private island following the recent Compaq deal the timing of
which was perfect since the valuation of the jsut announced
Compaq and Hewlett-Packet merger is in the neighborhood
of 25 BILLION ( With a B ) dollars.

Again... more power to all.
Randy and William Rowe alone have busted their ASSES
trying to give you 2.0. I hope they both get private jets
out of the deal.

Later...
Kevin Kiley



Re: zlib inclusion and mod_gz(ip) recap

2001-09-05 Thread Graham Leggett

[EMAIL PROTECTED] wrote:

 That's the way it's always been.
 Your users are used to it.

What do you mean your users? *I* am a user, and complex configuration
pisses *me* off.

I am also a webmaster, and have had to put up with the Apache + mm +
mod_ssl + auth_ldap + mod_perl nonsense for ages. I expect v2.0 as a new
generation of software to be significantly easier to handle than v1.3
was.

Regards,
Graham
-- 
-
[EMAIL PROTECTED]There's a moon
over Bourbon Street
tonight...
 S/MIME Cryptographic Signature


Re: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread Rodent of Unusual Size

[EMAIL PROTECTED] wrote:
 
 In a message dated 01-09-05 14:16:59 EDT, Marc Slemko wrote...
 
  This is not technical, this is social and political.
 
 Then keep it off the forum... you fucking didactic
 self-righteous asshole.

As I said, invective time.  As I also said, except to Peter
alone, you are showing a definite talent for changing my
opinion toward RC from 'wary' to 'hostile.'  I guess you are
now included..

Sorry to disappoint you, but it *belongs* in this forum.  Whether
the group as a whole can get along with you, or cannot, is
extremely relevant.

 When was the last fucking time you posted anything useful?

'What have you done for me lately', eh?  And the relevance is..?
I have been busy with ApacheCon, so I guess I am not entitled
to have an opinion on technical matters any more?  Or on
how the project operates?

 Send your 'social and political' commentary to us privately.
 You know where we are.

That would be pointless, since I would only be expressing my
own opinions and you would be the only ones to tell me I
was wrong (if I were, and I may be).  Stalemate.  Here everyone
has a chance to comment.

I have been willing to cut you guys slack from the beginning,
but that ends now.  Get along with the people here, or go away.
That is my opinion.

 BTW: Seen the latest press release regarding Covalent and Compaq?
 Any comments for those boys?

Yep; read my other replies in this thread.
-- 
#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: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread Rodent of Unusual Size

[EMAIL PROTECTED] wrote:
 
 In a message dated 01-09-05 16:14:01 EDT, you write:
 
  This is news to me, and certainly no permission has been
   given to either Compaq nor Covalent to call anything a
   'Compaq Apache server.'  I am on the ASF board and I
   can tell you this has not come before us.
 
 Actually... it's called the 'Covalent Apache Web Server'.
 There isn't anything in your board meeting minutes that
 authorizes that, either.

If it says that anywhere on the product, or on Covalent's
or Compaq's sites, then the board will ask that it be changed.
However, if you are basing this solely on the C!NET article,
I do not think that it authoritative enough to warrant any
action at all; asking C!NET to clarify would not accomplish
much.  I do not think that either Covalent or Compaq are
using that name, however, and it is a non-issue if they are not.

I see Randy has already responded.
-- 
#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: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread Charles Randall

From: Peter J. Cranstone [mailto:[EMAIL PROTECTED]]
Kiss my ass...

*delurk*

That'll motivate three +1's for mod_gz real quick. :^)

(No need for anyone to reply. Just cluttering the list with sophomoric
humor.)

-Charels




Re: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread Rodent of Unusual Size

[EMAIL PROTECTED] wrote:
 
 Do you moonlight as a preacher or something?

Nope.

 Do you judge everyone around you like this?

Considering that it was an observation rather than a judgement,
I suppose I can say that yes, I make observations like that
all the time.

 If you want to 'converse' with Peter then book a flight
 to Denver. This is EMAIL. No one can ever say all
 they want to or exepct anyone to ever read it all.
 It's like 100 different pen-pal sessions going on at the
 same time.

Somehow the rest of us manage to communicate fairly well,
though.  Of course, sometimes we have to have face-to-face
meetings to clear up misunderstandings. :-)  And when someone
is asked a question, he generally answers, or at least does
not take offense when asked repeatedly.

 I've been reading this forum for 4 years and I certainly
 don't pretend that anyone here is 'my friend'.

Well, I think I am not alone in observing that some of the
people here *are* 'my friends.'  Why does it work for me
(and possibly others) and not you?

 This is business.

Peter made some statements and refused to clarify when
asked.  Sorry, but if that is business it doesn't sound
like *good* business to me.  But that is just my opinion,
and possibly worthless if it works for RC elsewhere.

It may be business to RC, but I think it probably is *not*
business for a lot of other people here.  Which might be the
basis for some of the disconnects.
-- 
#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: zlib inclusion and mod_gz(ip) recap

2001-09-05 Thread TOKILEY

In a message dated 01-09-05 17:29:58 EDT, you write:

 True enough for everyone.  (Except any who might be here as
  a job assignment.)  The question I asked was, 'Why do you
  want to be here?'  An answer of 'none of your business' is
  perfectly acceptable (though probably not constructive), and
  certainly preferable to pointless insults that do not address
  the question.

Mr... I don't owe you or anyone else any fucking explanations
for why I choose to contribute to a public domain software project.

Get off your pulpit.

No one here is asking to be my 'friend' nor am I asking for 
the same in return.

You guys want my code... and you will probably get it even after
all this bullshit from bored guys like you sitting in a cubicle 
somewhere.

Code talks... bullshit walks. That's always been the Apache
way... am I right? mod_gzip for Apache 1.3.x kicks ass and
so will the 2.0 version. It is a HUGE benefit to a lot of working
stiffs out there and in the current economic climate we have
'thank you' emails from poor slobs all over the world whose
bandwidth is now cut in half and they can survive without
having to pay telco bills they can't afford.

Yours...
Kevin Kiley



Re: [PATCH] Add mod_gz to httpd-2.0

2001-09-05 Thread TOKILEY

In a message dated 01-09-05 17:43:30 EDT, you write:

 From: Peter J. Cranstone [mailto:[EMAIL PROTECTED]]
  Kiss my ass...
  
  *delurk*
  
  That'll motivate three +1's for mod_gz real quick. :^)
  
  (No need for anyone to reply. Just cluttering the list with sophomoric
  humor.)
  
  -Charels

No problem, Charels...

This all just reminds me of some tense board meeting
and someone finally cracks a joke and the room breaks
out laughing. People are getting some things off their
chest here and that's a good thing.

It'll be back to business soon enough.

Later...
Kevin



Re: zlib inclusion and mod_gz(ip) recap

2001-09-05 Thread Rodent of Unusual Size

[EMAIL PROTECTED] wrote:
 
 Mr... I don't owe you or anyone else any fucking explanations
 for why I choose to contribute to a public domain software project.

True enough; thanks for answering the question.  I was actually
asking abour RC, but forget it.

 Get off your pulpit.

How about a swap?  Take the chip off your shoulder.

 You guys want my code...

That is not decided.  If we do want the code, it is probably
with you or someone else from RC along to maintain it.
-- 
#kenP-)}

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

All right everyone!  Step away from the glowing hamburger!



Covalent Apache Web Server

2001-09-05 Thread TOKILEY


 In a message dated 01-09-05 16:14:01 EDT, Kevin Kiley wrote...
  
   This is news to me, and certainly no permission has been
given to either Compaq nor Covalent to call anything a
'Compaq Apache server.'  I am on the ASF board and I
can tell you this has not come before us.
  
  Actually... it's called the 'Covalent Apache Web Server'.
  There isn't anything in your board meeting minutes that
  authorizes that, either.
  
  Not complaining... just pointing out a fact.
  I am with Peter on this. More power to them.
  
  Randy Terbrush hasn't appeared here for awhile but there
  is no question he should benefit financially from his early
  work with Apache. Ryan and Dirk and Harrie and Doug and 
  Daniel and Jon and Bill Wrowe ( others?... Apache contibutors
  all ) deserve the same. I hope they all get to buy their own
  private island following the recent Compaq deal the timing of
  which was perfect since the valuation of the jsut announced
  Compaq and Hewlett-Packet merger is in the neighborhood
  of 25 BILLION ( With a B ) dollars.
  
  Again... more power to all.
  Randy and William Rowe alone have busted their ASSES
  trying to give you 2.0. I hope they both get private jets
  out of the deal.
  
  Later...
  Kevin Kiley

Errata...

Sorry about that... what I meant to say was...

  Ryan Bloom and William Rowe alone have busted their ASSES
  trying to give you 2.0. I hope they both get private jets
  out of the deal.

I am sure Randy Terbrush ( founder and CTO of Covalent ) has
worked JUST as hard as anyone else to make Covalent what
it is today and secure the Compaq deal and to forward the 
progress of Apache 2.0 but I specifically meant
to mention 'Ryan and William'.

Yours...
Kevin







Re: [PATCH] Round 2 of mod_include/find_start_sequence...

2001-09-05 Thread Justin Erenkrantz

[ Bringing this back on-list where it belongs... ]

On Wed, Sep 05, 2001 at 03:37:42PM -0700, Brian Pane wrote:
 Ian Holsman wrote:
 
 On Wed, 2001-09-05 at 15:20, Brian Pane wrote:
 
 Ian Holsman wrote:
 
 Ok..
 test is in there now...
 with justin's patch.
 I haven't tested the functionality of it, but the performance looks
 good.
 
 Yes indeed.  Any idea how this code compares to your skip-5 implementation?
 
 * looks much neater.
 * just optimizes the 'start_tag', which make it's life easier.
 * does the same kind of thing as the skip-5
 * the edge case is handled the 'slow' way..which is good, as it gets
   around most of the buggy crap I had in my stuff
 
 * why is it compiling the pattern inside of the 'find_start_sequence'
 this could be done 'postconfig' or in 'child_init'

I'm lazy?  I'll clean it up and post it once more to the list to give
people a chance to review before I commit.  This is a pretty big
change, but I think we're going in the right direction though.

 otherwise
 +1

Coolie.  (Although your vote isn't binding, it is valuable feedback.)

[ Brian's comments ]

 Sounds good.  Two concerns:
 
 * Should we run it through Quantify?  (As good as the reduction in
   usr CPU in the graphs is, I'm slightly surprised that it's not even
   better.)

I'll wait until we have some Quantify numbers to ensure that this is
a better performing algorithm.  This is also with Sascha's hacked
up implementation of bndm.  Someone who knows the bndm algorithm 
well should verify it.  (It looks like it works from everything I
can tell...)

 * We seem to have hit a wall at ~250 requests/second in the mstone
   environment with includes, ~300 without.  I'm worried that there
   may be another bottleneck somewhere else in the server.  (But figuring
   that out needn't get in the way of Justin's patch.)

Be curious to see why.  I wonder if the time is still spent in
find_start_sequence now.  Ideally, as we uncover bottlenecks,
we should just find more.  We keep going until we find no more.  =)
-- justin




Re: zlib inclusion and mod_gz(ip) recap

2001-09-05 Thread TOKILEY


Hello all...

Due to comments made in a private email to 
myself and my company from one of your top level
board members this is to inform everyone that we
can stop this nonsense right now because there
will BE no submission of mod_gzip for Apache 2.0
to this group.

It shall remain a ( fully supported ) 3rd party module
and will be released, as we have said from day one,
the moment this group has enough confidence in
their own product to release it.

It only takes one veto to stop the inclusion and it
has been expressed.

You can go ahead and drop mod_gz in right now.
It's all you've got.

Later...
Kevin



There will be no mod_gzip included in 2.0

2001-09-05 Thread TOKILEY


Hello all...

Due to comments made in a private email to 
myself and my company from one of your top level
board members this is to inform everyone that we
can stop this nonsense right now because there
will BE no submission of mod_gzip for Apache 2.0
to this group.

It shall remain a ( fully supported ) 3rd party module
and will be released, as we have said from day one,
the moment this group has enough confidence in
their own product to release it.

It only takes one veto to stop the inclusion and it
has been expressed.

You can go ahead and drop mod_gz in right now.
It's all you've got.

Later...
Kevin



[PATCH] Take 3 of mod_include patch...

2001-09-05 Thread Justin Erenkrantz

Okay, I've cleaned this up and I think it is ready for commit.
However, I'd really like some eyes on this.  =-)  

In Ian and Brian's testing, this does seem to make mod_include
faster.  I can't guarantee that there aren't any bugs here,
but I've tested it with what I have and looked at the code as
best as I can.  I think this gets us moving in the right
direction.

Changes since last post:
- don't call strlen on the static string (thanks Cliff!)
- move the compilation of the starting_sequence to post_config
- comment (well, tried to...)
- fixed some of the parameters to fit our type conventions.  

Comments?  Can someone who has knowledge of the bndm algorithm
verify this?  I'll try glancing at the paper tonight or tomorrow.
-- justin

Index: modules/filters/mod_include.c
===
RCS file: /home/cvs/httpd-2.0/modules/filters/mod_include.c,v
retrieving revision 1.143
diff -u -r1.143 mod_include.c
--- modules/filters/mod_include.c   2001/09/04 02:13:58 1.143
+++ modules/filters/mod_include.c   2001/09/05 23:39:18
@@ -206,6 +206,113 @@
 
 /* --- Parser functions --- */
 
+/* This is an implementation of the BNDM search algorithm.
+ *
+ * Fast and Flexible String Matching by Combining Bit-parallelism and 
+ * Suffix Automata (2001) 
+ * Gonzalo Navarro, Mathieu Raffinot
+ *
+ * http://www-igm.univ-mlv.fr/~raffinot/ftp/jea2001.ps.gz
+ *
+ * Initial code submitted by Sascha Schumann.
+ */
+   
+typedef struct {
+unsigned int T[256];
+unsigned int x;
+} bndm_t;
+
+/* This is the pattern matcher that holds the STARTING_SEQUENCE bndm_t
+ * structure.
+ */
+static bndm_t start_seq_pat;
+
+/* Precompile the bndm_t data structure. */
+static void bndm_compile(bndm_t *t, const char *n, apr_size_t nl)
+{
+unsigned int x;
+const char *ne = n + nl;
+
+memset(t-T, 0, sizeof(unsigned int) * 256);
+
+for (x = 1; n  ne; x = 1)
+t-T[(unsigned char) *n++] |= x;
+
+t-x = x - 1;
+}
+
+/* Implements the BNDM search algorithm (as described above).
+ *
+ * n  - the pattern to search for
+ * nl - length of the pattern to search for
+ * h  - the string to look in
+ * hl - length of the string to look for
+ * t  - precompiled bndm structure against the pattern 
+ *
+ * Returns the count of character that is the first match or hl if no
+ * match is found.
+ */
+static int bndm(const char *n, apr_size_t nl, const char *h, apr_size_t hl, 
+bndm_t *t)
+{
+apr_size_t skip;
+const char *he, *p, *pi;
+unsigned int *T, x, d;
+
+he = h + hl;
+
+T = t-T;
+x = t-x  1;
+
+pi = h - 1; /* pi: p initial */
+p = pi + nl; /* compare window right to left. point to the first char */
+
+do {
+skip = nl;
+d = x;
+do {
+d = (d  1)  T[(unsigned char) *p--];
+if ((d  1)) {
+if (p != pi)
+skip = p - pi;
+else
+return p - h + 1;
+}
+} while (d  1);
+p = (pi += skip) + nl; 
+} while (p  he);
+
+return hl;
+}
+
+/* We've now found a start sequence tag... */
+static apr_bucket* found_start_sequence(apr_bucket *dptr,
+  include_ctx_t *ctx, 
+  int tagStart)
+{
+/* We want to split the bucket at the ''. */
+ctx-state = PARSE_DIRECTIVE;
+ctx-tag_length = 0;
+ctx-parse_pos = 0;
+ctx-tag_start_bucket = dptr;
+ctx-tag_start_index = tagStart;
+if (ctx-head_start_index  0) {
+apr_bucket *tmp_bkt;
+
+/* Split the bucket with the start of the tag in it */
+apr_bucket_split(ctx-head_start_bucket, ctx-head_start_index);
+tmp_bkt = APR_BUCKET_NEXT(ctx-head_start_bucket);
+/* If it was a one bucket match */
+if (dptr == ctx-head_start_bucket) {
+ctx-tag_start_bucket = tmp_bkt;
+ctx-tag_start_index = tagStart - ctx-head_start_index;
+}
+ctx-head_start_bucket = tmp_bkt;
+ctx-head_start_index = 0;
+}
+return ctx-head_start_bucket;
+}
+
 /* This function returns either a pointer to the split bucket containing the
  * first byte of the BEGINNING_SEQUENCE (after finding a complete match) or it
  * returns NULL if no match found.
@@ -217,8 +324,8 @@
 const char *c;
 const char *buf;
 const char *str = STARTING_SEQUENCE;
-apr_bucket *tmp_bkt;
-apr_size_t  start_index;
+int slen = sizeof(STARTING_SEQUENCE) - 1;
+int pos;
 
 *do_cleanup = 0;
 
@@ -269,8 +376,53 @@
 if (len == 0) { /* end of pipe? */
 break;
 }
+
+/* Set our buffer to use. */
 c = buf;
-while (c  buf + len) {
+
+/* The last bucket had a left over partial match that we need to
+ * complete. 
+ */
+if (ctx-state == PARSE_HEAD)
+{

Re: There will be no mod_gzip included in 2.0

2001-09-05 Thread Rodent of Unusual Size

[EMAIL PROTECTED] wrote:
 
 Due to comments made in a private email to
 myself and my company from one of your top level
 board members this is to inform everyone that we
 can stop this nonsense right now because there
 will BE no submission of mod_gzip for Apache 2.0
 to this group.

I suspect that mine was the private message that
caused this.  People who wanted mod_gzip can execrate
and blame me for it, and that is the only reason I am
posting this -- so people know whom to blame if they
want to do so.  I do not intend to post any more on
this topic.

The 'veto' above is how RC chooses to interpret my
'probably' statement below; what I said privately was,
in part,

 So when it comes down to it, despite any technical merits,
 I will probably vote against RC simply because I think you are
 excellent examples of non-team-players and Ian (or
 just about anyone else) would be easier to deal with.
 You do not answer questions, you duck and cover and handwave,
 and you resort to ad hominem attacks, both of you.

and RC chooses to regard that as a veto, even though not
expressed as such and not on the list.
-- 
#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: [PATCH] Take 3 of mod_include patch...

2001-09-05 Thread Brian Pane

Justin Erenkrantz wrote:
[...]

+/* Implements the BNDM search algorithm (as described above).
+ *
+ * n  - the pattern to search for
+ * nl - length of the pattern to search for
+ * h  - the string to look in
+ * hl - length of the string to look for
+ * t  - precompiled bndm structure against the pattern 
+ *
+ * Returns the count of character that is the first match or hl if no
+ * match is found.
+ */
+static int bndm(const char *n, apr_size_t nl, const char *h, apr_size_t hl, 
+bndm_t *t)
+{
+apr_size_t skip;
+const char *he, *p, *pi;
+unsigned int *T, x, d;
+
+he = h + hl;
+
+T = t-T;
+x = t-x  1;
+
+pi = h - 1; /* pi: p initial */
+p = pi + nl; /* compare window right to left. point to the first char */
+
+do {
+skip = nl;
+d = x;
+do {
+d = (d  1)  T[(unsigned char) *p--];
+if ((d  1)) {
+if (p != pi)
+skip = p - pi;
+else
+return p - h + 1;
+}
+} while (d  1);
+p = (pi += skip) + nl; 
+} while (p  he);

If nl  hl (e.g., if the caller tries to search for a 5-byte pattern in
a 3-byte string), the first loop iteration will look at memory beyond
the end of the string.  Should this be a while loop instead of do-while?
(Or is the caller responsible for avoiding this case?)

--Brian






Re: [PATCH] Take 3 of mod_include patch...

2001-09-05 Thread Justin Erenkrantz

On Wed, Sep 05, 2001 at 06:46:45PM -0700, Brian Pane wrote:
 Justin Erenkrantz wrote:
 [...]
 
 +/* Implements the BNDM search algorithm (as described above).
 + *
 + * n  - the pattern to search for
 + * nl - length of the pattern to search for
 + * h  - the string to look in
 + * hl - length of the string to look for
 + * t  - precompiled bndm structure against the pattern 
 + *
 + * Returns the count of character that is the first match or hl if no
 + * match is found.
 + */
 +static int bndm(const char *n, apr_size_t nl, const char *h, apr_size_t hl, 
 +bndm_t *t)
 +{
 +apr_size_t skip;
 +const char *he, *p, *pi;
 +unsigned int *T, x, d;
 +
 +he = h + hl;
 +
 +T = t-T;
 +x = t-x  1;
 +
 +pi = h - 1; /* pi: p initial */
 +p = pi + nl; /* compare window right to left. point to the first char */
 +
 +do {
 +skip = nl;
 +d = x;
 +do {
 +d = (d  1)  T[(unsigned char) *p--];
 +if ((d  1)) {
 +if (p != pi)
 +skip = p - pi;
 +else
 +return p - h + 1;
 +}
 +} while (d  1);
 +p = (pi += skip) + nl; 
 +} while (p  he);
 
 If nl  hl (e.g., if the caller tries to search for a 5-byte pattern in
 a 3-byte string), the first loop iteration will look at memory beyond
 the end of the string.  Should this be a while loop instead of do-while?
 (Or is the caller responsible for avoiding this case?)

Good point.  I'll make it a while loop instead.  If we start out past
the end of h, we know we don't have a match.  For mod_include, the
edge cases should pick up if that is part of a tag spanning buckets.
-- justin




Re: [PATCH] Take 3 of mod_include patch...

2001-09-05 Thread Justin Erenkrantz

On Wed, Sep 05, 2001 at 07:11:37PM -0700, Justin Erenkrantz wrote:
 On Wed, Sep 05, 2001 at 06:46:45PM -0700, Brian Pane wrote:
  Justin Erenkrantz wrote:
  [...]
  
  +/* Implements the BNDM search algorithm (as described above).
  + *
  + * n  - the pattern to search for
  + * nl - length of the pattern to search for
  + * h  - the string to look in
  + * hl - length of the string to look for
  + * t  - precompiled bndm structure against the pattern 
  + *
  + * Returns the count of character that is the first match or hl if no
  + * match is found.
  + */
  +static int bndm(const char *n, apr_size_t nl, const char *h, apr_size_t hl, 
  +bndm_t *t)
  +{
  +apr_size_t skip;
  +const char *he, *p, *pi;
  +unsigned int *T, x, d;
  +
  +he = h + hl;
  +
  +T = t-T;
  +x = t-x  1;
  +
  +pi = h - 1; /* pi: p initial */
  +p = pi + nl; /* compare window right to left. point to the first char */
  +
  +do {
  +skip = nl;
  +d = x;
  +do {
  +d = (d  1)  T[(unsigned char) *p--];
  +if ((d  1)) {
  +if (p != pi)
  +skip = p - pi;
  +else
  +return p - h + 1;
  +}
  +} while (d  1);
  +p = (pi += skip) + nl; 
  +} while (p  he);
  
  If nl  hl (e.g., if the caller tries to search for a 5-byte pattern in
  a 3-byte string), the first loop iteration will look at memory beyond
  the end of the string.  Should this be a while loop instead of do-while?
  (Or is the caller responsible for avoiding this case?)
 
 Good point.  I'll make it a while loop instead.  If we start out past
 the end of h, we know we don't have a match.  For mod_include, the
 edge cases should pick up if that is part of a tag spanning buckets.

Actually, I think the conditional should be:

while (p = he)

Thoughts?  We're scanning R-L, so p points to the end of the string.
It is possible to have !--# as n (which should match).  -- justin




Re: [PATCH] Take 3 of mod_include patch...

2001-09-05 Thread Justin Erenkrantz

On Wed, Sep 05, 2001 at 07:15:13PM -0700, Justin Erenkrantz wrote:
 Actually, I think the conditional should be:
 
 while (p = he)
 
 Thoughts?  We're scanning R-L, so p points to the end of the string.
 It is possible to have !--# as n (which should match).  -- justin

No.  I'm wrong.  I'll shut up now.  

It should be while (p  he).  he points past the end of the string.
-- justin




Re: [PATCH] Take 3 of mod_include patch...

2001-09-05 Thread Brian Pane

Justin Erenkrantz wrote:
[...]

Actually, I think the conditional should be:

while (p = he)

Thoughts?  We're scanning R-L, so p points to the end of the string.
It is possible to have !--# as n (which should match).  -- justin

I think (p  he) is still the right conditional; 'he' points to
the address right after the end of the string to be scanned
(because of the initialization he = h + hl).

--Brian







Re: [PATCH] Take 3 of mod_include patch...

2001-09-05 Thread Justin Erenkrantz

On Wed, Sep 05, 2001 at 06:42:10PM -0700, john sachs wrote:
 i applied this patch and the mod_include test fails in the same spot as it has been.
 content file has:
 !--#include file=extra/inc-extra1.shtml--
 
 'include file' with relative path to file not in same path as the file you are 
requesting.

Well, in my defense, my patch wasn't supposed to fix *that*.

But, while I'm in there, I'll take a shot at trying to fix this as
OtherBill hasn't had a chance to yet.  =-)  -- justin




Re: Add mod_gz to httpd-2.0 ( Thread restart )

2001-09-05 Thread Justin Erenkrantz

On Wed, Sep 05, 2001 at 08:05:27PM -0700, Ian Holsman wrote:
 Some performance results with mod_gz are available at
 http://webperf.org/a2/v25/
 (no core dumps.. pages look ok on a real browser while running test)
 I'm going to be re-running the tests for a longer period to see if
 there are memory leaks (as well as quantify/purify on it next week)
 
 brief summary:
   * numbers are based on pages going through mod-include
   * once of the runs looks a bit flaky.. and I'm re-running it
   * cpu usage (USR) is VERY high (from 100 without gz to 500)
   * page requests down 16% when using GZ
   * page resposne times are slower with GZ, but have a lower deviation

The expectation is that the network bandwidth used should be much
lower.  The tradeoff is that the CPU should get nailed.  -- justin




[PATCH] Fix relative internal file...

2001-09-05 Thread Justin Erenkrantz

$.10 hack.  Works for me.  

The other solutions would require a rewrite of the logic.  That
is something I don't have time to do and I also bet that OtherBill
has ideas about how to fix this the right way.  Or not.  =-)
-- justin

Index: server/request.c
===
RCS file: /home/cvs/httpd-2.0/server/request.c,v
retrieving revision 1.48
diff -u -r1.48 request.c
--- server/request.c2001/09/01 05:21:16 1.48
+++ server/request.c2001/09/06 03:11:00
@@ -1581,9 +1581,7 @@
  * either, if the base paths match, we can pick up where we leave off.
  */
 
-if (strncmp(rnew-filename, fdir, fdirlen) == 0
-rnew-filename[fdirlen] 
-ap_strchr_c(rnew-filename + fdirlen, '/') == NULL) 
+if (strncmp(rnew-filename, fdir, fdirlen) == 0  rnew-filename[fdirlen])
 {
 char *udir = ap_make_dirstr_parent(rnew-pool, r-uri);
 




Re: remaining CPU bottlenecks in 2.0

2001-09-05 Thread Brian Pane

Justin Erenkrantz wrote:

[...]

* The discussion here covers only CPU utilization.  There are other
  aspects of performance, like multiprocessor scalability, that
  are independent of this data.


Once we get the syscalls optimized (I'm reminded of Dean's attack
on our number of syscalls in 1.3 - I believe he went through syscall
by syscall trying to eliminate all of the unnecessary ones), I think 
the next performance point will be MP scalability (see below for
lock scalability on solaris).  But, we do need to see what we can 
do about optimizing the syscalls though...

The syscall profile for 2.0 looks close to optimal (as long as you
disable .htaccess files and symlink checking).  We're doing a few
too many gettimeofday calls per request, though; I 'll investigate
whether any of these can be optimized away.  (Fortunately, gettimeofday
is cheap compared to time(2).)

[...]

* _lwp_mutex_unlock() gets from pthread_mutex_unlock(),
  but only from a small fraction of pthread_mutex_unlock calls
  (Can someone familiar with Solaris threading internals explain
  this one?)


The LWP scheduler may also call _lwp_mutex_unlock() implicitly -
LWP scheduler is a user-space library so it gets thrown in
with our numbers I bet.

Here's some background on Solaris's implementation that I
think may provide some useful information as to how the locks 
will perform overall.  (If you spot any inconsistencies, it is
probably my fault...I'm going to try to explain this as best as
I can...)

First off, Solaris has adaptive locks.  Depending if the owner of 
the lock is currently active, it will spin.  If the system sees
that the owner of the held lock is not currently active, it will
sleep (they call this an adaptive lock - it now enters a turnstile).

Ah, I guess that explains why only a small fraction of pthread_mutex_lock
calls on Solaris seem to result in calls to lwp_mutex_lock: in the fast
case where the lock is available, it just stays in user-mode code?

--Brian





Re: [PATCH] Take 3 of mod_include patch...

2001-09-05 Thread Cliff Woolley

On Wed, 5 Sep 2001, john sachs wrote:

 i applied this patch and the mod_include test fails in the same spot
 as it has been. content file has: !--#include
 file=extra/inc-extra1.shtml--

 'include file' with relative path to file not in same path as the file
 you are requesting.

Yep.  This patch has no effect on that.  It's probably not mod_include
that needs patching, but rather the core.  I was hoping OtherBill could
enlighten us on what the Right Way to fix it is... because I have very
little idea myself.

Last I heard, Bill suggested we just set r-uri=NULL in that case and just
test for (r-uri) in all places we use r-uri, rather than setting r-uri
to some bogus string.  I'm all for it, if we're convinced that that's the
right thing to do.  I'll take a stab at patching it that way tomorrow just
for grins.

--Cliff




Re: Add mod_gz to httpd-2.0 ( Thread restart )

2001-09-05 Thread Ian Holsman

Justin Erenkrantz wrote:

 On Wed, Sep 05, 2001 at 08:05:27PM -0700, Ian Holsman wrote:
 
Some performance results with mod_gz are available at
http://webperf.org/a2/v25/
(no core dumps.. pages look ok on a real browser while running test)
I'm going to be re-running the tests for a longer period to see if
there are memory leaks (as well as quantify/purify on it next week)

brief summary:
  * numbers are based on pages going through mod-include
  * once of the runs looks a bit flaky.. and I'm re-running it
  * cpu usage (USR) is VERY high (from 100 without gz to 500)
  * page requests down 16% when using GZ
  * page resposne times are slower with GZ, but have a lower deviation

 
 The expectation is that the network bandwidth used should be much
 lower.  The tradeoff is that the CPU should get nailed.  -- justin
 
(put another 10 minute gzip run on the site.. this doesn't have the spike in the 
middle)



to put the CPU usage in perspective.
we were running hotter than this with mod-include ~1 week ago.
(before brian's  justin's patches)

..Ian




Re: remaining CPU bottlenecks in 2.0

2001-09-05 Thread Justin Erenkrantz

On Wed, Sep 05, 2001 at 08:19:50PM -0700, Brian Pane wrote:
 Ah, I guess that explains why only a small fraction of pthread_mutex_lock
 calls on Solaris seem to result in calls to lwp_mutex_lock: in the fast
 case where the lock is available, it just stays in user-mode code?

Yes.  -- justin




Re: remaining CPU bottlenecks in 2.0

2001-09-05 Thread Ian Holsman

I got 1 more question about the solaris implementation
of the Threaded/Worker MPM.


should we be called the setconcurrency flag on startup ?
I know solaris figures it out along the way, but a bit of gentle
prodding never hurt.

..Ian
Brian Pane wrote:

 Justin Erenkrantz wrote:
 
 [...]
 
 * The discussion here covers only CPU utilization.  There are other
  aspects of performance, like multiprocessor scalability, that
  are independent of this data.


 Once we get the syscalls optimized (I'm reminded of Dean's attack
 on our number of syscalls in 1.3 - I believe he went through syscall
 by syscall trying to eliminate all of the unnecessary ones), I think 
 the next performance point will be MP scalability (see below for
 lock scalability on solaris).  But, we do need to see what we can do 
 about optimizing the syscalls though...

 The syscall profile for 2.0 looks close to optimal (as long as you
 disable .htaccess files and symlink checking).  We're doing a few
 too many gettimeofday calls per request, though; I 'll investigate
 whether any of these can be optimized away.  (Fortunately, gettimeofday
 is cheap compared to time(2).)
 
 [...]
 
 * _lwp_mutex_unlock() gets from pthread_mutex_unlock(),
  but only from a small fraction of pthread_mutex_unlock calls
  (Can someone familiar with Solaris threading internals explain
  this one?)


 The LWP scheduler may also call _lwp_mutex_unlock() implicitly -
 LWP scheduler is a user-space library so it gets thrown in
 with our numbers I bet.

 Here's some background on Solaris's implementation that I
 think may provide some useful information as to how the locks will 
 perform overall.  (If you spot any inconsistencies, it is
 probably my fault...I'm going to try to explain this as best as
 I can...)

 First off, Solaris has adaptive locks.  Depending if the owner of the 
 lock is currently active, it will spin.  If the system sees
 that the owner of the held lock is not currently active, it will
 sleep (they call this an adaptive lock - it now enters a turnstile).

 Ah, I guess that explains why only a small fraction of pthread_mutex_lock
 calls on Solaris seem to result in calls to lwp_mutex_lock: in the fast
 case where the lock is available, it just stays in user-mode code?
 
 --Brian
 






Re: [PATCH] Fix relative internal file...

2001-09-05 Thread Cliff Woolley

On Wed, 5 Sep 2001, Justin Erenkrantz wrote:

 $.10 hack.  Works for me.

 The other solutions would require a rewrite of the logic.  That
 is something I don't have time to do and I also bet that OtherBill
 has ideas about how to fix this the right way.  Or not.  =-)

 -if (strncmp(rnew-filename, fdir, fdirlen) == 0
 -rnew-filename[fdirlen]
 -ap_strchr_c(rnew-filename + fdirlen, '/') == NULL)
 +if (strncmp(rnew-filename, fdir, fdirlen) == 0 
rnew-filename[fdirlen])

This won't work, I'll bet, for the same reason my hack won't work.  All
you've done is cause the mod_include httpd-test test to pass by getting it
into the then instead of the else, which is the exact same thing my
hack did.  Both will break if you have a relative path that goes UP at
least one directory first, since the strncmp will fail.  You'll get back
into the else case and segfault again.  Rather than working around the
else, which is there for a reason, we need to patch the REST of the code
to be aware of the existance of the else case.  The easiest way to do that
is probably to change the else case to set r-uri NULL instead of to
INTERNALLY GENERATED fooness and test r-uri before using it in all
places it's used.

--Cliff

--
   Cliff Woolley
   [EMAIL PROTECTED]
   Charlottesville, VA





Re: [PATCH] Fix relative internal file...

2001-09-05 Thread Justin Erenkrantz

On Wed, Sep 05, 2001 at 11:34:24PM -0400, Cliff Woolley wrote:
 hack did.  Both will break if you have a relative path that goes UP at
 least one directory first, since the strncmp will fail.  You'll get back

At least with mod_include, that can never happen.  It makes sure that
there are no ../ (or whatever for that OS) in a file directive.  
-- justin




Re: [PATCH] Fix relative internal file...

2001-09-05 Thread Cliff Woolley

On Wed, 5 Sep 2001, Justin Erenkrantz wrote:

 On Wed, Sep 05, 2001 at 11:34:24PM -0400, Cliff Woolley wrote:
  hack did.  Both will break if you have a relative path that goes UP at
  least one directory first, since the strncmp will fail.  You'll get back

 At least with mod_include, that can never happen.  It makes sure that
 there are no ../ (or whatever for that OS) in a file directive.

Hmmm... thought required.  That else case HAS to be there for a reason.
I'll do some research.

--Cliff

--
   Cliff Woolley
   [EMAIL PROTECTED]
   Charlottesville, VA





Re: remaining CPU bottlenecks in 2.0

2001-09-05 Thread Justin Erenkrantz

On Wed, Sep 05, 2001 at 08:34:30PM -0700, Ian Holsman wrote:
 I got 1 more question about the solaris implementation
 of the Threaded/Worker MPM.
 
 
 should we be called the setconcurrency flag on startup ?
 I know solaris figures it out along the way, but a bit of gentle
 prodding never hurt.

Aaron and I went back and forth on this.  He was of the mind that
the user scheduler should figure it out after a period of time
(and that we shouldn't muck with it).

The badness happens in testthread.c - Solaris executes that code
in serial since the user scheduler never has a chance to 
interrupt and balance the threads.  But, in the real code, 
Solaris balances it since we hit syscalls and mutexes quite often.

An equivalent to calling pthread_setconcurrency is to use
/usr/lib/lwp/libthread.so instead of /usr/lib/libthread.so.
-- justin




Re: Add mod_gz to httpd-2.0 ( Thread restart )

2001-09-05 Thread Greg Stein

On Wed, Sep 05, 2001 at 08:07:26PM -0700, Justin Erenkrantz wrote:
 On Wed, Sep 05, 2001 at 08:05:27PM -0700, Ian Holsman wrote:
  Some performance results with mod_gz are available at
  http://webperf.org/a2/v25/
  (no core dumps.. pages look ok on a real browser while running test)
  I'm going to be re-running the tests for a longer period to see if
  there are memory leaks (as well as quantify/purify on it next week)
  
  brief summary:
  * numbers are based on pages going through mod-include
  * once of the runs looks a bit flaky.. and I'm re-running it
  * cpu usage (USR) is VERY high (from 100 without gz to 500)
  * page requests down 16% when using GZ

What does this mean? Total bytes transferred? If so, then why only 16%

The number of page requests should be constant, unless mod_gz introduces
some kind of caching.

  * page resposne times are slower with GZ, but have a lower deviation
 
 The expectation is that the network bandwidth used should be much
 lower.  The tradeoff is that the CPU should get nailed.  -- justin

Also: latency should increase and delivery time should decrease.

cheers,
-g

-- 
Greg Stein, http://www.lyra.org/



Re: [PATCH] Fix relative internal file...

2001-09-05 Thread Cliff Woolley

On Wed, 5 Sep 2001, Greg Stein wrote:

 I don't understand what you're trying to solve here, and how this
 solves it.

It's an attempt to fix the mod_include !--#include file=foo/bar.html--
segfault.  It solves it by setting r-uri to something valid rather than
setting it to INTERNALLY GENERATED  It's as yet unclear as to
whether it's a correct solution, though.  I'm looking into it.

--Cliff




Re: zlib inclusion and mod_gz(ip) recap

2001-09-05 Thread Doug MacEachern

On Wed, 5 Sep 2001, Graham Leggett wrote:

 That's wonderful news for users. No longer do they download the tarball,
 build it, and enable the features they want, now they trawl the web
 looking for this module and that module - assuming they even know the
 modules exist in the first place.

 We need to keep things simple from a user perspective, and not just
 focus on keeping things simple from a developers perspective.

'no longer' ?  ldap and gzip were never part of the 1.3 bundle.
have you not seen apachetoolbox.com?  according the site 63 3rd party
modules are included.  are you suggesting we add all of those to the
httpd-2.0 bundle to keep things simple?  that project solves the
problems you site here, i assume they will do the same for 2.0 once it is
released.

anyhow, you've totally missed my point.  my only concern is timing.  i'm
not at suggesting which modules should or should not be part of the core.
i'm only saying it should have been decided long ago which modules are
going into the 2.0 core.  anything else should wait for 2.1+.




Re: zlib inclusion and mod_gz(ip) recap

2001-09-05 Thread Greg Stein

On Wed, Sep 05, 2001 at 11:05:50AM -0700, Doug MacEachern wrote:
 On Wed, 5 Sep 2001, Ryan Bloom wrote:
Ryan himself said he prefers 3 right off the bat when Jerry
said 'Let's dump Ian's mod_gz into the core!' which is what
started this whole entire thread.
  
   Ask him what he thinks now :-)  Knowing Ryan, he is probably fine with
   adding it at this point.
  
  Nope.  My opinion hasn't changed.  I won't veto, but I continue to think
  this is a bad idea.
 
 i have the same opinion, for the same reason i was stunned (and still
 am) to see ldap modules in the 2.0 tree.

That was a surprise to me, too. I was out during July. I thought we would
have some simple ldap stuff in APRUTIL... not a huge codebase in httpd.
(when I discussed a division of the code, I was expecting a separate vote
for adding mod_ldap to httpd-2.0, which I would then vote against :-) Since
then, I had also thought we agreed to move mod_ldap *out* of the core, into
httpd-ldap.

To make all of this workable, I just recently posted a thought on how to
deal with rollup releases. No comments appeared on that yet, tho.

 new modules at this point are
 only going to further delay the release of 2.0, hell even discussing
 adding new modules is contributing to the delay.

If Ian is not assisting with stabilizing the httpd core, then how could his
work on mod_gz delay the core? IOW, he is not subtracting anything from
the stabilization process. If the argument is that people who *are*
stabilizing the core will now be distracted... that is their problem :-)
mod_gz is just a little bugger off to the side that the core people don't
have to truly worry about. It will get enough attention from the fringe
people, if you will (my pardons to people who were just called fringe :-).

 i do think apache should be bundled with one or the other (mod_gz or
 mod_gzip), but it should wait until 2.1.  i'm pretty sure most people
 (myself included), are most interested in being able to just use 2.0
 feature-wise as-is and won't mind waiting until 2.1+ for new features.

Introducing mod_gz isn't going to slow down a 2.0 release. And it *is* a
part of RFC 2616, supported by a bunch of browsers, and it is definitely
missing functionality (re: its lack was pasted over by mod_perl's and PHP's
band-aid solution to compression).

 we're in the 9th month of year 2001, i saw the first glimpse of a '2.0'
 server in early 1996 (rob thau's), i have no problem waiting longer for
 bug fixes, performance, doing things right, etc., but there is no good
 reason to add new modules or big features at this point.  they should wait
 for 2.1+.

If people want a stable server, then they should work on that, and not pay
attention to mod_gz within the server. It should be stable enough, and it
*does* simply use the existing module and filter interfaces. Why should core
people worry about it? It can go in now and be fixed over time.

There are a good number of people in this group, and each of those people
concentrate on different items, for different reasons. If you want a stable
server, with a sooner-than-later release, then concentrate on the core. Some
of those other people will work on modules which have *nothing* to do with
stability. If the core developers are distracted by mod_gz, then that is
their own fault, not the fault of introducing a new module.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/



Re: remaining CPU bottlenecks in 2.0

2001-09-05 Thread dean gaudet

On Tue, 4 Sep 2001, Brian Pane wrote:

 * Collectively, stat and open comprise 5% of the total CPU time.
   It would be faster to do open+fstat rather than stat+open (as
   long as the server is delivering mostly 200s rather than 304s),
   but that might be too radical a change.  Anybody have thoughts
   on this?

linux' dcache makes either method about the same cost, but on other
kernels, and especially when NFS is involved (because of how NFS path
resolution occurs), the open/fstat is much better.  the trick would be to
cache open filehandles so that fstat can be used.

 * memset() is called mostly from apr_pcalloc(), which in turn is
   used in too many places to yield any easy optimization opportunities.

sometimes folks are lazy and ask for zeroed memory out of habit, when they
could easily deal with garbage at less cost.

-dean




Re: Add mod_gz to httpd-2.0 ( Thread restart )

2001-09-05 Thread Greg Stein

On Wed, Sep 05, 2001 at 09:15:56PM -0700, Ian Holsman wrote:
 Greg Stein wrote:
 On Wed, Sep 05, 2001 at 08:05:27PM -0700, Ian Holsman wrote:
 Some performance results with mod_gz are available at
 http://webperf.org/a2/v25/
 (no core dumps.. pages look ok on a real browser while running test)
 I'm going to be re-running the tests for a longer period to see if
 there are memory leaks (as well as quantify/purify on it next week)
 
 brief summary:
* numbers are based on pages going through mod-include
* once of the runs looks a bit flaky.. and I'm re-running it
* cpu usage (USR) is VERY high (from 100 without gz to 500)
* page requests down 16% when using GZ
  
  What does this mean? Total bytes transferred? If so, then why only 16%
  
  The number of page requests should be constant, unless mod_gz introduces
  some kind of caching.
 
 the number of concurrent requests are constant in all of these tests.
 we have 50 processes (spread across 10 machines) doing GET's of a page.
 when a page is retrived is GET's it again (and again..)
 so if the page response is slower, then the pages/second will also be.
 
 we have a more sophisticated comercial machine which can generate better
 traffic, but it is core dumping at the moment so I can run't the tests through it.

Ah! By page requests down... you mean page requests *per second* ??

You omitted that per second, so the statistic made no sense...

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/



Re: remaining CPU bottlenecks in 2.0

2001-09-05 Thread Brian Pane

dean gaudet wrote:

[...]

* memset() is called mostly from apr_pcalloc(), which in turn is
  used in too many places to yield any easy optimization opportunities.


sometimes folks are lazy and ask for zeroed memory out of habit, when they
could easily deal with garbage at less cost.

Some good news here: I dug through the profile data and found that over half
the httpd's calls to apr_pcalloc are from one function, 'find_entry' in the
apr_hash_set implementation.  It uses apr_pcalloc to allocate a struct with
5 fields, and then it immediately overwrites 4 of those fields.  I'll submit
a patch to the APR dev list to fix this.

--Brian





[STATUS] (apache-1.3) Wed Sep 5 23:45:05 EDT 2001

2001-09-05 Thread Rodent of Unusual Size

APACHE 1.3 STATUS:  -*-text-*-
  Last modified at [$Date: 2001/08/21 15:30:28 $]

Release:

   1.3.21: In development
   1.3.20: Tagged and rolled May 15, 2001. Announced May 21, 2001.
   1.3.19: Tagged and rolled Feb 26, 2001. Announced Mar 01, 2001.
   1.3.18: Not released.
 (Pulled because of an incorrect unescaping fix. t/r Feb 19, 2001)
   1.3.17: Tagged and rolled Jan 26, 2001. Announced Jan 29, 2001.
   1.3.16: Not released.
 (Pulled because of vhosting bug. t/r Jan 20, 2001)
   1.3.15: Not released.
 (Pulled due to CVS dumping core during the tagging when it
  reached src/os/win32/)
   1.3.14: Tagged and Rolled Oct 10, 2000.  Released/announced on the 13th.
   1.3.13: Not released.
 (Pulled in the first minutes due to a Netware build bug)
   1.3.12: Tagged and rolled Feb. 23, 2000. Released/announced on the 25th.
   1.3.11: Tagged and rolled Jan. 19, 2000. Released/announced on the 21st.
   1.3.10: Not released.
 (Pulled at last minute due to a build bug in the MPE port)
1.3.9: Tagged and rolled on Aug. 16. Released and announced on 19th.
1.3.8: Not released.
1.3.7: Not released.
1.3.6: Tagged and rolled on Mar. 22. Released and announced on 24th.
1.3.5: Not released.
1.3.4: Tagged and rolled on Jan. 9.  Released on 11th, announced on 12th.
1.3.3: Tagged and rolled on Oct. 7.  Released on 9th, announced on 10th.
1.3.2: Tagged and rolled on Sep. 21. Announced and released on 23rd.
1.3.1: Tagged and rolled on July 19. Announced and released.
1.3.0: Tagged and rolled on June 1.  Announced and released on the 6th.
   
2.0  : In alpha development, see httpd-2.0 repository

RELEASE SHOWSTOPPERS:

ab is broken on many platforms.  Dirk has offered patch, it does not
apply cleanly, he has offered to clean this up.

RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:

* htpasswd.c and htdigest.c use tmpnam()... consider using
  mkstemp() when available.
Message-ID: [EMAIL PROTECTED]
Status:

* Dean's unescaping hell (unescaping the various URI components
  at the right time and place, esp. unescaping the host name).
Message-ID: [EMAIL PROTECTED]
Status:

* Martin observed a core dump because a ipaddr_chain struct contains
  a NULL-server pointer when being dereferenced by invoking httpd -S.
Message-ID: [EMAIL PROTECTED]
Status: Workaround enabled. Clean solution can come after 1.3.19

* long pathnames with many components and no AllowOverride None
  Workaround is to define Directory / with AllowOverride None,
  which is something all sites should do in any case.
Status: Marc was looking at it.

* Ronald Tschalär's patch to mod_proxy to allow other modules to
  set headers too (needed by mod_auth_digest)
Message-ID: [EMAIL PROTECTED]
Status:


Documentation that needs writing:


Available Patches (Most likely, these will not be added to the official
1.3 tree, but instead should be ported to 2.0):

   *  A rewrite of ap_unparse_uri_components() by Jeffrey W. Baker
 [EMAIL PROTECTED] to more fully close some segfault potential.
Message-ID: Pine.LNX.4.21.0102102350060.6815-20@desktop
Status:  Jim +1 (for 1.3.19), Martin +0

* Patch from C. Bottelier [EMAIL PROTECTED] to run
Apache without daemonizing the parent process. PR#7040
Status: fanf +1 (except it needs docs)

* Andrew Ford's patch (1999/12/05) to add absolute times to mod_expires
Message-ID: [EMAIL PROTECTED]
Status: Martin +1, Jim +1, Ken +1 (on concept)

* Raymond S Brand's path to mod_autoindex to fix the header/readme
  include processing so the envariables are correct for the included
  documents.  (Actually, there are two variants in the patch message,
  for two different ways of doing it.)
Message-ID: [EMAIL PROTECTED]
Status: Martin +1(concept)

* Jayaram's patch (10/27/99) for changes to mod_autoindex
 
Problem 1:

AddIcon (alttext,icon) ^^DIRECTORY^^ 
and 
AddIcon (alttext,icon) ^^BLANKICON^^ 
should be able to set the alternate text and icon file for any
directory/blankicon in a directory listing. This was not happening
because the alternate text for ^^DIRECTORY^^ and ^^BLANKICON^^ were
hardcoded to  DIR and respectively.

Problem 2:
-
IndexIgnore file-extension should hide the files with this file-
extension in directory listings. This was NOT happening because the 
total filename was being compared with the file-extension.

Status: Martin +1(untested), Ken +1(untested)
   
* Salvador Ortiz Garcia [EMAIL PROTECTED]' patch to allow DirectoryIndex
  to 

[STATUS] (httpd-2.0) Wed Sep 5 23:45:09 EDT 2001

2001-09-05 Thread Rodent of Unusual Size

APACHE 2.0 STATUS:  -*-text-*-
Last modified at [$Date: 2001/08/29 18:23:08 $]

Release:

2.0.25  : rolled August 29, 2001
2.0.24  : rolled August 18, 2001
2.0.23  : rolled August 9, 2001
2.0.22  : rolled July 29, 2001
2.0.21  : rolled July 20, 2001
2.0.20  : rolled July 8, 2001
2.0.19  : rolled June 27, 2001
2.0.18  : rolled May 18, 2001
2.0.17  : rolled April 17, 2001
2.0.16  : rolled April 4, 2001
2.0.15  : rolled March 21, 2001
2.0.14  : rolled March 7, 2001
2.0a9   : released December 12, 2000
2.0a8   : released November 20, 2000
2.0a7   : released October 8, 2000
2.0a6   : released August 18, 2000
2.0a5   : released August 4, 2000
2.0a4   : released June 7, 2000
2.0a3   : released April 28, 2000
2.0a2   : released March 31, 2000
2.0a1   : released March 10, 2000

Please consult the following STATUS files for information
on related projects:

* srclib/apr/STATUS
* srclib/apr-util/STATUS
* docs/STATUS

RELEASE SHOWSTOPPERS:

* There is a bug in how we sort some hooks, at least the pre-config
  hook.  The first time we call the hooks, they are in the correct 
  order, but the second time, we don't sort them correctly.  Currently,
  the modules/http/config.m4 file has been renamed to 
  modules/http/config2.m4 to work around this problem, it should moved
  back when this is fixed.rbb

* The AddInputFilter and AddOutputFilter directives do not allow the
  administrator to remove or reorder filters.  Once a filter is added
  in a container, it is present in any subcontainers.  It can only be
  added to the filter chain after any filters specified in enclosing
  containers.

* mod_dir should normally redirect ALL directory requests which do
  not include a trailing slash on the URI. However, if a notes
  flag is set (say, via BrowserMatch), this behavior will be
  disabled for non-GET requests.
Status: Greg volunteers
MsgId: [EMAIL PROTECTED]
MsgId: [EMAIL PROTECTED]

* mod_negotiation will not serve a request when an early extention
  is understood, but a later extention is not.  e.g. if the request
  index.html.bak is recieved, and negotition could find the file
  index.html.bak.en, it still won't be served because the 
  ap-mime-exception-list will contain index and bak, and the
  string index.bak doesn't match index.html.bak.  Need to
  review the ap-mime-exception-list component by component to be
  allow these cases.  [This could be part of a patch to allow the
  name index.bak in the case above to match index.html.bak.en]

* mod_negotiation needs a new option or directive, something like
  ForceLanguagePriority, to fall back to the LanguagePriority
  directive instead of returning a no acceptable variant error.

* Usability: Sanitize the MPM config directives.  MaxClients in 
  the threaded MPM is totally misleading now as it has little to
  do with limiting the number of clients (it limits the number
  of child processes). Bill proposed nomenclature change to
  something like StartWorkers, MaxWorkers, etc. that could 
  apply to most all the MPMs (with some notable exceptions).
  Bill would be happy with changing MaxClients to MaxServers
  to make it agree with the operation of the StartServers
  directive.

* configure --enable-mods-shared=most option has issues.  Example: 

  ./configure --enable-mods-shared=most

This builds mod_headers as a DSO (good) but builds mod_mime
as a compiled-in module (bad).

RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:

* daedalus: mod_cgid and suexec have a problem co-existing.  suexec 
  sees a null command string sometimes.  The problem happens when
  you access bugs.apache.org, then click on the search the bug db
  button.

* Win32: Rotatelogs sometimes is not terminated when Apache
  goes down hard.  FirstBill was looking at possibly tracking the 
  child's-child processes in the parent process.

* Win32: Add a simple hold console open patch (wait for close or
the ESC key, with a nice message) if the server died a bad 
death (non-zero exit code) in console mode.
Resolution: bring forward same ugly hacks from 1.3.13-.20

* Port of mod_ssl to Apache 2.0:

  The current porting state is summarized in modules/ssl/README.  The next
  step is to figure out how the old three configuration contexts (global,
  per-server, per-directory) can be ported to Apache 2.0 (especially the
  global context which has to survive server restarts RSE still does not
  know how to port). Then the remaining source files (which depend on the
  configuration contexts) which are still tagged with - in
  modules/ssl/README can be ported.