[STATUS] (flood) Wed Jul 7 23:45:55 EDT 2004

2004-07-08 Thread Rodent of Unusual Size
flood STATUS:   -*-text-*-
Last modified at [$Date: 2003/07/01 20:55:12 $]

Release:

1.0:   Released July 23, 2002
milestone-03:  Tagged January 16, 2002
ASF-transfer:  Released July 17, 2001
milestone-02:  Tagged August 13, 2001
milestone-01:  Tagged July 11, 2001 (tag lost during transfer)

RELEASE SHOWSTOPPERS:

* Everything needs to work perfectly

Other bugs that need fixing:

* I get a SIGBUS on Darwin with our examples/round-robin-ssl.xml
  config, on the second URL. I'm using OpenSSL 0.9.6c 21 dec 2001.
  
* iPlanet sends Content-length - there is a hack in there now
  to recognize it.  However, all HTTP headers need to be normalized
  before checking their values.  This isn't easy to do.  Grr.

* OpenSSL 0.9.6
  Segfaults under high load.  Upgrade to OpenSSL 0.9.6b.
   Aaron says: I just found a big bug that might have been causing
   this all along (we weren't closing ssl sockets).
   How can I reproduce the problem you were seeing
   to verify if this was the fix?

* SEGVs when /tmp/.rnd doesn't exist are bad. Make it configurable
  and at least bomb with a good error message. (See Doug's patch.)
   Status: This is fixed, no?

* If APR has disabled threads, flood should as well. We might want
  to have an enable/disable parameter that does this also, providing
  an error if threads are desired but not available.

* flood needs to clear pools more often. With a long running test
  it can chew up memory very quickly. We should just bite the bullet
  and create/destroy/clear pools for each level of our model:
  farm, farmer, profile, url/request-cycle, etc.

* APR needs to have a unified interface for ephemeral port
  exhaustion, but aparently Solaris and Linux return different
  errors at the moment. Fix this in APR then take advantage of
  it in flood.

* The examples/analyze-relative scripts fail when there are less
  than 5 unique URLs.

Other features that need writing:

* More analysis and graphing scripts are needed

* Write robust tool (using tethereal perhaps) to take network dumps 
  and convert them to flood's XML format.
Status: Justin volunteers.  Aaron had a script somewhere that is
a start. Jacek is working on a Mozilla application, codename
Flood URL bag (much like Live HTTP Headers) and small
HTTP proxy.

* Get chunked encoding support working.
Status: Justin volunteers.  He got sidetracked by the httpd
implementation of input filtering and never finished 
this.  This is a stopgap until apr-serf is completed.

* Maybe we should make randfile and capath runtime directives that
  come out of the XML, instead of autoconf parameters.

* We are using apr_os_thread_current() and getpid() in some places
  when what we really want is a GUID. The GUID will be used to
  correlate raw output data with each farmer. We may wish to print
  a unique ID for each of farm, farmer, profile, and url to help in
  postprocessing.

* We are using strtol() in some places and strtoll() in others.
  Pick one (Aaron says strtol(), but he's not sure).

* Validation of responses (known C-L, specific strings in response)
   Status: Justin volunteers

* HTTP error codes (ie. teach it about 302s)
   Justin says: Yeah, this won't be with round_robin as implemented.  
Need a linked list-based profile where we can insert 
new URLs into the sequence.

* Farmer (Single-thread, multiple profiles)
   Status: Aaron says: If you have threads, then any Farmer can be
   run as part of any Farm. If you don't have threads, you can
   currently only run one Farmer named Joe right now (this will
   be changed so that if you don't have threads, flood will attempt
   to run all Farmers in serial under one process).

* Collective (Single-host, multiple farms)
  This is a number of Farms that have been fork()ed into child processes.

* Megaconglomerate (Multiple hosts each running a collective)
  This is a number of Collectives running on a number of hosts, invoked
  via RSH/SSH or maybe even some proprietary mechanism.

* Other types of urllists
a) Random / Random-weighted
b) Sequenced (useful with cookie propogation)
c) Round-robin
d) Chaining of the above strategies
  Status: Round-robin is complete.

* Other types of reports
  Status: Aaron says: simple reports are functional. Justin added
  a new type that simply prints the approx. timestamp when
  the test was run, and the result as OK/FAIL; it is called
  easy reports (see flood_easy_reports.h).
  Furthermore, 

Re: libtool (jlibtool)

2004-07-08 Thread Joe Orton
On Wed, Jul 07, 2004 at 09:44:00AM +0200, jean-frederic clere wrote:
 Joe Orton wrote:
 On Tue, Jul 06, 2004 at 03:35:30PM +0200, jean-frederic clere wrote:
 The aim is to ensure that the LIBTOOL variable in the installed
 config_vars.mk points at the installed copy of the libtool script.
 
 Yes, but I see 3 problems:
 - On os2 host configure uses aplibtool, not libtool.
 - When using jlibtool the command sh libtool fails.
 - shlibtool (in SH_LIBTOOL) is changed into libtool.

