I received the same segfault on two different hosts with the following
sanitized config. I am not sure how to debug further at this point, any advice
would be appreciated.
resolvers bar
nameserver dns1 192.168.1.1:53
nameserver dns2 192.168.1.1:53
resolve_retries 3
timeout retry 1s
hold valid 10s
global
log 127.0.0.1 daemon
log-send-hostname baz01
log-tag haproxy
maxconn 4096
user haproxy
group haproxy
stats socket /run/haproxy.sock user haproxy group haproxy
tune.ssl.default-dh-param 1024
defaults
mode http
log global
option dontlognull
option httplog
retries 3
timeout client 48s
timeout connect 5s
timeout queue 5s
timeout server 48s
frontend foo
bind :9009 ssl crt /etc/ssl/private/wildcard.pem
default_backend foo_cluster
backend foo_cluster
balance roundrobin
option httpchk
http-request set-header Host foo.com
http-response set-header X-Proxy-Server baz01.com
server node1 foo.com:443 ssl check inter 5s rise 2 fall 2 ca-file \
/etc/ssl/certs/ca-certificates.crt verify required verifyhost \
foo.com check-ssl resolve-prefer ipv4 resolvers bar
gdb backtrace:
Program terminated with signal 11, Segmentation fault.
#0 http_end_txn_clean_session (s=s@entry=0x140cd50) at src/proto_http.c:5164
5164 src/proto_http.c: No such file or directory.
#0 http_end_txn_clean_session (s=s@entry=0x140cd50) at src/proto_http.c:5164
prev_status = 401
fe = 0x12a6220
srv_conn = 0x0
srv = 0x140e810
prev_flags = 404750336
#1 0x0000000000454ec5 in http_resync_states (s=s@entry=0x140cd50) at
src/proto_http.c:5551
txn = 0x140e810
old_req_state = 33
old_res_state = 33
#2 0x0000000000455513 in http_response_forward_body (s=s@entry=0x140cd50,
res=res@entry=0x140cda0, an_bit=an_bit@entry=1048576) at src/proto_http.c:7021
sess = 0x140f600
txn = 0x140e810
msg = 0x140e820
tmpbuf = 0x6c9ee0
compressing = 0
ret = 33
#3 0x00000000004792f4 in process_stream (t=0x140f690) at src/stream.c:1865
max_loops = <optimized out>
ana_list = 1048576
ana_back = 1048576
flags = <optimized out>
s = 0x140cd50
sess = 0x140f600
rqf_last = 8650752
rpf_last = <optimized out>
rq_prod_last = 7
rq_cons_last = 7
rp_cons_last = <optimized out>
rp_prod_last = 200
req_ana_back = 8192
req = 0x140cd60
res = 0x140cda0
si_f = 0x140cf48
si_b = 0x140cf68
#4 0x0000000000414a75 in process_runnable_tasks () at src/task.c:238
t = 0x140e810
#5 0x000000000040bac0 in run_poll_loop () at src/haproxy.c:1507
next = <optimized out>
#6 0x0000000000408a55 in main (argc=<optimized out>, argv=<optimized out>) at
src/haproxy.c:1850
err = <optimized out>
retry = <optimized out>
limit = {rlim_cur = 8224, rlim_max = 8224}
errmsg = "\000\231l", '\000' <repeats 13 times>, "\030(\020T\377\177 \
\000\000\070(\020T\377\177\000\000\000\000\000\000\000\000\000\000\362y \
\303\006\320\177\000\000\001", '\000' <repeats 15 times>,"`\000\000\000 \
\000\000\000\000\230\004\274\005\320\177\000\000\027\000\000\000\000\000 \
\000\000\026\000\000\000\000\000\000\000\027\000\000"
pidfd = -1
sanitized config. I am not sure how to debug further at this point, any advice
would be appreciated.
resolvers bar
nameserver dns1 192.168.1.1:53
nameserver dns2 192.168.1.1:53
resolve_retries 3
timeout retry 1s
hold valid 10s
global
log 127.0.0.1 daemon
log-send-hostname baz01
log-tag haproxy
maxconn 4096
user haproxy
group haproxy
stats socket /run/haproxy.sock user haproxy group haproxy
tune.ssl.default-dh-param 1024
defaults
mode http
log global
option dontlognull
option httplog
retries 3
timeout client 48s
timeout connect 5s
timeout queue 5s
timeout server 48s
frontend foo
bind :9009 ssl crt /etc/ssl/private/wildcard.pem
default_backend foo_cluster
backend foo_cluster
balance roundrobin
option httpchk
http-request set-header Host foo.com
http-response set-header X-Proxy-Server baz01.com
server node1 foo.com:443 ssl check inter 5s rise 2 fall 2 ca-file \
/etc/ssl/certs/ca-certificates.crt verify required verifyhost \
foo.com check-ssl resolve-prefer ipv4 resolvers bar
gdb backtrace:
Program terminated with signal 11, Segmentation fault.
#0 http_end_txn_clean_session (s=s@entry=0x140cd50) at src/proto_http.c:5164
5164 src/proto_http.c: No such file or directory.
#0 http_end_txn_clean_session (s=s@entry=0x140cd50) at src/proto_http.c:5164
prev_status = 401
fe = 0x12a6220
srv_conn = 0x0
srv = 0x140e810
prev_flags = 404750336
#1 0x0000000000454ec5 in http_resync_states (s=s@entry=0x140cd50) at
src/proto_http.c:5551
txn = 0x140e810
old_req_state = 33
old_res_state = 33
#2 0x0000000000455513 in http_response_forward_body (s=s@entry=0x140cd50,
res=res@entry=0x140cda0, an_bit=an_bit@entry=1048576) at src/proto_http.c:7021
sess = 0x140f600
txn = 0x140e810
msg = 0x140e820
tmpbuf = 0x6c9ee0
compressing = 0
ret = 33
#3 0x00000000004792f4 in process_stream (t=0x140f690) at src/stream.c:1865
max_loops = <optimized out>
ana_list = 1048576
ana_back = 1048576
flags = <optimized out>
s = 0x140cd50
sess = 0x140f600
rqf_last = 8650752
rpf_last = <optimized out>
rq_prod_last = 7
rq_cons_last = 7
rp_cons_last = <optimized out>
rp_prod_last = 200
req_ana_back = 8192
req = 0x140cd60
res = 0x140cda0
si_f = 0x140cf48
si_b = 0x140cf68
#4 0x0000000000414a75 in process_runnable_tasks () at src/task.c:238
t = 0x140e810
#5 0x000000000040bac0 in run_poll_loop () at src/haproxy.c:1507
next = <optimized out>
#6 0x0000000000408a55 in main (argc=<optimized out>, argv=<optimized out>) at
src/haproxy.c:1850
err = <optimized out>
retry = <optimized out>
limit = {rlim_cur = 8224, rlim_max = 8224}
errmsg = "\000\231l", '\000' <repeats 13 times>, "\030(\020T\377\177 \
\000\000\070(\020T\377\177\000\000\000\000\000\000\000\000\000\000\362y \
\303\006\320\177\000\000\001", '\000' <repeats 15 times>,"`\000\000\000 \
\000\000\000\000\230\004\274\005\320\177\000\000\027\000\000\000\000\000 \
\000\000\026\000\000\000\000\000\000\000\027\000\000"
pidfd = -1