I setup a duplicate config on my local workstation (our production one
is quite large and not suitable for sharing in its entirety).
Interestingly I can't get an 'SC--' with a <NOSRV> when doing
tcp-request connection reject.

I'll dig a bit further. Is there any other scenario that might cause
an SC-- termination state with <NOSRV>?

Thanks!
Jason

On Thu, Mar 26, 2015 at 5:02 PM, Cyril Bonté <[email protected]> wrote:
> Hi Jason,
>
> Le 27/03/2015 01:14, Jason Harvey a écrit :
>>
>> Hello!
>>
>> I recently ran into a case where I was hunting down the cause of the
>> termination of a request looking like the following (IPs changed to
>> protect the innocent and/or guilty):
>>
>>
>> Mar 26 23:01:43 localhost haproxy[17207]: 1.2.3.4:19036
>> [26/Mar/2015:23:01:43.477] http-in http-in/<NOSRV> -1/-1/-1/-1/0 503
>> 1130 - - SC-- 601/38/0/0/0 0/0 {||3.4.5.6||||||} {||||||||||||||||}
>> "GET / HTTP/1.1"
>>
>>
>> What first caught my eye was the 'SC' termination state, which I
>> believed suggested that a backend server had rejected this request.
>> However as you can see from above, not only is there no backend, it is
>> a <NOSRV>.
>>
>>
>> After fumbling around for a bit I realized that this request matched a
>> 'tcp-request connection reject' in the frontend.
>
>
> Weird, because 'tcp-request connection reject' is not supposed to log
> anything. It's designed to silently reject the incoming connection.
>
> Can you share your configuration (don't forget to remove sensitive data) and
> the output of "haproxy -vv" ?
>
>> This surprised me, as
>> I didn't anticipate the resulting termination_state. The docs
>> specifically say that an 'S' means that the session was aborted "by
>> the server", when in fact no server was involved, as evidenced by the
>> <NOSRV> line.
>
>
> At this point, the configuration should help to see what happens.
>
>
>>
>> If this is working as intended, would it be reasonable to adjust the
>> documentation of the flags to account for such a case?
>>
>> I'm also trying to determine how to appropriately monitor these cases.
>> If a flag says 'S', up until now I've believed that to have only been
>> possibly caused by a server, and as such my monitoring is designed
>> with this assumption. Now I realize that if it is 'S', I guess I need
>> to check the server info in the log to determine if it was truly a
>> server's fault, or it was nuked by haproxy. Any thoughts or
>> suggestions?
>>
>> If this is *not* working as intended, might I suggest a special
>> termination flag, like what we get with 'tarpit'?
>>
>>
>> Thanks!
>> Jason Harvey
>>
>
>
> --
> Cyril Bonté

Reply via email to