| flood STATUS: -*-text-*- |
| Last modified at [$Date: 2002/09/06 10:24:42 $] |
| |
| 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. |
| |
| * 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, simple_reports and easy_reports both print |
| out the current requesting URI line. |
| |
| Documentation that needs writing: |
| |
| * Documentation? What documentation? RTFS? |
| Status: Justin volunteers. He'll probably use Anakia for user |
| docs and doxygen for source code comments. |
| |
| * Feature set |
| We'll have to eventually write down all the features we support, |
| which will most likely come out to be the various XML parameters |
| we support. |
| |
| Available Patches: |
| |
| Open issues: |
| |
| * Ponder using apr-serf in flood |
| Status: This requires apr-serf to be written. Chicken and egg. |
| Ideally, apr-serf would handle buckets, filters, and |
| other cool stuff. However, this isn't the highest of |
| priorities. |
| |
| * Validating XML Parser? |
| Justin says: I don't think we want this. We want a standalone |
| validator. |
| Aaron says: I strongly feel we should have this turned on at |
| least for the invoking "Megaconglomerate". The added |
| overhead for validating when we're already parsing |
| will be minimal. It will not affect the results of |
| the tests. It only happens when a new flood process |
| is created (directly or via rsh/ssh), not when invoking |
| a collective, farm, farmer, or profile. What it gives |
| us from the user's standpoint is far greater than |
| the impact of the added startup overhead. |
| (Maybe a flood argument that disables it for when |
| some UI wrapper already did the checking or if it's |
| being invoked as part of a megaconglomerate (rsh/ssh).) |
| |
| * Supporting use of installed APR / APR-util |
| Justin says: Requires changes to APR/APR-util to make it install |
| the right stuff. We currently rely on the source. |
| |
| * Mandrake Linux 8.0 and OpenSSL 0.9.6a just aren't coexisting at all. |
| The problem seems to be that OpenSSL is refusing to initialize the |
| PRNG. Go figure. I give up on this for now, but it is a big nasty |
| bug in something somewhere. This code works on Solaris/Intel. |
| That's all I'll say on the matter for now. |
| |
| * Report Aggregation |
| We're not sure how to handle reporting quite yet. We'd like to keep |
| it open ended and flexible, but that will be difficult to do while |
| maintaining the ability to run a huge variety of tests. |
| |
| * WebLogic 5.10 Service Pack 9 |
| No one told BEA how to make an HTTP server. Send it Connection: Close |
| and a cookie, and it'll respond with Connection: Keep-Alive (no cookie |
| and it honors Connection: Close). That's wrong. |