BAD state/State failure with large number of requests

Daniel Hartmeier daniel at benzedrine.cx
Fri Sep 29 00:42:07 PDT 2006


On Fri, Sep 29, 2006 at 01:00:30AM +0200, Rolf Grossmann wrote:

> I've been suspecting that the test is flawed, but I couldn't put my 
> finger on it. However, I also need a way to actually test my 
> application with a lot of requests and I wouldn't want to buy another 
> server farm for that ;)

You could give the client multiple IP aliases and bind different
concurrent client instances to different aliases (all on the same single
client host), that would multiply the number of available source ports
by the number of IP aliases.

It seems ab doesn't have a command line option to make it bind to a
specific source address, you could either add a hack for that, or try
using jail to bind instances to aliases (if it can do that, not sure).

> That timeout seems awfully long to me. Is there some standard that 
> mandates such a long timeout? At least for testing I will definitely 
> lower that, too.

Yes, the original TCP RFC 793 [1] uses an MSL of two minutes, even.

In a local LAN test the MSL (Maximum Segment Lifetime), the time a TCP
packet can spend travelling through the network, is obviously much
shorter. On the internet, different packets could take different routes
through different paths between peers. If you send packets with TTL 255
(allowing up to 255 intermediate hops decrementing TTL by one when
forwarding packets), and assume latencies in the order of hundreds of
milliseconds between hops, I guess you can end up with MSL in the order
of minutes in the worst case. That's hardly an issue on a local ethernet
segment ;)

Daniel.

[1] http://www.faqs.org/rfcs/rfc793.html


More information about the freebsd-pf mailing list