flood STATUS: -*-text-*- Last modified at [$Date$] Release: ASF-transfer: Released July 17, 2001 milestone-0-1: Tagged July 11, 2001 (tag lost during transfer) RELEASE SHOWSTOPPERS: * "Everything needs to work perfectly" Other bugs that need fixing: * DNS lookup failures in any cause segfault. Justin says: Wow. Why? * Misformed URLs cause a segfault. When we fix this we should make sure to print out a helpful message when this occurs. (This is not something that can be detected with a validating XML parser, unfortunately.) * 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. Other features that need writing: * 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? * 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: * 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. * OpenSSL 0.9.6 Segfaults under high load. Upgrade to OpenSSL 0.9.6b.