I was thinking about ways to help pinpoint problems a client is having connecting to services.  And a thought occurred to me.

Is there any kind of software available that can stand up a broken HTTP server, such that it is broken in very specific and configurable ways?

Imagine a bit of software that can listen on a port and exhibit configurable failure scenarios.  Including but certainly not limited to these:

* SSL negotiation issues
* Simulate dropped packets by ignoring incoming packets or failing to send outgoing packets.
* Timeouts, delays, no response, or incorrect behavior at various phases:
** TCP
** SSL
** GET/HEAD/POST

Does anything like this already exist?  It would be an awesome troubleshooting tool.  Configure it to fail in some way, have a client try connecting to it with their software, and if they get the same error that they do when trying it with the real server, then you've possibly pinpointed what the problem on the real server is, without diving into logs or packet captures.  And the client may not know anything about the software they're using other than "it works fine connecting to XXX", making them an exceedingly unreliable source of information.

So I'm not interested in something that can analyze network traffic or logs.  I can already do that.  I am imagining a server that can intentionally misbehave.

And here's why I am asking my question on the haproxy mailing list:  I think haproxy itself would serve as the perfect starting point for this idea.  Imagine having configuration directives for haproxy that tell it to intentionally misbehave, either on the frontend or the backend.  It could run side by side with a production instance, on another port or on another machine, with a nearly identical config to production that has misbehave configuration directives.

Side note: I think haproxy would be a perfect fit at $DAY_JOB to replace a couple of problematic pieces of software, but I until I understand better how that software is configured, I can't mention it as a possible solution.  I really like haproxy. Please keep up the good work.  I'm looking for ways I can contribute to the project's success.

Thanks,
Shawn


Reply via email to