Hi,
we are regularly hitting a bug in haproxy leading to a segfault:
[2433667.679923] haproxy[28161]: segfault at 1033eb6d4 ip 00000000004477b0 sp
00007fff5584c8e0 error 4 in haproxy[400000+a9000]
We are running:
- haproxy v1.5.3 with multiple frontend/backend, offload SSL ;
- on Debian 7: Linux **** 3.14-1-amd64 #1 SMP Debian 3.14.7-1 (2014-06-16)
x86_64 GNU/Linux
- inside a VMware VM (ESX 5, Intel proc)
Because it affects only one of our clusters, we think it is caused by a
request, but we are unable to find the one responsible because of the number of
request per seconds.
Here is a coredump.
root@****:~# gdb /usr/sbin/haproxy /tmp/core-haproxy-11-107-111-28161-1409323204
[...]
warning: no loadable sections found in added symbol-file system-supplied DSO at
0x7fff55909000
Core was generated by `/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p
/var/run/haproxy.pid -D -sf 13'.
Program terminated with signal 11, Segmentation fault.
#0 http_skip_chunk_crlf (msg=0x388ba50) at src/proto_http.c:2113
2113 src/proto_http.c: No such file or directory.
(gdb) bt
#0 http_skip_chunk_crlf (msg=0x388ba50) at src/proto_http.c:2113
#1 http_request_forward_body (s=s@entry=0x388b9a0, req=req@entry=0x343ddf0,
an_bit=an_bit@entry=8192) at src/proto_http.c:5398
#2 0x0000000000467298 in process_session (t=0x39eb8d0) at src/session.c:1955
#3 0x0000000000411ff5 in process_runnable_tasks (next=0x7fff5584ca1c) at
src/task.c:238
#4 0x000000000040a25c in run_poll_loop () at src/haproxy.c:1304
#5 0x000000000040799f in main (argc=<optimized out>, argv=<optimized out>) at
src/haproxy.c:1638
(gdb) backtrace full
#0 http_skip_chunk_crlf (msg=0x388ba50) at src/proto_http.c:2113
buf = 0x33f36c0
ptr = 0x1033eb6d4 <Address 0x1033eb6d4 out of bounds>
bytes = 1
#1 http_request_forward_body (s=s@entry=0x388b9a0, req=req@entry=0x343ddf0,
an_bit=an_bit@entry=8192) at src/proto_http.c:5398
txn = 0x388b9e8
msg = 0x388ba50
#2 0x0000000000467298 in process_session (t=0x39eb8d0) at src/session.c:1955
max_loops = <optimized out>
ana_list = 8192
ana_back = 8192
flags = 8389122
s = 0x388b9a0
rqf_last = 4194304
rpf_last = 4194304
rq_prod_last = 7
rq_cons_last = 7
rp_cons_last = 7
rp_prod_last = 7
req_ana_back = <optimized out>
#3 0x0000000000411ff5 in process_runnable_tasks (next=0x7fff5584ca1c) at
src/task.c:238
t = 0x1033eb6d4
#4 0x000000000040a25c in run_poll_loop () at src/haproxy.c:1304
next = 573931916
#5 0x000000000040799f in main (argc=<optimized out>, argv=<optimized out>) at
src/haproxy.c:1638
err = <optimized out>
retry = <optimized out>
limit = {rlim_cur = 70153, rlim_max = 70153}
errmsg =
"\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000H̄U\377\177\000\000\300̄U\377\177\000\000\025\000\000\000\000\000\000\000\067\016\273\303\317\177\000\000\001",
'\000' <repeats 15 times>,
"\001\000\000\000\000\000\000\000\270\373\261\302\317\177\000\000p\324f\002\000\000\000\000\025\000\000\000\000\000\000\000\370\214j"
pidfd = <optimized out>
Thanks for your help.
--
Romain LE DISEZ