poniedziałek, 23 stycznia 2012

OSX Lion, apache bench "Connection reset by peer"

Obecnie testuje różne kontenery http na jruby, oprócz uruchomienia i testu z przegladarki zależy mi na określeniu jaka będzie strata/zysk przy konwersji MRI->JRUBY. Naturalnym dla mnie narzędziem do takich testów jest ab z pakietu apache utils.

Jakie było moje zdziwienie kiedy zamiast czasu otrzymałem błąd:

$ ab.old -n100 -c40 http://localhost:3000/
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)...Send request failed!
Send request failed!
Send request failed!
apr_socket_recv: Connection reset by peer (54)
Total of 3 requests completed


pół dnia spędziłem, zmieniając serwery, zmieniłem również implementacje javy na openjdk, wszystko na nic, aby pod koniec dnia natrafić na odpowiedz na superuser. Czemu wcześniej na to nie trafiłem? A kto by podejrzewał ab...

Okazało się że ab dostarczany z osx ma ten błąd i należy przekompliować ab z źródeł. no comment

UPDATE: po kompilacji dostłem nowy błąd "bind: address family not supported by protocol family 47", tu znowu wkracza osx ktory za localhost podstawia adres IPv6. Rozwiązanie polegało na usunięciu wpisów ipv6 z /etc/hosts powiązanych z localhostem