Just created an issue now: https://github.com/haproxy/haproxy/issues/671

Thanks, Sander

On 6/9/20 2:07 PM, Илья Шипицин wrote:
it is a good report. backtraces are very useful

is there github issue filled for it ? if no, can you please create one ?
I hope, it won't be lost that way

вт, 9 июн. 2020 г. в 15:13, Sander Hoentjen <san...@hoentjen.eu <mailto:san...@hoentjen.eu>>:

    Is there anybody with a clue? If I need to supply more info I can
    do so,
    of course.

    Kind regards,

    Sander

    On 6/2/20 4:12 PM, Sander Hoentjen wrote:
    > Hi list,
    >
    > Some time ago (around april 21st) we were using 1.8.13 and we
    switched
    > from nbthread = 1 to nbthread = 4
    >
    > This seemed stable for us, but 2 weeks ago we started seeing hangs
    > (100% CPU haproxy processes)
    >
    > We then updated to haproxy 2.0.14. The hangs are gone, but
    instead we
    > see disappearing haproxy processes.
    >
    > I turned on coredumps, and I have some output from gdb.
    >
    > Hope this is helpful in figuring out what's wrong.
    >
    >
    =====================================================================
    >
    > (gdb) bt
    > #0  0x00007fb4770854f5 in raise () from /lib64/libc.so.6
    > #1  0x00007fb477086cd5 in abort () from /lib64/libc.so.6
    > #2  0x000000000054ce3c in ha_panic () at src/debug.c:207
    > #3  0x000000000054d674 in wdt_handler (sig=14, si=<value optimized
    > out>, arg=<value optimized out>) at src/wdt.c:119
    > #4  <signal handler called>
    > #5  0x00007fb47713ccd7 in socket () from /lib64/libc.so.6
    > #6  0x00000000004fc75e in my_socketat (conn=0x7fb470036490,
    flags=8)
    > at include/common/namespace.h:28
    > #7  create_server_socket (conn=0x7fb470036490, flags=8) at
    > src/proto_tcp.c:257
    > #8  tcp_connect_server (conn=0x7fb470036490, flags=8) at
    > src/proto_tcp.c:323
    > #9  0x00000000004e8c94 in si_connect (s=0x7fb4703ad540) at
    > include/proto/stream_interface.h:513
    > #10 connect_server (s=0x7fb4703ad540) at src/backend.c:1591
    > #11 0x000000000044f373 in sess_update_stream_int
    (s=0x7fb4703ad540) at
    > src/stream.c:1015
    > #12 0x000000000045527e in process_stream (t=0x7fb4703b5620,
    > context=0x7fb4703ad540, state=<value optimized out>)
    >     at src/stream.c:2414
    > #13 0x000000000052a875 in process_runnable_tasks () at
    src/task.c:413
    > #14 0x00000000004980f8 in run_poll_loop (data=<value optimized
    out>)
    > at src/haproxy.c:2627
    > #15 run_thread_poll_loop (data=<value optimized out>) at
    > src/haproxy.c:2754
    > #16 0x00007fb477a25aa1 in start_thread (arg=0x7fb476786700) at
    > pthread_create.c:301
    > #17 0x00007fb47713bc2d in clone () from /lib64/libc.so.6
    > (gdb) bt full
    > #0  0x00007fb4770854f5 in raise () from /lib64/libc.so.6
    > No symbol table info available.
    > #1  0x00007fb477086cd5 in abort () from /lib64/libc.so.6
    > No symbol table info available.
    > #2  0x000000000054ce3c in ha_panic () at src/debug.c:207
    > No locals.
    > #3  0x000000000054d674 in wdt_handler (sig=14, si=<value optimized
    > out>, arg=<value optimized out>) at src/wdt.c:119
    >         n = <value optimized out>
    >         p = <value optimized out>
    >         thr = 1
    > #4  <signal handler called>
    > No symbol table info available.
    > #5  0x00007fb47713ccd7 in socket () from /lib64/libc.so.6
    > No symbol table info available.
    > #6  0x00000000004fc75e in my_socketat (conn=0x7fb470036490,
    flags=8)
    > at include/common/namespace.h:28
    > No locals.
    > #7  create_server_socket (conn=0x7fb470036490, flags=8) at
    > src/proto_tcp.c:257
    >         ns = 0x0
    > #8  tcp_connect_server (conn=0x7fb470036490, flags=8) at
    > src/proto_tcp.c:323
    >         fd = <value optimized out>
    >         srv = 0x4850bf0
    >         be = 0x25606b0
    >         src = <value optimized out>
    >         use_fastopen = 0
    >         addr = <value optimized out>
    > #9  0x00000000004e8c94 in si_connect (s=0x7fb4703ad540) at
    > include/proto/stream_interface.h:513
    >         ret = 0
    >         conn_flags = <value optimized out>
    > ---Type <return> to continue, or q <return> to quit---
    > #10 connect_server (s=0x7fb4703ad540) at src/backend.c:1591
    >         cli_conn = 0x7fb4703ca8f0
    >         srv_conn = 0x7fb470036490
    >         old_conn = <value optimized out>
    >         srv_cs = 0x7fb4703eb310
    >         srv = <value optimized out>
    >         reuse = <value optimized out>
    >         reuse_orphan = <value optimized out>
    >         init_mux = 1
    >         alloced_cs = <value optimized out>
    >         err = <value optimized out>
    > #11 0x000000000044f373 in sess_update_stream_int
    (s=0x7fb4703ad540) at
    > src/stream.c:1015
    >         conn_err = <value optimized out>
    >         srv = 0x4850bf0
    >         si = 0x7fb4703ad840
    >         req = 0x7fb4703ad550
    > #12 0x000000000045527e in process_stream (t=0x7fb4703b5620,
    > context=0x7fb4703ad540, state=<value optimized out>)
    >     at src/stream.c:2414
    >         srv = <value optimized out>
    >         s = 0x7fb4703ad540
    >         sess = 0x7fb4703ca620
    >         rqf_last = 9469952
    >         rpf_last = 2147483648
    >         rq_prod_last = 8
    >         rq_cons_last = 0
    >         rp_cons_last = 8
    >         rp_prod_last = 0
    >         req_ana_back = 0
    > ---Type <return> to continue, or q <return> to quit---
    >         req = 0x7fb4703ad550
    >         res = 0x7fb4703ad5b0
    >         si_f = 0x7fb4703ad7e8
    >         si_b = 0x7fb4703ad840
    >         rate = 151
    > #13 0x000000000052a875 in process_runnable_tasks () at
    src/task.c:413
    >         t = 0x7fb4703b5620
    >         state = <value optimized out>
    >         ctx = <value optimized out>
    >         process = 0x453b30 <process_stream>
    >         lrq = <value optimized out>
    >         grq = <value optimized out>
    >         t = <value optimized out>
    >         max_processed = 46
    > #14 0x00000000004980f8 in run_poll_loop (data=<value optimized
    out>)
    > at src/haproxy.c:2627
    >         next = <value optimized out>
    >         wake = <value optimized out>
    > #15 run_thread_poll_loop (data=<value optimized out>) at
    > src/haproxy.c:2754
    >         ptaf = <value optimized out>
    >         ptif = <value optimized out>
    >         ptdf = <value optimized out>
    >         ptff = <value optimized out>
    >         init_left = 0
    >         init_mutex = {__data = {__lock = 0, __count = 0, __owner
    = 0,
    > __nusers = 0, __kind = 0, __spins = 0,
    >             __list = {__prev = 0x0, __next = 0x0}}, __size = '\000'
    > <repeats 39 times>, __align = 0}
    >         init_cond = {__data = {__lock = 0, __futex = 10,
    __total_seq =
    > 5, __wakeup_seq = 5, __woken_seq = 5,
    >             __mutex = 0xa42120, __nwaiters = 0, __broadcast_seq
    = 3},
    >           __size =
    >
    
"\000\000\000\000\n\000\000\000\005\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\005\---Type

    > <return> to continue, or q <return> to quit---
    > 000\000\000\000\000\000\000
    > !\244\000\000\000\000\000\000\000\000\000\003\000\000", __align =
    > 42949672960}
    > #16 0x00007fb477a25aa1 in start_thread (arg=0x7fb476786700) at
    > pthread_create.c:301
    >         __res = <value optimized out>
    >         pd = 0x7fb476786700
    >         now = <value optimized out>
    >         unwind_buf = {cancel_jmp_buf = {{jmp_buf =
    {140413058443008,
    > 698637182382513297, 140413080150880,
    >                 140413058443712, 0, 3, -658965645218931567,
    > -658966367837741935}, mask_was_saved = 0}}, priv = {
    >             pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0,
    cleanup =
    > 0x0, canceltype = 0}}}
    >         not_first_call = <value optimized out>
    >         pagesize_m1 = <value optimized out>
    >         sp = <value optimized out>
    >         freesize = <value optimized out>
    > #17 0x00007fb47713bc2d in clone () from /lib64/libc.so.6
    > No symbol table info available.
    >
    > ===================================================
    >
    > haproxy.cfg:
    >
    > global
    >     # to have these messages end up in /var/log/haproxy.log you will
    >     # need to:
    >     #
    >     # 1) configure syslog to accept network log events.  This is
    done
    >     #    by adding the '-r' option to the SYSLOGD_OPTIONS in
    >     #    /etc/sysconfig/syslog
    >     #
    >     # 2) configure local2 events to go to the /var/log/haproxy.log
    >     #   file. A line like the following can be added to
    >     #   /etc/sysconfig/syslog
    >     #
    >     #    local2.* /var/log/haproxy.log
    >     #
    >     log         127.0.0.1 local2
    >
    >     chroot      /var/lib/haproxy
    >     pidfile     /var/run/haproxy.pid
    >     maxconn     4000
    >     user        haproxy
    >     group       haproxy
    >     nbthread    4
    >     daemon
    >
    >     # turn on stats unix socket
    >     stats socket /var/lib/haproxy/stats
    >     ssl-default-bind-options no-tls-tickets ssl-min-ver TLSv1.2
    >     ssl-default-bind-ciphers
    >
    
ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA
    >     tune.ssl.default-dh-param 4096
    >
    >
    > defaults
    >     mode                    tcp
    >     log                     global
    >     option                  tcplog
    >     option                  dontlognull
    >     retries                 3
    >     timeout http-request    10s
    >     timeout queue           1m
    >     timeout connect         10s
    >     timeout client          1m
    >     timeout server          1m
    >     #tunnel timeout needs to be higher than
    > lsapi_backend_max_process_time
    >     timeout tunnel          16m
    >     timeout http-keep-alive 10s
    >     timeout check           10s
    >     maxconn                 3000
    >
    > <snip>
    > =================================================
    >
    > haproxy -vv
    > HA-Proxy version 2.0.14 2020/04/02 - https://haproxy.org/
    > Build options :
    >   TARGET  = linux-glibc
    >   CPU     = generic
    >   CC      = gcc
    >   CFLAGS  = -O2 -g -fno-strict-aliasing
    -Wdeclaration-after-statement
    > -fwrapv -Wno-unused-label -Wno-sign-compare -Wno-unused-parameter
    > -Wno-old-style-declaration -Wno-ignored-qualifiers -Wno-clobbered
    > -Wno-missing-field-initializers -Wtype-limits
    >   OPTIONS = USE_PCRE=1 USE_PTHREAD_PSHARED=1 USE_REGPARM=1
    > USE_LINUX_TPROXY=1 USE_OPENSSL=1 USE_ZLIB=1 USE_NS=
    >
    > Feature list : +EPOLL -KQUEUE -MY_EPOLL -MY_SPLICE +NETFILTER +PCRE
    > -PCRE_JIT -PCRE2 -PCRE2_JIT +POLL -PRIVATE_CACHE +THREAD
    > +PTHREAD_PSHARED +REGPARM -STATIC_PCRE -STATIC_PCRE2 +TPROXY
    > +LINUX_TPROXY +LINUX_SPLICE +LIBCRYPT +CRYPT_H -VSYSCALL
    +GETADDRINFO
    > +OPENSSL -LUA +FUTEX +ACCEPT4 -MY_ACCEPT4 +ZLIB -SLZ +CPU_AFFINITY
    > +TFO -NS +DL +RT -DEVICEATLAS -51DEGREES -WURFL -SYSTEMD
    > -OBSOLETE_LINKER +PRCTL +THREAD_DUMP -EVPORTS
    >
    > Default settings :
    >   bufsize = 16384, maxrewrite = 1024, maxpollevents = 200
    >
    > Built with multi-threading support (MAX_THREADS=64, default=24).
    > Built with OpenSSL version : OpenSSL 1.1.1g  21 Apr 2020
    > Running on OpenSSL version : OpenSSL 1.1.1g  21 Apr 2020
    > OpenSSL library supports TLS extensions : yes
    > OpenSSL library supports SNI : yes
    > OpenSSL library supports : TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3
    > Built with transparent proxy support using: IP_TRANSPARENT
    > IPV6_TRANSPARENT IP_FREEBIND
    > Built with zlib version : 1.2.3
    > Running on zlib version : 1.2.3
    > Compression algorithms supported : identity("identity"),
    > deflate("deflate"), raw-deflate("deflate"), gzip("gzip")
    > Built with PCRE version : 7.8 2008-09-05
    > Running on PCRE version : 7.8 2008-09-05
    > PCRE library supports JIT : no (USE_PCRE_JIT not set)
    > Encrypted password support via crypt(3): yes
    >
    > 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 multiplexer protocols :
    > (protocols marked as <default> cannot be specified using 'proto'
    keyword)
    >               h2 : mode=HTX        side=FE|BE mux=H2
    >               h2 : mode=HTTP       side=FE mux=H2
    >        <default> : mode=HTX        side=FE|BE mux=H1
    >        <default> : mode=TCP|HTTP   side=FE|BE mux=PASS
    >
    > Available services : none
    >
    > Available filters :
    >     [SPOE] spoe
    >     [COMP] compression
    >     [CACHE] cache
    >     [TRACE] trace
    > ==========================================================
    >
    > Is there anything else I can provide, or try?
    >
    > Kind regards,
    >
    > Sander Hoentjen
    >
    >

Reply via email to