The NOSRV can simply mean you have received a request that does not match
your backend selection acls, common to bots probing for wordpress login
page etc.

On Fri, 12 Oct 2018 12:23 am Michał Pasierb <[email protected]>
wrote:

> Hello,
>
> I did not mention it but all servers in c_backend have a httpchk
> configured. There is nothing in the HAProxy logs indicating the servers or
> the backend was not available during the time of the request. Indeed the
> stats page shows only 4 health checks did not pass on each server since
> HAProxy started and I know they were triggered by application deployment to
> the servers. This is rock solid. The servers in the backend handle
> thousands of requests during a day and log lines like these occur about 50
> times a day.
>
> I tried to replicate the termination state in my lab but I failed. I got
> only CC--, CR-- and CD-- and http status is always set correctly (not to
> -1). The origin log line has CH-- which indicates HAProxy was waiting for
> reponse headers from a server so (this implies?) it connected somewhere. So
> why server is marked as <NOSRV> ?
>
> Regards,
> Michal
>
> On Thu, Oct 11, 2018 at 1:00 PM Aleksandar Lazic <[email protected]>
> wrote:
>
>> Am 11.10.2018 um 10:33 schrieb Michał Pasierb:
>> > Hello,
>> >
>> > I have a problem understanding a particular log line from HAProxy
>> 1.7.11 in
>> > production system. My clients report problems from time to time. They
>> make
>> > another request and all is OK. This is the log format used:
>> >
>> > log-format %tr\ %ci:%cp\ %ft\ %b/%s\ %TR/%Tw/%Tc/%Tr/%Ta\ %ST\ %B\ %CC\
>> %CS\
>> > %tsc\ %ac/%fc/%bc/%sc/%rc\ %sq/%bq\ %hr\ %hs\ %{+Q}r\ %ID\ %U\
>> %[res.comp]
>> >
>> > and the problematic log line:
>> >
>> > 02/Oct/2018:09:55:14.997 <ip-redacted>:46007 http-in c_backend/<NOSRV>
>> > 44/-1/-1/-1/44 -1 25 - - CHNN 143/36/2/0/3 0/0 {} {} "PUT
>> /api/xyz/status
>> > HTTP/1.1" <id-redacted> 764 0
>> >
>> > I can see that c_backend was properly selected based on acls. I can see
>> that
>> > client sent 764 bytes to HAProxy. The termination code is CH - client
>> aborted
>> > connection while HAProxy was waiting for headers from server. What
>> server ?
>> > There is <NOSRV> and connection time of -1. There were 3 connection
>> retries.
>> > HAProxy got 25 bytes from a server. The config contains:
>> >
>> > defaults
>> >   retries   3
>> >   option    redispatch
>> >
>> > Yet the retries is not +3 so it seems the redispatch did not take place.
>> >
>> > This is all confusing evidence. Can you explain what really happened ?
>>
>> None of the c_backend servers are reachable.
>> I assume that the -1 value is the status_code.
>>
>> Cite from
>> https://cbonte.github.io/haproxy-dconv/1.7/configuration.html#8.2.3
>>
>> ###
>>
>>  - "status_code" is the HTTP status code returned to the client. This
>> status
>>     is generally set by the server, but it might also be set by haproxy
>> when
>>     the server cannot be reached or when its response is blocked by
>> haproxy.
>>
>> ...
>>
>>   - "server_name" is the name of the last server to which the connection
>> was
>>     sent, which might differ from the first one if there were connection
>> errors
>>     and a redispatch occurred. Note that this server belongs to the
>> backend
>>     which processed the request. If the request was aborted before
>> reaching a
>>     server, "<NOSRV>" is indicated instead of a server name. If the
>> request was
>>     intercepted by the stats subsystem, "<STATS>" is indicated instead.
>> ###
>>
>> I suggest to use some checks for the c_backend for example
>>
>>
>> https://cbonte.github.io/haproxy-dconv/1.7/configuration.html#4-option%20httpchk
>>
>> > Thanks,
>> > Michal
>>
>> Best regards
>> Aleks
>>
>

Reply via email to