Package: haproxy
Version: 1.5~dev19-2
Severity: normal
Tags: ipv6

Dear Maintainer,

I have haproxy to do some TCP HA forwarding to LDAP and Exchange Servers. I
also have deployed native IPv6 which works nicely with keepalived and haproxy.

When the system runs and I restart haproxy I never see any issues.
When I reboot the system (kernel update), I see that haproxy fails to start due
to 2 failures:

* haproxy logs to a socket, rsyslogd provides. rsyslogd isn't running, when
  haproxy is started per default. I needed to add $syslogto the Required-Start
  section of the init.d file.

* haproxy doesn't start due to IPv6 host address not set when haproxy is 
starting.
  I have IPv6 running in production and when haproxy tries to start, it needs
  the host IPv6 address to configure the stick-table. This fails, and haproxy
  fails to start.
  
  my fast-solution is now to add a "sleep 10" to the top of the init.d file,
  but I think a more proper solution would be better.


Also I have changed to init.d file to source a second config file, where I have
the config which both nodes share, so I can easily copy one file.
If you need the config of the global file, please tell me.

thanks
Philipp



-- System Information:
Debian Release: 7.2
  APT prefers stable
  APT policy: (900, 'stable'), (800, 'unstable'), (500, 'stable-updates'), (1, 
'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages haproxy depends on:
ii  adduser              3.113+nmu3
ii  init-system-helpers  1.11
ii  libc6                2.17-93
ii  libpcre3             1:8.30-5
ii  libssl1.0.0          1.0.1e-2
ii  zlib1g               1:1.2.7.dfsg-13

haproxy recommends no packages.

Versions of packages haproxy suggests:
pn  vim-haproxy  <none>

-- Configuration Files:
/etc/default/haproxy changed:
ENABLED=1

/etc/haproxy/haproxy.cfg changed:
global
        log /dev/log    local0
        log /dev/log    local1 notice
        chroot /var/lib/haproxy
        user haproxy
        group haproxy
        daemon
        stats socket /var/run/haproxy.sock user root group nagios mode 0660
        stats socket /var/run/haproxy-admin.sock user root group root mode 0600 
level admin
        stats bind-process 1
        maxconn     40000
        tune.bufsize    24576
        tune.chksize    24576
defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        option  socket-stats
        option  redispatch              # Try another server in case of 
connection failure
        option  contstats               # Enable continuous traffic statistics 
updates
        option  abortonclose
        timeout client 7200s                     #alctl: client inactivity
        timeout server 7200s                     #alctl: server inactivity 
timeout
        timeout connect 5s              # 5 seconds max to connect or to stay 
in queue
        timeout queue 30s               # 30 seconds max queued on load balancer
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http
listen stats 
        bind 128.130.30.11:80 name IPv4
        bind 2001:629:1005:30::11:80 transparent name IPv6
        mode http
        stats enable
        stats realm Haproxy\ Statistics
        stats uri /
        acl stats-access src 127.0.0.1
        acl stats-access src 128.130.30.11
        acl stats-access src 128.130.30.12
        acl stats-access src 128.130.36.60
        acl stats-access src 128.130.36.61
        acl stats-access src 128.131.225.234
        acl stats-access src 128.131.35.153
        acl stats-access src 2001:629:3800:36:82ee:73ff:fe00:b11c
        block if ! stats-access

/etc/init.d/haproxy changed:
sleep 10
PATH=/sbin:/usr/sbin:/bin:/usr/bin
PIDFILE=/var/run/haproxy.pid
CONFIG=/etc/haproxy/haproxy.cfg
GLOBALCONFIG=/etc/haproxy/haproxy-global.cfg
HAPROXY=/usr/sbin/haproxy
EXTRAOPTS=
ENABLED=0
test -x $HAPROXY || exit 0
if [ -e /etc/default/haproxy ]; then
        . /etc/default/haproxy
fi
test -f "$CONFIG" || exit 0
test -f "$GLOBALCONFIG" || exit 0
test "$ENABLED" != "0" || exit 0
[ -f /etc/default/rcS ] && . /etc/default/rcS
. /lib/lsb/init-functions
haproxy_start()
{
        start-stop-daemon --start --pidfile "$PIDFILE" \
                --exec $HAPROXY -- -f "$CONFIG" -f "$GLOBALCONFIG" -D -p 
"$PIDFILE" \
                $EXTRAOPTS || return 2
        return 0
}
haproxy_stop()
{
        if [ ! -f $PIDFILE ] ; then
                # This is a success according to LSB
                return 0
        fi
        for pid in $(cat $PIDFILE) ; do
                /bin/kill $pid || return 4
        done
        rm -f $PIDFILE
        return 0
}
haproxy_reload()
{
        $HAPROXY -f "$CONFIG" -f "$GLOBALCONFIG" -p $PIDFILE -D $EXTRAOPTS -sf 
$(cat $PIDFILE) \
                || return 2
        return 0
}
haproxy_status()
{
        if [ ! -f $PIDFILE ] ; then
                # program not running
                return 3
        fi
        for pid in $(cat $PIDFILE) ; do
                if ! ps --no-headers p "$pid" | grep haproxy > /dev/null ; then
                        # program running, bogus pidfile
                        return 1
                fi
        done
        return 0
}
case "$1" in
start)
        log_daemon_msg "Starting haproxy" "haproxy"
        haproxy_start
        ret=$?
        case "$ret" in
        0)
                log_end_msg 0
                ;;
        1)
                log_end_msg 1
                echo "pid file '$PIDFILE' found, haproxy not started."
                ;;
        2)
                log_end_msg 1
                ;;
        esac
        exit $ret
        ;;
stop)
        log_daemon_msg "Stopping haproxy" "haproxy"
        haproxy_stop
        ret=$?
        case "$ret" in
        0|1)
                log_end_msg 0
                ;;
        2)
                log_end_msg 1
                ;;
        esac
        exit $ret
        ;;
reload|force-reload)
        log_daemon_msg "Reloading haproxy" "haproxy"
        haproxy_reload
        ret=$?
        case "$ret" in
        0|1)
                log_end_msg 0
                ;;
        2)
                log_end_msg 1
                ;;
        esac
        exit $ret
        ;;
restart)
        log_daemon_msg "Restarting haproxy" "haproxy"
        haproxy_stop
        haproxy_start
        ret=$?
        case "$ret" in
        0)
                log_end_msg 0
                ;;
        1)
                log_end_msg 1
                ;;
        2)
                log_end_msg 1
                ;;
        esac
        exit $ret
        ;;
status)
        haproxy_status
        ret=$?
        case "$ret" in
        0)
                echo "haproxy is running."
                ;;
        1)
                echo "haproxy dead, but $PIDFILE exists."
                ;;
        *)
                echo "haproxy not running."
                ;;
        esac
        exit $ret
        ;;
*)
        echo "Usage: /etc/init.d/haproxy {start|stop|reload|restart|status}"
        exit 2
        ;;
esac
:


-- no debconf information


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to