Hi, we had two crashes yesterday within about 2 hours.
HA-Proxy version 1.8.4-de425f6 2018/02/26 Copyright 2000-2018 Willy Tarreau <[email protected]> Build options : TARGET = linux2628 CPU = generic CC = gcc CFLAGS = -O2 -g -fno-strict-aliasing -Wdeclaration-after-statement -fwrapv -Wno-null-dereference -Wno-unused-label OPTIONS = USE_LINUX_SPLICE=1 USE_LIBCRYPT=1 USE_ZLIB=1 USE_OPENSSL=1 USE_PCRE=1 Default settings : maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = 200 Built with OpenSSL version : OpenSSL 1.1.0f 25 May 2017 Running on OpenSSL version : OpenSSL 1.1.0f 25 May 2017 OpenSSL library supports TLS extensions : yes OpenSSL library supports SNI : yes OpenSSL library supports : TLSv1.0 TLSv1.1 TLSv1.2 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 PCRE version : 8.39 2016-06-14 Running on PCRE version : 8.39 2016-06-14 PCRE library supports JIT : no (USE_PCRE_JIT not set) Built with zlib version : 1.2.8 Running on zlib version : 1.2.8 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 root@66b9ab4204d8:/code# gdb /usr/local/sbin/haproxy core GNU gdb (Debian 7.12-6) 7.12.0.20161007-git Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /usr/local/sbin/haproxy...done. [New LWP 10] warning: .dynamic section for "/lib64/ld-linux-x86-64.so.2" is not at the expected address (wrong library or version mismatch?) [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `/usr/local/sbin/haproxy -f /etc/haproxy.cfg'. Program terminated with signal SIGSEGV, Segmentation fault. #0 __eb_delete (node=0x55dae9d8db30, node@entry=0x55dae8bdd230) at ebtree/ebtree.h:720 720 ebtree/ebtree.h: No such file or directory. (gdb) bt #0 __eb_delete (node=0x55dae9d8db30, node@entry=0x55dae8bdd230) at ebtree/ebtree.h:720 #1 eb_delete (node=node@entry=0x55dae9d8db30) at ebtree/ebtree.c:25 #2 0x000055dae7bc36f5 in eb32_delete (eb32=0x55dae9d8db30) at ebtree/eb32tree.h:106 #3 __task_unlink_wq (t=0x55dae9d8dad0) at include/proto/task.h:145 #4 task_unlink_wq (t=<optimized out>) at include/proto/task.h:153 #5 task_delete (t=<optimized out>) at include/proto/task.h:192 #6 process_stream (t=t@entry=0x55dae9d8dad0) at src/stream.c:2514 #7 0x000055dae7c3f792 in process_runnable_tasks () at src/task.c:229 #8 0x000055dae7bf2674 in run_poll_loop () at src/haproxy.c:2399 #9 run_thread_poll_loop (data=<optimized out>) at src/haproxy.c:2461 #10 0x000055dae7b6cfea in main (argc=<optimized out>, argv=0x7ffcff36a218) at src/haproxy.c:3050 global log /dev/log local0 warning maxconn 50000 tune.ssl.default-dh-param 2048 ssl-default-bind-ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS ssl-default-bind-options no-sslv3 no-tls-tickets ssl-default-server-ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS ssl-default-server-options no-sslv3 no-tls-tickets defaults log global mode http timeout connect 3s timeout client 30s timeout server 120s timeout tunnel 3600s timeout http-keep-alive 1s timeout http-request 15s option http-server-close option httplog option forwardfor errorfile 503 /config/503.html errorfile 408 /dev/null userlist httpauth user foo bar resolvers docker nameserver docker 127.0.0.11:53 hold valid 2s frontend http bind 0.0.0.0:80 reqadd X-Forwarded-Proto:\ http acl is_assets hdr_dom(host) -i ${ASSET_HOST} use_backend varnish-backend if is_assets default_backend phoenix-backend frontend https bind 0.0.0.0:443 ssl crt "/letsencrypt/certificates/${CERTIFICATE_NAME}.pem" alpn h2,http/1.1 no-sslv3 rspadd Strict-Transport-Security:\ max-age=31536000 # cowboy crashes when invalid headers are sent # see https://github.com/ninenines/cowboy/issues/943 acl invalid_keepalive_header hdr(Connection) -i keep-alive\ Te reqirep ^Connection:\ keep-alive\ Te Connection:\ keep-alive,\ Te if invalid_keepalive_header acl invalid_keepalive_header_1 hdr(Connection) -i Te\ keep-alive reqirep ^Connection:\ Te\ keep-alive Connection:\ keep-alive,\ Te if invalid_keepalive_header_1 reqadd X-Forwarded-Proto:\ https acl is_assets hdr_dom(host) -i ${ASSET_HOST} acl is_metrics hdr_dom(host) -i m.foo.com acl is_graphs hdr_dom(host) -i g.foo.com acl is_ci hdr_dom(host) -i c.foo.com use_backend varnish-backend if is_assets use_backend prometheus-backend if is_metrics use_backend grafana-backend if is_graphs use_backend ci-backend if is_ci default_backend phoenix-backend backend varnish-backend server varnish varnish:80 resolvers docker init-addr libc,last,none check port 80 inter 200 backend phoenix-backend option httpchk GET /status server phoenix phoenix:4000 resolvers docker init-addr libc,last,none check inter 200 backend prometheus-backend acl auth_ok http_auth(httpauth) http-request auth realm httpauth unless auth_ok server prometheus prometheus:9090 resolvers docker init-addr last,none check port 9090 backend grafana-backend server grafana grafana:3000 resolvers docker init-addr last,none check port 3000 backend ci-backend server drone-server drone-server:8000 resolvers docker init-addr last,none check port 8000

