hello, I'm trying to reload haproxy, but the new process failed to start with a segmentation fault. Fortunately, the old process is still here so no downtime occurs (just that the config is not reloaded).
I'm using version 1.6.5 (did not update due to the SSL bug, and as I'm using CentOS+ DH keys, I wanted to wait for the fix in 1.6.7). i'll try to reproduce it with 1.6.7 on monday (no update on friday, that's the rule !). I think this is related to the usage of server-state-file. I have at least one server DOWN in this file. Emptying server-state-file file and reloading HAProxy makes it work correctly. Unfortunately, config file is very huge and cannot be produced here. Main informations : nbcores 7 server-state-file /tmp/haproxy_server_state HAProxy -vv output: HA-Proxy version 1.6.5 2016/05/10 Copyright 2000-2016 Willy Tarreau <wi...@haproxy.org> Build options : TARGET = linux2628 CPU = native CC = gcc CFLAGS = -O2 -march=native -g -fno-strict-aliasing -Wdeclaration-after-statement OPTIONS = USE_OPENSSL=1 USE_PCRE=1 USE_TFO=1 Default settings : maxconn = 2000, bufsize = 16384, maxrewrite = 1024, maxpollevents = 200 Encrypted password support via crypt(3): yes Built without compression support (neither USE_ZLIB nor USE_SLZ are set) Compression algorithms supported : identity("identity") Built with OpenSSL version : OpenSSL 1.0.2h 3 May 2016 Running on OpenSSL version : OpenSSL 1.0.2h 3 May 2016 OpenSSL library supports TLS extensions : yes OpenSSL library supports SNI : yes OpenSSL library supports prefer-server-ciphers : yes Built with PCRE version : 7.2 2007-06-19 PCRE library supports JIT : no (USE_PCRE_JIT not set) Built without Lua support Built with transparent proxy support using: IP_TRANSPARENT IPV6_TRANSPARENT IP_FREEBIND 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. As I am using nbcores > 1, the server state file is built like this : > /tmp/haproxy_server_state for i in $(/bin/ls /var/run/haproxy-*.sock); do socat $i - <<< "show servers state" >> /tmp/haproxy_server_state done gdb infos : Program terminated with signal 11, Segmentation fault. #0 srv_set_running () at include/proto/task.h:244 #1 0x000000000042ee3a in apply_server_state () at src/server.c:2069 #2 0x0000000000405618 in init () at src/haproxy.c:839 #3 0x0000000000407049 in main () at src/haproxy.c:1635 bt full gives this : #0 srv_set_running () at include/proto/task.h:244 srv_keywords = {scope = 0x0, list = {n = 0x8b1258, p = 0x8b90e8}, kw = 0x8b12a0} srv_kws = {scope = 0x6074f2 "ALL", list = {n = 0x8b4d68, p = 0x8b12a8}, kw = 0x8b1250} #1 0x000000000042ee3a in apply_server_state () at src/server.c:2069 srv_keywords = {scope = 0x0, list = {n = 0x8b1258, p = 0x8b90e8}, kw = 0x8b12a0} srv_kws = {scope = 0x6074f2 "ALL", list = {n = 0x8b4d68, p = 0x8b12a8}, kw = 0x8b1250} #2 0x0000000000405618 in init () at src/haproxy.c:839 [...] trash = { str = 0x23b1910 "Server OBFUSCATED:80/OBFUSCATED is DOWN, changed from server-state after a reload. 1 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue", size = 16384, len = 168} [...] I can provide for the coredump in private with my haproxy binary if it helps.