Pavlos Parissis <pavlos.parissis@...> writes:
>
>
> On 22/04/2016 08:26 πμ, David Torgerson wrote:
> > Attempting to upgrade from 1.5 to 1.6.4. Haproxy will run for a few
> > seconds to minutes and then will segfault.
> >
> > dmesg
> > [9010697.311045] haproxy[31405]: segfault at b8 ip 00000000004131c7 sp
> > 00007ffde49436c0 error 4 in haproxy[400000+ce000]
> > [9010699.783167] haproxy[31469]: segfault at b8 ip 00000000004131c7 sp
> > 00007ffdc385ce60 error 4 in haproxy[400000+ce000]
> > [9010748.623894] haproxy[31696]: segfault at b8 ip 00000000004131c7 sp
> > 00007fffd91e3b90 error 4 in haproxy[400000+ce000]
> > [9010759.271240] haproxy[31864]: segfault at b8 ip 00000000004131c7 sp
> > 00007ffe8fc7ad30 error 4 in haproxy[400000+ce000]
> >
> > addr2line -e /usr/bin/haproxy 00000000004131c7
> > /home/dtorgo/haproxy-1.6.4/src/log.c:1526
> > 1525 case LOG_FMT_STATUS: // %ST
> > 1526 ret = ltoa_o(txn->status, tmplog,
> > dst + maxsize - tmplog);
> > 1527 if (ret == NULL)
> > 1528 goto out;
> > 1529 tmplog = ret;
> > 1530 last_isspace = 0;
> > 1531 break;
> >
> > Haproxy config (relevant parts)
> > global
> > log rsyslog1:514 local2 debug info
> > log rsyslog1:514 local3 notice emerg
> > log-send-hostname
> > defaults
> > mode http
> > retries 3
> > option redispatch
> > maxconn 65000
> > timeout connect 5000
> > timeout client 300000
> > timeout server 300000
> > option allbackups
> > option dontlognull
> > option log-health-checks
> > option forceclose
> > log-format
> > ±
{"flw":"%ID","lb":"%H","cip":"%ci","lbnfo":"%f/%b/%si","tm":"%Tq/%Tw/%Tc/%Tr
","tt":%Tt,"stts":"%ST","bytc":%U,"byts":%B,"trmstt":"%ts","cn":"%ac/%fc/%bc
/%sc","rtry":%rc,"q":"%bq/%sq","rqst":"%r","hdrs":"%hr"}
>
> ^<-- is that a valid character for haproxy config?
> Does the above config passes the sanity check(haproxy -c -f ..)?
>
> Cheers,
> Pavlos
>
>
Yes. We have actually used that character for a few years. It is also worth
mentioning that I do get several thousand+ messages to the syslog server
before the segfault.
I did run haproxy in debug mode and haproxy segfaulted right after it
procssed a TCP backend:
0000014f:users.accept(001d)=0025 from [10.0.79.228:32810]
0000014f:BACKEND_users-tcp.srvcls[0025:002d]
0000014f:BACKEND_users-tcp.clicls[0025:002d]
0000014f:BACKEND_users-tcp.closed[0025:002d]
frontend users
mode tcp
bind :27013 accept-proxy
log global
default_backend BACKEND_users-tcp
backend BACKEND_users
balance leastconn
server users_ELB_10.10.10.50:9013 10.10.10.50:9013
server users_ELB_10.10.10.51:9013 10.10.10.51:9013
server users_ELB_10.10.10.52:9013 10.10.10.52:9013