[STATUS] (httpd-test: perl-framework) Wed Jan 5 23:45:15 2005
httpd-test/perl-framework STATUS: -*-text-*- Last modified at [$Date: 2002/03/09 05:22:48 $] Stuff to do: * finish the t/TEST exit code issue (ORed with 0x2C if framework failed) * change existing tests that frob the DocumentRoot (e.g., t/modules/access.t) to *not* do that; instead, have Makefile.PL prepare appropriate subdirectory configs for them. Why? So t/TEST can be used to test a remote server. * problems with -d perl mode, doesn't work as documented Message-ID: [EMAIL PROTECTED] Date: Sat, 20 Oct 2001 12:58:33 +0800 Subject: Re: perldb Tests to be written: * t/apache - simulations of network failures (incomplete POST bodies, chunked and unchunked; missing POST bodies; slooow client connexions, such as taking 1 minute to send 1KiB; ...) * t/modules/autoindex - something seems possibly broken with inheritance on 2.0 * t/ssl - SSLPassPhraseDialog exec: - SSLRandomSeed exec:
Flood output
Hi, I just discovered flood, and I'm interested in writing my own report based on the raw output. The only documentation I can find is here: http://cvs.apache.org/viewcvs.cgi/httpd-test/flood/docs/docbook/ flood.xml?rev=1.8view=markup Last updated on April 15, 2004, where it says at the very end: !-- This section needs to be written. Volunteers? [jacekp] -- chapter titleAnalyzing Flood output/title paraNo information available at this time./para /chapter I've done a bit of reverse engineering with the examples/analyze-relative script and believe that the columns represent the following: 1 ??? 2 connect 3 write 4 read 5 close 6 response 7 ??? 8 URL As you can see, I can't figure out the 1st and 7th columns. I would love it if someone could help me out on this. I'm working on a Perl version of the analyze-relative script so I can expand what it does. Perhaps a question I should get answered before all of the above is whether flood is still being developed, if it is reliable/doing what I think, etc.? Should I be using flood or can someone point me to a better program for stress-testing a web server with a bunch of URLs. ky
Re: [STATUS] (httpd-test: perl-framework) Wed Jan 5 23:45:15 2005
-BEGIN PGP SIGNED MESSAGE- Rodent of Unusual Size wrote: httpd-test/perl-framework STATUS: -*-text-*- Last modified at [$Date: 2002/03/09 05:22:48 $] Well, bugger. This moved to subversion and I didn't notice; these have been coming from the old CVS. Fixed momentarily and new ones sent out.. - -- #kenP-)} Ken Coar, Sanagendamgagwedweinini http://Ken.Coar.Org/ Author, developer, opinionist http://Apache-Server.Com/ Millennium hand and shrimp! -BEGIN PGP SIGNATURE- Version: GnuPG v1.2.4 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBQd1lBZrNPMCpn3XdAQETswP/ak2MOk2lNdhsvcV8qjPbmrJcon87w4Eu +Vi6OLCd4hKedyVGh36eUC8RP3Yhn4cueo64B1jbQjQdIbzCDm6rvslXv3S3YuQK 3dmXLp2TLmQEZfVmmk0tFbU5wWf/MXk0Zrc+VAk9FsDM5ALbjod9sjDWPUyqbtss 7H+dOBASmkA= =w+yA -END PGP SIGNATURE-
[STATUS] (httpd-test: flood) Thu 06 Jan 2005 11:29:40 AM EST
flood STATUS: -*-text-*- Last modified at [$Date: 2004-11-24 19:36:41 -0500 (Wed, 24 Nov 2004) $] 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).
[A-T patch] changing should_skip_module to support regex skip patterns
As you can see from the email below, some modules embed a version number in the module 'mod_fastcgi-2.4.2-AP20.dll'. Our should_skip_module only matches an exact name. The patch at the end of this email extends the functionality to support regex skip arguments. Let me know if you have any objections to this change. The only bad things about this change is that it slows things a bit (now needs to iterate over all entries in skip list on each module, previously it was a single hash lookup). Nick, also please confirm that the patch below *does* work for you :) Thanks. Nick *** wrote: Nick *** wrote: Are you running the latest dev svn? The latest svn is fine. I just removed the patch in order to test more this issue, and that's the coredump... Understood. I certainly don't have the time to look at fastcgi problems at the moment. If someone can that would be great. so we are all well on this setup. Great! Not quite well with RC3. When executing this code in TestRun.pm # - don't inherit LoadModule perl_module from the apache httpd.conf # - loaded fastcgi crashes some mp2 tests my %skip = map { (mod_$_.c = 1) } qw(perl fastcgi); sub should_skip_module { my($self, $name) = @_; print \n\n$name\n\n; exists $skip{$name} ? 1 : $self-SUPER::should_skip_module($name); } and checking for fastcgi, the value of $name is 'mod_fastcgi-2.4.2-AP20.dll' and not 'mod_fastcgi.c', so the module is loaded and the tests fail again. Please try this patch: Index: lib/ModPerl/TestRun.pm === --- lib/ModPerl/TestRun.pm (revision 124346) +++ lib/ModPerl/TestRun.pm (working copy) @@ -64,12 +64,9 @@ # - don't inherit LoadModule perl_module from the apache httpd.conf # - loaded fastcgi crashes some mp2 tests -my %skip = map { (mod_$_.c = 1) } qw(perl fastcgi); -sub should_skip_module { -my($self, $name) = @_; +my @skip = ('mod_perl.c', qr/mod_fastcgi.*?\.c$/); -exists $skip{$name} ? 1 : $self-SUPER::should_skip_module($name); -} +Apache::TestConfig::autoconfig_skip_module_add(@skip); 1; Index: Apache-Test/lib/Apache/TestConfigParse.pm === --- Apache-Test/lib/Apache/TestConfigParse.pm (revision 124346) +++ Apache-Test/lib/Apache/TestConfigParse.pm (working copy) @@ -162,20 +162,28 @@ #XXX mod_jk requires JkWorkerFile or JkWorker to be configured #skip it for now, tomcat has its own test suite anyhow. #XXX: mod_casp2.so requires other settings in addition to LoadModule -my %autoconfig_skip_module = map { $_, 1 } qw(mod_jk.c mod_casp2.c); +my @autoconfig_skip_module = qw(mod_jk.c mod_casp2.c); # add modules to be not inherited from the existing config. # e.g. prevent from LoadModule perl_module to be included twice, when # mod_perl already configures LoadModule and it's certainly found in # the existing httpd.conf installed system-wide. sub autoconfig_skip_module_add { -my($name) = @_; -$autoconfig_skip_module{$name} = 1; +push @autoconfig_skip_module, @_; } sub should_skip_module { my($self, $name) = @_; -return $autoconfig_skip_module{$name} ? 1 : 0; + +for (@autoconfig_skip_module) { +if (UNIVERSAL::isa($_, 'Regexp')) { +return 1 if $name =~ /$_/; +} +else { +return 1 if $name eq $_; +} +} +return 0; } #inherit LoadModule @@ -192,7 +200,8 @@ } my $name = basename $args-[1]; -$name =~ s/\.s[ol]$/.c/; #mod_info.so = mod_info.c +$name =~ s/\.(s[ol]|dll)$/.c/; #mod_info.so = mod_info.c +$name =~ s/\.dll$/.c/; #mod_info.so = mod_info.c $name =~ s/^lib/mod_/; #libphp4.so = mod_php4.c $name = $modname_alias{$name} if $modname_alias{$name}; -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: [A-T patch] changing should_skip_module to support regex skip patterns
Stas Bekman wrote: As you can see from the email below, some modules embed a version number in the module 'mod_fastcgi-2.4.2-AP20.dll'. Our should_skip_module only matches an exact name. The patch at the end of this email extends the functionality to support regex skip arguments. Let me know if you have any objections to this change. +1 +$name =~ s/\.(s[ol]|dll)$/.c/; #mod_info.so = mod_info.c +$name =~ s/\.dll$/.c/; #mod_info.so = mod_info.c ? --Geoff
[ANNOUNCE] Apache-Test 1.19
The uploaded file Apache-Test-1.19.tar.gz has entered CPAN as file: $CPAN/authors/id/G/GO/GOZER/Apache-Test-1.19.tar.gz size: 142015 bytes md5: 795c1fcefd0f21b126f573fc46427139 Changes since 1.18: Test for module.c instead of module.so for IfModule in find_and_load_module [Chia-Liang Kao chialiang gmail.com] Apache-Test/META.yml is excluded from mp2 distro to make PAUSE indexer happy, but then perl Makefile.PL complains about a missing META.yml, so autogenerate it if it wasn't in the distro [Stas] Philippe M. Chiasson m/gozer\@(apache|cpan|ectoplasm)\.org/ GPG KeyID : 88C3A5A5 http://gozer.ectoplasm.org/ F9BF E0C2 480E 7680 1AE5 3631 CB32 A107 88C3A5A5 signature.asc Description: OpenPGP digital signature