[STATUS] (flood) Wed Jul 7 23:45:55 EDT 2004
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)
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
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
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
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 ?
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
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