Hi, I'm using haproxy on FreeBSD 9.1-amd64 inside a VMware VM.
I realized that when I have a situation where all servers in a backend are down, haproxy crashes: Jul 30 08:03:52 px2-bla kernel: pid 58816 (haproxy), uid 80: exited on signal 11 (core dumped) pkg info|grep haproxy haproxy-1.4.24 The Reliable, High Performance TCP/HTTP Load Balancer # ldd /usr/local/sbin/haproxy /usr/local/sbin/haproxy: libcrypt.so.5 => /lib/libcrypt.so.5 (0x8008c7000) libc.so.7 => /lib/libc.so.7 (0x800ae6000) I've got the following options: cat /usr/local/etc/poudriere.d/91amd64-options/net_haproxy/options # This file is auto-generated by 'make config'. # Options for haproxy-1.4.24 _OPTIONS_READ=haproxy-1.4.24 _FILE_COMPLETE_OPTIONS_LIST=PCRE DPCRE SPCRE OPTIONS_FILE_SET+=PCRE OPTIONS_FILE_UNSET+=DPCRE OPTIONS_FILE_SET+=SPCRE After some tinkering, I got a core-dump out of it: (px2-bla </root>) 0 # gdb /usr/local/sbin/haproxy /var/tmp/haproxy.58816 GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"...(no debugging symbols found)... Core was generated by `haproxy'. Program terminated with signal 11, Segmentation fault. Reading symbols from /lib/libcrypt.so.5...(no debugging symbols found)...done. Loaded symbols for /lib/libcrypt.so.5 Reading symbols from /lib/libc.so.7...(no debugging symbols found)...done. Loaded symbols for /lib/libc.so.7 Reading symbols from /libexec/ld-elf.so.1...(no debugging symbols found)...done. Loaded symbols for /libexec/ld-elf.so.1 #0 0x000000000043be27 in ?? () (gdb) bt #0 0x000000000043be27 in ?? () #1 0x00000000004087e1 in ?? () #2 0x0000000000402c01 in ?? () #3 0x0000000000404607 in ?? () #4 0x0000000000402ade in ?? () #5 0x00000008006c9000 in ?? () #6 0x0000000000000000 in ?? () #7 0x0000000000000000 in ?? () #8 0x0000000000000006 in ?? () #9 0x00007fffffffdde8 in ?? () #10 0x00007fffffffde00 in ?? () #11 0x00007fffffffde03 in ?? () #12 0x00007fffffffde06 in ?? () #13 0x00007fffffffde21 in ?? () #14 0x00007fffffffde24 in ?? () #15 0x0000000000000000 in ?? () #16 0x00007fffffffde39 in ?? () #17 0x00007fffffffde47 in ?? () #18 0x00007fffffffde4f in ?? () #19 0x00007fffffffde63 in ?? () #20 0x00007fffffffdeba in ?? () #21 0x00007fffffffdec7 in ?? () #22 0x00007fffffffded1 in ?? () #23 0x00007fffffffdeef in ?? () #24 0x00007fffffffdefa in ?? () #25 0x00007fffffffdf04 in ?? () #26 0x00007fffffffdf0f in ?? () #27 0x00007fffffffdf20 in ?? () #28 0x00007fffffffdf39 in ?? () #29 0x00007fffffffdf4c in ?? () #30 0x00007fffffffdf59 in ?? () #31 0x00007fffffffdf65 in ?? () #32 0x0000000000000000 in ?? () #33 0x0000000000000003 in ?? () #34 0x0000000000400040 in ?? () #35 0x0000000000000004 in ?? () #36 0x0000000000000038 in ?? () #37 0x0000000000000005 in ?? () #38 0x0000000000000008 in ?? () #39 0x0000000000000006 in ?? () #40 0x0000000000001000 in ?? () #41 0x0000000000000008 in ?? () #42 0x0000000000000000 in ?? () #43 0x0000000000000009 in ?? () #44 0x0000000000402a50 in ?? () #45 0x0000000000000007 in ?? () #46 0x00000008006ae000 in ?? () #47 0x000000000000000f in ?? () #48 <signal handler called> #49 0x0000000000000000 in ?? () Previous frame inner to this frame (corrupt stack?) I'd like to know what is causing this. Config is like this: global log 127.0.0.1 local0 log 127.0.0.1 local1 notice #log loghost local0 info maxconn 4096 #debug #quiet user www group www daemon defaults log global mode http retries 2 timeout client 50s timeout connect 5s timeout server 50s option dontlognull option forwardfor option httplog option redispatch balance source option httpchk GET /ipmon.txt HTTP/1.0\r\n\r\n http-check expect rstring OK http-check disable-on-404 http-send-name-header X-Target-Server default-server minconn 50 maxconn 100 # Set up application listeners here. frontend s maxconn 8000 bind 0.0.0.0:8000 default_backend servers-old-s reqidel ^X-Forwarded-For:.* frontend s-stage maxconn 8000 bind 0.0.0.0:8002 default_backend servers-old-s-stage reqidel ^X-Forwarded-For:.* frontend p maxconn 8000 bind 0.0.0.0:8004 default_backend servers-old-p reqidel ^X-Forwarded-For:.* frontend p-stage maxconn 8000 bind 0.0.0.0:8006 default_backend servers-old-p-stage reqidel ^X-Forwarded-For:.* frontend d-old maxconn 8000 bind 0.0.0.0:8008 default_backend servers-old-d reqidel ^X-Forwarded-For:.* backend servers-old-d fullconn 8000 #option httpchk GET /ip_monitor_mysql.php HTTP/1.1\r\nHost: www.d.domain\r\nConnection:\ close server app2 first.ip:80 weight 1 check server input1 second.ip:80 weight 1 check backend servers-old-s fullconn 8000 #option httpchk GET /ip_monitor_mysql.php HTTP/1.1\r\nHost: www.s.domain\r\nConnection:\ close server app2 first.ip:80 weight 1 check server input1 second.ip:80 weight 1 check backend servers-old-p fullconn 8000 #option httpchk GET /ip_monitor_mysql.php HTTP/1.1\r\nHost: www.p.domain\r\nConnection:\ close server app2 first.ip:80 weight 1 check server input1 second.ip:80 weight 1 check backend servers-old-s-stage fullconn 8000 #option httpchk GET /ip_monitor_mysql.php HTTP/1.1\r\nHost: s-stage.1st.domain\r\nConnection:\ close server app2 first.ip:80 weight 1 check server input1 second.ip:80 weight 1 check backend servers-old-p-stage fullconn 8000 #option httpchk GET /ip_monitor_mysql.php HTTP/1.1\r\nHost: p-stage.1st.domain\r\nConnection:\ close server app2 first.ip:80 weight 1 check server input1 second.ip:80 weight 1 check listen admin 0.0.0.0:22002 mode http stats uri / Regards, Rainer

