Hi!
While trying to reproduce Igor's problem, I noticed some strange behavior in the stats output: A server has an initial weight of 100, and unix socket, html and csv outputs match. But when I modify the weight (in this case, I set it again to 100), then the unix socket shows the correct weight of 100, but csv and html output shows a weight value of 10000: $ echo "get weight b1-n/f1"| socat stdio /tmp/haproxy 100 (initial 100) $ curl -s "http://admin:passw0rd@10.0.0.55/ha-stats;csv" | grep "b1-n,f1" b1-n,f1,0,0,0,0,,0,0,0,,0,,0,0,0,0,UP,100,1,0,0,0,389,0,,1,2,1,,0,,2,0,,0,L7OK,200,10,0,0,0,0,0,0,0,,,,0,0,,,,, $ echo "set weight b1-n/f1 100"| socat stdio /tmp/haproxy $ echo "get weight b1-n/f1"| socat stdio /tmp/haproxy 100 (initial 100) $ curl -s "http://admin:passw0rd@10.0.0.55/ha-stats;csv" | grep "b1-n,f1" b1-n,f1,0,0,0,0,,0,0,0,,0,,0,0,0,0,UP,10000,1,0,0,0,406,0,,1,2,1,,0,,2,0,,0,L7OK,200,9,0,0,0,0,0,0,0,,,,0,0,,,,, $ I understand that the "get weight" command on the unix socket simply uses sv->uweight (src/dumpstats.c line 1097), while the html/csv output is using a more complex calculation (src/dumpstats.c line 2303 + line 2388): (sv->eweight * px->lbprm.wmult + px->lbprm.wdiv - 1) / px->lbprm.wdiv It did not look into it any deeper, as that would mean reading code until I understanding the meaning of those variables :) Any ideas here? Thanks, Lukas