- it breaks if not using the bundled APR, since there is no 
$(installbuilddir)/libtool then either

 To solve those I would use 2 new variables INSTALL_LIBTOOL and 
 INSTALL_SH_LIBTOOL and fill them in configure by something like:

`basename $LIBTOOL` is known by configure so I wouldn't do that in the
Makefile necessarily.  Is there a simpler fix for all four cases by
changing the existing sed substitution on config_vars.mk to something
like:

   /LIBTOOL = /s,$(top_builddir)\(srclib/apr\),$(installbuilddir),

Can you try that?  Does APR really install {sh,ap,j}libtool in
$installbuilddir already anyway? I can't see where that happens.

joe


mod_rewrite failing for 2.0.49 on HP-UX 11.x

2004-07-08 Thread Albert Chin
I have Apache 2.0.49 compiled on HP-UX 11.00 and 11i with the HP C
compiler. mod_rewrite doesn't seem to behave correctly. I added the
following to httpd.conf:
  RewriteEngine on
  RewriteLogLevel 20
  RewriteLog /tmp/rewrite.log

  # Map images to be beautiful :-)
  RewriteRule ^/tww/img/(.*) http://www.tww.com/tww/img/$1 [P,L]
  RewriteRule ^/favicon.ico$ http://www.tww.com/favicon.ico [P,L]

$ telnet impulse 80
HEAD /tww/img/tww.gif HTTP/1.0

