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
>

Reply via email to