Hi Willy,
Our monitoring scripts use the unix socket to get haproxy's status. Sometimes
they detect haproxy DOWN when it's not really the case.
After some tests, it appears that 2 concurrent accesses break things : one of
the request receives an empty reply. I wonder if it can be a more severe issue
when someone uses administration commands (set weight, disable/enable
server,...)
At this step I can't give you much more information but I'll look at the code
this week-end.
Something interesting, I could reproduce the issue with haproxy 1.4.1, 1.3.23,
1.3.19 and 1.3.16 (only tested these ones) but there's no error with 1.3.15.x
versions (tested with 1.3.15.12, 1.3.15.11, 1.3.15.10 and 1.3.15.7).
Maybe this can remind you some modifications of code.
To reproduce the issue :
- a simple configuration file :
global
stats socket /tmp/haproxy.socket
listen dummy :10000
balance roundrobin
- short script (with 2 or 3 instances in parrallel) :
#!/bin/bash
while true;
do
hainfo=`echo "show info"| /usr/bin/socat /tmp/haproxy.socket stdio`
if [ "$hainfo" == "" ];
then
echo "### EMPTY REPLY ###"
fi
done
--
Cyril Bonté