I have a few more details about this segfault: in http_request_forward_body(), msg->sov is taking on some silly values that I've been unable to track down thus far.
For example, I have observed msg->sov = -2147483520 at src/proto_http.c:5485, which causes an underflow, eventually affecting the value of msg->next, which in turn causes the segfault. Is anyone able to help me understand how to track down where this value of msg->sov comes from? Thanks Again, James Dempsey On Wed, Aug 6, 2014 at 9:33 AM, James Dempsey <[email protected]> wrote: > Hello All, > > I'm seeing a segfault in 1.5.2 and 1.5.3 (haven't tried others) after a > connection has transferred 16 GB of data. Any advice would be appreciated. > > (gdb) bt > #0 http_skip_chunk_crlf (msg=0x214c250) at src/proto_http.c:2113 > #1 http_request_forward_body (s=0x214c1a0, req=0x21b1500, > an_bit=<optimized out>) > at src/proto_http.c:5398 > #2 0x0000000000466e5f in process_session (t=0x2209a40) at > src/session.c:1955 > #3 0x000000000041182d in process_runnable_tasks (next=0x7fffa2c6a06c) at > src/task.c:238 > #4 0x0000000000409a3c in run_poll_loop () at src/haproxy.c:1304 > #5 0x000000000040719d in main (argc=<optimized out>, argv=<optimized > out>) at src/haproxy.c:1638 > > (gdb) frame 0 > #0 http_skip_chunk_crlf (msg=0x214c250) at src/proto_http.c:2113 > 2113 if (*ptr == '\r') { > > (gdb) info locals > buf = 0x22163d0 > ptr = 0x10220e3eb <Address 0x10220e3eb out of bounds> > bytes = 1 > > (gdb) info reg > rax 0x10220e3eb 4330677227 > rbx 0x214c1a0 34914720 > rcx 0x21b1500 35329280 > rdx 0x22163d0 35742672 > rsi 0x4000 16384 > rdi 0x8221046b 2183201899 > rbp 0x21b1500 0x21b1500 > rsp 0x7fffa2c69f20 0x7fffa2c69f20 > r8 0x221a3e4 35759076 > r9 0x10220e3eb 4330677227 > r10 0x80001f80 2147491712 > r11 0x7f24fdd4f6d0 139796854142672 > ---Type <return> to continue, or q <return> to quit--- > r12 0x214c250 34914896 > r13 0x0 0 > r14 0x80001f80 2147491712 > r15 0x214c1e8 34914792 > rip 0x447436 0x447436 <http_request_forward_body+566> > eflags 0x10202 [ IF RF ] > cs 0x33 51 > ss 0x2b 43 > ds 0x0 0 > es 0x0 0 > fs 0x0 0 > gs 0x0 0 > > My config looks like this: > > defaults > log global > maxconn 8000 > option redispatch > retries 3 > stats enable > timeout http-request 10s > timeout queue 1m > timeout connect 10s > timeout client 1m > timeout server 1m > timeout check 10s > > listen service-name > bind :::PORT ssl crt /path/to/host.crt.pem ca-file /path/to/ca.pem > balance source > mode http > server FQDN1 IP1:PORT check ca-file /path/to/ca.pem crt > /path/to/host.crt.pem ssl > server FQDN2 IP2:PORT check ca-file /path/to/ca.pem crt > /path/to/host.crt.pem ssl > > > > Thanks in advance, > James Dempsey >

