Fork me on Github
Fork me on Github

Joe Dog Software

Proudly serving the Internets since 1999

Siege 4.1.1

Your JoeDog has been busy! We’ve fixed more bugs and added more features. Whoo hoo!

This release improves –reps=once. Prior to this release, each user would complete the urls.txt files. So if you had 5 users, each URL in the file was requested five times. That’s the way it was intended, you guys! Unfortunately, that matched the expectations of exactly no siege users on Earth. Now each siege user takes an unused URL and makes a request for it. If the urls.txt file contains 100 URLs, siege will make 100 requests no matter how many users are running. NOTE: If you have the parser enabled, it will still make all those requests so the total can still be a lot higher than 100 requests.

With release 4.1.1, siege now handles HTTP 201 responses and follows its Content-Location. This works with both POST and PUT requests.

This release fixes an issue with FTP requests. You’ll have less trouble locating files. It contains other minor bug fixes as well.

You can find the latest siege release here: SIEGE-4.1.1

Siege 4.1.0

Your JoeDog fixed a bug! A password that contained a ‘#’ was chomped at the ‘#’ because siege treated it like a comment. So if you set this: login = jeff:haha#papa:Basic Realm in your siege.conf, siege would send the password ‘haha’ to the server. D’oh! This release fixes that bug.

Siege 4.1.0 also includes prettified output for credentials in ‘siege -C’ And who doesn’t like prettified output?

All siege users should probably update to version 4.1.0


Your JoeDog is happy to release fido-1.1.7. Exciting! This release contains several bug fixes that you don’t want to miss. For example, if you forgot to put “interval” inside a file block, fido checked once then never checked again. Who needs that? We added a default interval of five seconds. You can override that inside a file block:

/home/jeff/var {
rules = modified
action = /home/jeff/bin/
interval = 2s # modifiers include s=seconds, m=minutes, h=hours.
# Default is seconds if no modifier is specified

All users and packagers should update to this release.

Siege 4.0.9

Your JoeDog is proud to release siege-4.0.9. This release is filled with boring ol’ bug fixes but you need them! In the cookies module, we perform additional integrity checks to make sure you don’t experience any nasty segmentation faults. Who needs that?

This release also prettifies JSON output and corrects the default setting. The default JSON output is now FALSE – as it should be. You can set it to true in $HOME/.siege/siege.conf or by adding -j/–json at the command line.

All package managers should update to siege-4.0.9

Siege 4.0.8

Your JoeDog fixed more bugs, you guys. We’d like to thank all contributors for their Issue reports and their patch submissions. Good job!

This release fixes two issues. The parser could blow up and segfault on some less than exemplary HTML formatting. And while we own every segfault, we encourage better HTML. We’re all in this together! This release also fixes a compile issue on some platforms. All siege users are encouraged to update to 4.0.8

Siege 4.0.7

Your JoeDog is pleased to announce the release of siege-4.0.7 This release fixes several issues with cookies, namely issues with expiry and persistence. We recommend that all siege users update to this release.

Siege 4.0.6

Your JoeDog is pleased to announce the release of siege-4.0.6 This release fixes a bug that caused siege to hang when it was invoked for time-based testing (-t/–time). Your JoeDog ran this version over 5000 times without it hanging.

Your JoeDog would like to thank GitHub user ks1322 for a detailed bug report complete with back traces which helped us pinpoint the problem

Siege 4.0.5

Your JoeDog is pleased to announce the release of siege-4.0.5. Exciting!

This release includes several bug fixes and minor corrections. It also includes support for IPv6. It allows you to override content-type at the command line and it provides an option for outputting the results in JSON.

You can turn on JSON output with -j/–json-output

$ siege --no-parser -j -c5 -r5

"transactions": 50,
"availability": 100.00,
"elapsed_time": 7.34,
"data_transferred": 0.86,
"response_time": 0.67,
"transaction_rate": 6.81,
"throughput": 0.12,
"concurrency": 4.54,
"successful_transactions": 50,
"failed_transactions": 0,
"longest_transaction": 2.21,
"shortest_transaction": 0.14

Siege 4.0.4

Your JoeDog is pleased to announce the release of siege-4.0.4. Exciting!

This release includes numerous bug fixes. If you have cooties, then it has the cure. In addition to fixes, it offers three new command line options:

-p URL, –print=URL
This option is similar to -g / –get but it PRINTS the page it received from the server.

Turn off the HTML parser. When siege downloads a page, it parses it for additional page elements such as style-sheets, javascript and images. It will make additional requests for any elements it finds. With this option enabled, siege will stop after it pulls down the main page.

This directive instructs siege not to follow 3xx redirects.

This release also includes support for PATCH and PUT.

Siege: Zip encoding disabled

Your JoeDog was just alerted to this behavior in siege:

[alert] Zip encoding disabled; siege requires zlib support to enable it
Segmentation fault: 11

Certainly the segmentation fault is the result of a bug, but we also have a configuration error. Siege is accepting a content encoding that it doesn’t support.

HTTP protocol allows servers to encode content before they send it. If a page is really large, the server might compress it first. But here’s the thing: If the server uses an encoding the client doesn’t support, then it’s pointless to encode it, right? HTTP provides a mechanism by which you can tell the server the encodings you support.

That brings us to the Accept-encoding request header. In this case, siege is sending something like ‘Accept-encoding: gzip’ although it wasn’t compiled with a compression library. To fix this problem, you can do one of two things: 1.) recompile siege with zlib and zlib-devel installed on your system. 2.) Send an empty Accept-encoding header.

You can configure that in your $HOME/.siege/siege.conf file like this:

accept-encoding =

But honestly, you should probably recompile siege with zlib and zlib-devel installed on your system…

UPDATE: Your JoeDog is unable to reproduce this segmentation fault. The sieger who reported this issue hasn’t responded with the version he is using. If you’re experiencing this, we recommend updating to version 4.0.3rc5 or higher.