On 7/27/2014 7:23 PM, Nathan Neulinger wrote:
> Unfortunately, doesn't look like this clears the symptom.
> 
> The ping is responding almost instantly every time. I've tried setting a
> 15 second timeout on the check, with no change in occurences of the error.
> 
> Looking at a packet capture on the server side, there is a clear
> distinction between working and failing/error-triggering connections.
> 
> It looks like in a "working" case, I see two packets immediately back to
> back (one with header, and next a continuation with content) with no ack
> in between, followed by ack, rst+ack, rst.
> 
> In the failing request, I see the GET request, acked, then the http/1.1
> 200 Ok response from Solr, a single ack, and then an almost
> instantaneous reset sent by the client.
> 
> 
> I'm only seeing this on traffic to/from haproxy checks. If I do a simple:
> 
>     while [ true ]; do curl -s http://host:8983/solr/admin/ping; done
> 
> from the same box, that flood runs with generally 10-20ms request times
> and zero errors.
I won't claim to understand what's going on here, but it might be a
matter of the haproxy options.  Here are the options I'm using in the
"defaults" section of the config:

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        option  redispatch
        option  abortonclose
        option  http-server-close
        option  http-pretend-keepalive
        retries 1
        maxconn 1024
        timeout connect 1s
        timeout client  5s
        timeout server  30s

One bit of information I came across when I first started setting
haproxy up for Solr is that servlet containers like Jetty and Tomcat
require the "http-pretend-keepalive" option to work properly.  Are you
using this option?

Thanks,
Shawn

Reply via email to