Blankman
Blankman

Reputation: 266900

ab is erroring out with apr_socket_recv: Connection refused (61)

I am testing eventlet out, and I am getting this error:

~>ab -n 10 -c 1 http://localhost:8090/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)...apr_socket_recv: Connection reset by peer (54)
Total of 2 requests completed

The website works at localhost:8090/ and returns 200 OK.

I had the same issue with tomcat, again the website worked fine.

What could the issue be?

Upvotes: 85

Views: 46127

Answers (5)

Sun Liwen
Sun Liwen

Reputation: 1222

New versions of Apache have fixed the issue. Download the latest package from https://archive.apache.org/dist/:

$ wget https://archive.apache.org/dist/httpd/httpd-2.3.16-beta.tar.bz2
$ tar jxvf httpd-2.3.16-beta.tar.bz2 
$ cd httpd-2.3.16-beta
$ ./configure

You only have to build ab, which is located in the support folder.

$ cd support
$ make
...
$ ./ab -n 10 -c 1 http://localhost:8090/

Upvotes: 11

x-yuri
x-yuri

Reputation: 18823

Another related bug that is still present in ab (apache-2.4.29) is that it takes just the first result from getaddrinfo. It's probably this bug that is mentioned by Jürgen Strobel in a comment. Let's say you have /etc/hosts that goes like this:

127.0.0.1   localhost.localdomain   localhost
::1     localhost.localdomain   localhost

The first result returned by getaddrinfo for localhost is ::1. So ab tries to connect over IPv6 and fails. The workaround is to use 127.0.0.1: ab -n 10 127.0.0.1/. Or reorder the lines. Though, in my case it says:

Benchmarking localhost (be patient)...apr_socket_recv: Connection refused (111)

Upvotes: 1

Fan Yer
Fan Yer

Reputation: 393

add the -r option which means Don't exit on socket receive errors. At times you might change the default ulimit size value. ab -r -n 10 -c 1 http://localhost:8090/

Upvotes: 12

bithavoc
bithavoc

Reputation: 1539

There is a patch for this bug, I followed the steps of this guide and it seems to work for me now in Lion.

Upvotes: 0

dkam
dkam

Reputation: 3916

I found using 127.0.0.1 rather than localhost worked:

ab -n 10 -c 1 http://127.0.0.1:8090/

Update: May have been a bug in ab: https://groups.google.com/forum/#!msg/nodejs/TZU5H7MdoII/yivu0d4LMaAJ

Upvotes: 182

Related Questions