Hello,

I'd like to report an issue where sometimes PUT/POST request bodies do not
get proxied. Headers are sent then the backend server waits to receive the
body. It never arrives and after 5 minutes  the socket times out. This
happens in all the 1.8 releases up until 1.8.14 but it doesn't happen in
1.7. In fact one of the ways we mitigate the issue is by reverting back to
1.7.

Normally the requests go through without an issue. We see about 1M+
requests per day. However about 5 or 10 of those end up failing as
described. Is there anything we can do to debug the issue further, or were
there any changes that might lead to this specific bug in 1.8.x?

More details about our setup:
 Lua is used on all requests
 nbproc > 1
 Not using threads
 Request body sizes about 30-50KB

Some config settings:
  option http-server-close
  option log-health-checks
  option log-separate-errors
  option redispatch
  retries 4
  timeout client 150000
  timeout connect 5000
  timeout queue 5000
  timeout server 3600000

$ /usr/sbin/haproxy -vv
HA-Proxy version 1.8.14-52e4d43 2018/09/20
Copyright 2000-2018 Willy Tarreau <wi...@haproxy.org>

Build options :
  TARGET  = linux2628
  CPU     = generic
  CC      = gcc
  CFLAGS  = -m64 -march=x86-64 -O2 -g -fno-strict-aliasing
-Wdeclaration-after-statement -fwrapv -fno-strict-overflow -Wno-unused-label
  OPTIONS = USE_SLZ=1 USE_REGPARM=1 USE_THREAD=1 USE_OPENSSL=1 USE_LUA=1
USE_SYSTEMD=1 USE_STATIC_PCRE2=1 USE_PCRE2_JIT=1 USE_TFO=1

Default settings :
  maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = 200

Built with OpenSSL version : OpenSSL 1.1.1  11 Sep 2018
Running on OpenSSL version : OpenSSL 1.1.1  11 Sep 2018
OpenSSL library supports TLS extensions : yes
OpenSSL library supports SNI : yes
OpenSSL library supports : TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3
Built with Lua version : Lua 5.3.4
Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT
IP_FREEBIND
Encrypted password support via crypt(3): yes
Built with multi-threading support.
Built with PCRE2 version : 10.31 2018-02-12
PCRE2 library supports JIT : yes
Built with libslz for stateless compression.
Compression algorithms supported : identity("identity"),
deflate("deflate"), raw-deflate("deflate"), gzip("gzip")
Built with network namespace support.

Available polling systems :
      epoll : pref=300,  test result OK
       poll : pref=200,  test result OK
     select : pref=150,  test result OK
Total: 3 (3 usable), will use epoll.

Available filters :
[SPOE] spoe
[COMP] compression
[TRACE] trace

Thank you
-Nick Vatamaniuc

Reply via email to