1 |
flood STATUS: -*-text-*- |
2 |
Last modified at [$Date$] |
3 |
|
4 |
Release: |
5 |
|
6 |
1.0: Released July 23, 2002 |
7 |
milestone-03: Tagged January 16, 2002 |
8 |
ASF-transfer: Released July 17, 2001 |
9 |
milestone-02: Tagged August 13, 2001 |
10 |
milestone-01: Tagged July 11, 2001 (tag lost during transfer) |
11 |
|
12 |
RELEASE SHOWSTOPPERS: |
13 |
|
14 |
* "Everything needs to work perfectly" |
15 |
|
16 |
Other bugs that need fixing: |
17 |
|
18 |
* I get a SIGBUS on Darwin with our examples/round-robin-ssl.xml |
19 |
config, on the second URL. I'm using OpenSSL 0.9.6c 21 dec 2001. |
20 |
|
21 |
* iPlanet sends "Content-length" - there is a hack in there now |
22 |
to recognize it. However, all HTTP headers need to be normalized |
23 |
before checking their values. This isn't easy to do. Grr. |
24 |
|
25 |
* OpenSSL 0.9.6 |
26 |
Segfaults under high load. Upgrade to OpenSSL 0.9.6b. |
27 |
Aaron says: I just found a big bug that might have been causing |
28 |
this all along (we weren't closing ssl sockets). |
29 |
How can I reproduce the problem you were seeing |
30 |
to verify if this was the fix? |
31 |
|
32 |
* SEGVs when /tmp/.rnd doesn't exist are bad. Make it configurable |
33 |
and at least bomb with a good error message. (See Doug's patch.) |
34 |
Status: This is fixed, no? |
35 |
|
36 |
* If APR has disabled threads, flood should as well. We might want |
37 |
to have an enable/disable parameter that does this also, providing |
38 |
an error if threads are desired but not available. |
39 |
|
40 |
* flood needs to clear pools more often. With a long running test |
41 |
it can chew up memory very quickly. We should just bite the bullet |
42 |
and create/destroy/clear pools for each level of our model: |
43 |
farm, farmer, profile, url/request-cycle, etc. |
44 |
|
45 |
* APR needs to have a unified interface for ephemeral port |
46 |
exhaustion, but aparently Solaris and Linux return different |
47 |
errors at the moment. Fix this in APR then take advantage of |
48 |
it in flood. |
49 |
|
50 |
* The examples/analyze-relative scripts fail when there are less |
51 |
than 5 unique URLs. |
52 |
|
53 |
Other features that need writing: |
54 |
|
55 |
* More analysis and graphing scripts are needed |
56 |
|
57 |
* Write robust tool (using tethereal perhaps) to take network dumps |
58 |
and convert them to flood's XML format. |
59 |
Status: Justin volunteers. Aaron had a script somewhere that is |
60 |
a start. Jacek is working on a Mozilla application, codename |
61 |
"Flood URL bag" (much like Live HTTP Headers) and small |
62 |
HTTP proxy. |
63 |
|
64 |
* Get chunked encoding support working. |
65 |
Status: Justin volunteers. He got sidetracked by the httpd |
66 |
implementation of input filtering and never finished |
67 |
this. This is a stopgap until apr-serf is completed. |
68 |
|
69 |
* Maybe we should make randfile and capath runtime directives that |
70 |
come out of the XML, instead of autoconf parameters. |
71 |
|
72 |
* We are using apr_os_thread_current() and getpid() in some places |
73 |
when what we really want is a GUID. The GUID will be used to |
74 |
correlate raw output data with each farmer. We may wish to print |
75 |
a unique ID for each of farm, farmer, profile, and url to help in |
76 |
postprocessing. |
77 |
|
78 |
* We are using strtol() in some places and strtoll() in others. |
79 |
Pick one (Aaron says strtol(), but he's not sure). |
80 |
|
81 |
* Validation of responses (known C-L, specific strings in response) |
82 |
Status: Justin volunteers |
83 |
|
84 |
* HTTP error codes (ie. teach it about 302s) |
85 |
Justin says: Yeah, this won't be with round_robin as implemented. |
86 |
Need a linked list-based profile where we can insert |
87 |
new URLs into the sequence. |
88 |
|
89 |
* Farmer (Single-thread, multiple profiles) |
90 |
Status: Aaron says: If you have threads, then any Farmer can be |
91 |
run as part of any Farm. If you don't have threads, you can |
92 |
currently only run one Farmer named "Joe" right now (this will |
93 |
be changed so that if you don't have threads, flood will attempt |
94 |
to run all Farmers in serial under one process). |
95 |
|
96 |
* Collective (Single-host, multiple farms) |
97 |
This is a number of Farms that have been fork()ed into child processes. |
98 |
|
99 |
* Megaconglomerate (Multiple hosts each running a collective) |
100 |
This is a number of Collectives running on a number of hosts, invoked |
101 |
via RSH/SSH or maybe even some proprietary mechanism. |
102 |
|
103 |
* Other types of urllists |
104 |
a) Random / Random-weighted |
105 |
b) Sequenced (useful with cookie propogation) |
106 |
c) Round-robin |
107 |
d) Chaining of the above strategies |
108 |
Status: Round-robin is complete. |
109 |
|
110 |
* Other types of reports |
111 |
Status: Aaron says: "simple" reports are functional. Justin added |
112 |
a new type that simply prints the approx. timestamp when |
113 |
the test was run, and the result as OK/FAIL; it is called |
114 |
"easy reports" (see flood_easy_reports.h). |
115 |
Furthermore, simple_reports and easy_reports both print |
116 |
out the current requesting URI line. |
117 |
|
118 |
Documentation that needs writing: |
119 |
|
120 |
* Documentation? What documentation? RTFS? |
121 |
Status: Justin volunteers. He'll probably use Anakia for user |
122 |
docs and doxygen for source code comments. |
123 |
|
124 |
* Feature set |
125 |
We'll have to eventually write down all the features we support, |
126 |
which will most likely come out to be the various XML parameters |
127 |
we support. |
128 |
|
129 |
Available Patches: |
130 |
|
131 |
Open issues: |
132 |
|
133 |
* Ponder using apr-serf in flood |
134 |
Status: This requires apr-serf to be written. Chicken and egg. |
135 |
Ideally, apr-serf would handle buckets, filters, and |
136 |
other cool stuff. However, this isn't the highest of |
137 |
priorities. |
138 |
|
139 |
* Validating XML Parser? |
140 |
Justin says: I don't think we want this. We want a standalone |
141 |
validator. |
142 |
Aaron says: I strongly feel we should have this turned on at |
143 |
least for the invoking "Megaconglomerate". The added |
144 |
overhead for validating when we're already parsing |
145 |
will be minimal. It will not affect the results of |
146 |
the tests. It only happens when a new flood process |
147 |
is created (directly or via rsh/ssh), not when invoking |
148 |
a collective, farm, farmer, or profile. What it gives |
149 |
us from the user's standpoint is far greater than |
150 |
the impact of the added startup overhead. |
151 |
(Maybe a flood argument that disables it for when |
152 |
some UI wrapper already did the checking or if it's |
153 |
being invoked as part of a megaconglomerate (rsh/ssh).) |
154 |
|
155 |
* Supporting use of installed APR / APR-util |
156 |
Justin says: Requires changes to APR/APR-util to make it install |
157 |
the right stuff. We currently rely on the source. |
158 |
|
159 |
* Mandrake Linux 8.0 and OpenSSL 0.9.6a just aren't coexisting at all. |
160 |
The problem seems to be that OpenSSL is refusing to initialize the |
161 |
PRNG. Go figure. I give up on this for now, but it is a big nasty |
162 |
bug in something somewhere. This code works on Solaris/Intel. |
163 |
That's all I'll say on the matter for now. |
164 |
|
165 |
* Report Aggregation |
166 |
We're not sure how to handle reporting quite yet. We'd like to keep |
167 |
it open ended and flexible, but that will be difficult to do while |
168 |
maintaining the ability to run a huge variety of tests. |
169 |
|
170 |
* WebLogic 5.10 Service Pack 9 |
171 |
No one told BEA how to make an HTTP server. Send it Connection: Close |
172 |
and a cookie, and it'll respond with Connection: Keep-Alive (no cookie |
173 |
and it honors Connection: Close). That's wrong. |