mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 05:41:26 +02:00
When threads are enabled and running on a machine with multiple CCX or multiple nodes, thread groups are now enabled since 3.3-dev2, causing load-balancing algorithms to randomly fail due to incoming connections spreading over multiple groups and using different load balancing indexes. Let's just force "thread-groups 1" into all configs when threads are enabled to avoid this.
92 lines
2.0 KiB
Plaintext
92 lines
2.0 KiB
Plaintext
varnishtest "Webgui stats page check filtering with scope and changing server state"
|
|
|
|
feature ignore_unknown_macro
|
|
|
|
server s1 {
|
|
} -start
|
|
|
|
haproxy h1 -conf {
|
|
global
|
|
.if feature(THREAD)
|
|
thread-groups 1
|
|
.endif
|
|
|
|
# WT: limit false-positives causing "HTTP header incomplete" due to
|
|
# idle server connections being randomly used and randomly expiring
|
|
# under us.
|
|
tune.idle-pool.shared off
|
|
|
|
defaults
|
|
timeout client 30s
|
|
timeout server 30s
|
|
timeout connect 30s
|
|
mode http
|
|
|
|
frontend fe1
|
|
bind "fd@${fe1}"
|
|
stats enable
|
|
stats refresh 5s
|
|
stats uri /
|
|
stats admin if TRUE
|
|
|
|
backend b1
|
|
server srv1 ${s1_addr}:${s1_port}
|
|
server srv2 ${s1_addr}:${s1_port}
|
|
server srv3 ${s1_addr}:${s1_port}
|
|
|
|
backend b2
|
|
server srv1 ${s1_addr}:${s1_port}
|
|
server srv2 ${s1_addr}:${s1_port}
|
|
|
|
} -start
|
|
|
|
client c1 -connect ${h1_fe1_sock} {
|
|
txreq -url "/;csv;"
|
|
rxresp
|
|
expect resp.status == 200
|
|
} -run
|
|
|
|
client c2 -connect ${h1_fe1_sock} {
|
|
txreq -url "/?;csv;scope=b1"
|
|
rxresp
|
|
expect resp.status == 200
|
|
} -run
|
|
|
|
haproxy h1 -cli {
|
|
send "show stat"
|
|
expect ~ .*
|
|
}
|
|
|
|
client c3 -connect ${h1_fe1_sock} {
|
|
txreq -url "/"
|
|
rxresp
|
|
expect resp.status == 200
|
|
|
|
txreq -url "/?;csv;scope=b1"
|
|
rxresp
|
|
expect resp.status == 200
|
|
expect resp.body ~ ".*\nb1,BACKEND.*"
|
|
expect resp.body !~ ".*\nb2,BACKEND.*"
|
|
|
|
txreq -req "POST" -url "/?scope=b2" -body "s=srv1&s=srv2&s=srv3&action=maint&b=%233"
|
|
rxresp
|
|
expect resp.status == 303
|
|
|
|
txreq -req "POST" -url "/" -body "s=srv2&action=drain&b=%233"
|
|
rxresp
|
|
expect resp.status == 303
|
|
|
|
txreq -req "POST" -url "/" -body "s=srv1&action=maint&b=%234"
|
|
rxresp
|
|
expect resp.status == 303
|
|
|
|
txreq -url "/?;csv;scope=fe1"
|
|
rxresp
|
|
expect resp.status == 200
|
|
} -run
|
|
|
|
haproxy h1 -cli {
|
|
send "show stat"
|
|
expect ~ "\nb1,srv1.*MAINT.*\nb1,srv2.*DRAIN.*\nb1,srv3.*MAINT.*\nb1,BACKEND.*DOWN.*\nb2,srv1.*MAINT.*\nb2,srv2.*no check.*\nb2,BACKEND.*UP"
|
|
} -wait
|