$ cat /tmp/rewrite.log
192.168.1.38 - - [08/Jul/2004:09:17:15 --0500] 
[impulse.il.thewrittenword.com/sid#40015fa0][rid#400c7218/initial] (2) init rewrite 
engine with requested uri /tww/img/tww.gif
192.168.1.38 - - [08/Jul/2004:09:17:15 --0500] 
[impulse.il.thewrittenword.com/sid#40015fa0][rid#400c7218/initial] (3) applying 
pattern '^/tww/img/(.*)' to uri '/tww/img/tww.gif'
192.168.1.38 - - [08/Jul/2004:09:17:15 --0500] 
[impulse.il.thewrittenword.com/sid#40015fa0][rid#400c7218/initial] (3) applying 
pattern '^/favicon.ico$' to uri '/tww/img/tww.gif'
192.168.1.38 - - [08/Jul/2004:09:17:15 --0500] 
[impulse.il.thewrittenword.com/sid#40015fa0][rid#400c7218/initial] (1) pass through 
/tww/img/tww.gif

This works fine on Solaris 9 and Redhat Linux 9. The rewrite for
'favicon.ico' does work. I think the problem is '(.*)'. I know that
Apache is using the HP regcomp()/regexec() routines so I added some
debugging to modules/mappers/mod_rewrite.c and the regexec() call is
failing. I don't know why yet. I wrote the small program below to test
regcomp()/regexec() on this RE and it works fine:
  #include stdio.h
  #include regex.h

  int
  main (void) {
regex_t re;
int ret;

ret = regcomp (re, ^/tww/img/(.*), REG_EXTENDED);
if (ret != 0) {
  puts (a);
  exit (1);
}

ret = regexec (re, /tww/img/tww.gif, 0, NULL, 0);
if (ret != 0) {
  puts (b);
  exit (1);
}
  }

-- 
albert chin ([EMAIL PROTECTED])


Re: mod_rewrite failing for 2.0.49 on HP-UX 11.x

2004-07-08 Thread Joe Orton
On Thu, Jul 08, 2004 at 09:23:00AM -0500, Albert Chin wrote:
 This works fine on Solaris 9 and Redhat Linux 9. The rewrite for
 'favicon.ico' does work. I think the problem is '(.*)'. I know that
 Apache is using the HP regcomp()/regexec() routines so I added some
 debugging to modules/mappers/mod_rewrite.c and the regexec() call is
 failing. I don't know why yet. I wrote the small program below to test
 regcomp()/regexec() on this RE and it works fine:

If the C library regcomp()/regexec() are really being used from
mod_rewrite rather than the PCRE implementations, that's probably the
issue, e.g. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26088 and
friends.

joe


Re: mod_rewrite failing for 2.0.49 on HP-UX 11.x

2004-07-08 Thread Albert Chin
On Thu, Jul 08, 2004 at 03:28:08PM +0100, Joe Orton wrote:
 On Thu, Jul 08, 2004 at 09:23:00AM -0500, Albert Chin wrote:
  This works fine on Solaris 9 and Redhat Linux 9. The rewrite for
  'favicon.ico' does work. I think the problem is '(.*)'. I know that
  Apache is using the HP regcomp()/regexec() routines so I added some
  debugging to modules/mappers/mod_rewrite.c and the regexec() call is
  failing. I don't know why yet. I wrote the small program below to test
  regcomp()/regexec() on this RE and it works fine:
 
 If the C library regcomp()/regexec() are really being used from
 mod_rewrite rather than the PCRE implementations, that's probably the
 issue, e.g. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=26088 and
 friends.

Thanks. That is the problem. We're going to force linkage of pcre
early to resolve the problem.

-- 
albert chin ([EMAIL PROTECTED])


Re: Time for 1.3.32 ?

2004-07-08 Thread Rasmus Lerdorf
Ok, how about this.

Add a call to ap_set_keepalive(r) in ap_die() before the check to see
if we should be discarding the request body.  Then, since ap_set_keepalive
increments the keepalives counter on the connection if keepalive is
determined to be enabled, add a check to the calls in ap_send_http_header
and ap_send_error_response since these could be called after ap_die and
we don't want to increment the keepalives counter twice on this request.

   

Index: http_protocol.c
===
diff -u -r1.76 http_protocol.c
--- http_protocol.c 21 May 2004 11:43:31 -  1.76
+++ http_protocol.c 8 Jul 2004 16:49:03 -
@@ -2074,7 +2074,7 @@
 PUSH_EBCDIC_OUTPUTCONVERSION_STATE_r(r, 1);
 #endif /*CHARSET_EBCDIC*/
   

-ap_set_keepalive(r);
+if(r-connection-keepalive != 1) ap_set_keepalive(r);
   

 #ifdef YAHOO
 #ifdef GZIP
@@ -3063,7 +3063,7 @@
 ap_hard_timeout(send 304, r);
   

 ap_basic_http_header(r);
-ap_set_keepalive(r);
+if(r-connection-keepalive != 1) ap_set_keepalive(r);
   

 ap_table_do((int (*)(void *, const char *, const char *)) 
ap_send_header_field,
 (void *) r, r-headers_out,
Index: http_request.c
===
diff -u -r1.29 http_request.c
--- http_request.c  21 May 2004 11:43:31 -  1.29
+++ http_request.c  8 Jul 2004 16:49:03 -
@@ -1116,6 +1116,12 @@
 }
   

 /*
+ * We need r-connection-keepalive set correctly in order to determine if
+ * we can discard the request body in the next condition
+ */
+ap_set_keepalive(r);
+
+/*
  * If we want to keep the connection, be sure that the request body
  * (if any) has been read.
  */


On Tue, 6 Jul 2004, Jim Jagielski wrote:

 Yes, we do, and we're still waiting for a patch. However,
 I can't see us delaying 1.3.32 for an unreasonable
 amount of time.
 
 On Jul 5, 2004, at 10:54 AM, Rasmus Lerdorf wrote:
 
  We still have that outstanding issue of conn-keepalive being bogus in
  ap_die() because it hasn't been set yet and thus we can't discard the
  request body in situations where we really need to.  See my previous  
  long
  explanation of that problem.
 
  -Rasmus
 
  On Sat, 3 Jul 2004, Jim Jagielski wrote:
 
  Let's use STATUS :)
 
  =?ISO-8859-15?Q?Andr=E9?= Malo wrote:
 
  * Jeff Trawick [EMAIL PROTECTED] wrote:
 
  well, if you're going to be that way then consider my simple Win32  
  patch to
  fix reporting of proper error by spawnl(), which needs another +1 :)
 
  (see thread [1.3 PATCH] restore failing errno for Win32 spawn  
  errors on
  this list)
 
  +1 from me for that errno patch ;)
 
  nd
  --
  Umfassendes Werk (auch fuer Umsteiger vom Apache 1.3)
-- aus einer Rezension
 
  http://pub.perlig.de/books.html#apache2
 
 
 
  --
  == 
  =
 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 - T.Jefferson
 
 
 
 


Re: Windows HTTP API

2004-07-08 Thread Jeff White



 In .NET Framework (soon out):

 HttpListener class  (uses HTTP.SYS)
 Defined as a simple web server


In below article, jump to:

quote

Web Services Anywhere

There are some interesting scenarios
that require exposing a Web service
from an application that is not running
in IIS; for example, running a Windows
Forms desktop application that receives
callbacks from a remote server. Since
version 1.0 of the .NET Framework, it
has been possible to host ASP.NET
(including ASMX Web services) in any
process, such as a console or Windows
Forms application. Now HttpListener
makes it easier to do this.

Snip

The figure below shows at a high level
how a managed application uses
HttpListener to host ASMX services.

/quote

New Features for Web Service Developers
in Beta 1 of the .NET Framework 2.0
http://msdn.microsoft.com/webservices/default.aspx?pull=/library/en-us/dnvs05/html/wsnetfx2.asp

.NET Framework 2.0 Beta 1
http://www.microsoft.com/downloads/details.aspx?familyid=F1232C37-0FEE-4AA6-AA89-B6DCEFC0873Bdisplaylang=en

.NET Framework 2.0 SDK Beta 1
http://www.microsoft.com/downloads/details.aspx?FamilyID=916ec067-8bdc-4737-9430-6cec9667655cDisplayLang=en


Jeff