health check passthrough not 100% in combination with haproxy

Aki Tuomi aki.tuomi at open-xchange.com
Wed Oct 20 07:46:42 EEST 2021


Not sure where to report this as bug. Does it work if you change the script to look like:

printf 'HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n'
exit 0

Aki

> On 19/10/2021 23:29 Marc <marc at f1-outsourcing.eu> wrote:
> 
>  
> Should this be filed as a bug somewhere?
> 
> 
> > 
> > I have been trying to get a simple health check in haproxy to work. But
> > somehome the haproxy request is differently handled then a curl request,
> > which generates a socket error in haproxy.
> > 
> > The health script echos these lines, with this config[2]
> > 
> >     echo -ne "HTTP/1.1 200 OK\r\n"
> >     echo -ne "Content-Length: 0\r\n"
> >     echo -ne "\r\n"
> >     exit 0
> > 
> > The curl request generates ok, haproxy generates socket error. The
> > haproxy=yes, reuseport=yes do not seem to resolve anything. If stop
> > dovecot and run "dovecot-health-check.sh | nc -l 192.168.10.46 5001"
> > then the haproxy check is ok. So I guess the script is ok. But what is
> > dovecot then doing with it's output when haproxy is requesting it?
> > 
> > 
> > 
> > [1]
> > https://discourse.haproxy.org/t/httpck-on-bash-script-results-in-socket-
> > error/5647/16
> > 
> > [2]
> > service health-check {
> >   executable = script -p /usr/local/sbin/dovecot-health-check.sh
> >   inet_listener health-check {
> >     port = 5001
> >     haproxy = no
> >     reuse_port = no
> >  }
> > }


More information about the dovecot mailing list