mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 23:27:04 +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.
52 lines
1.7 KiB
Plaintext
52 lines
1.7 KiB
Plaintext
varnishtest "Ensure mapfile ordering is preserved when loading the file"
|
|
feature cmd "$HAPROXY_PROGRAM -cc 'version_atleast(2.5-dev0)'"
|
|
feature ignore_unknown_macro
|
|
|
|
haproxy h1 -conf {
|
|
global
|
|
.if feature(THREAD)
|
|
thread-groups 1
|
|
.endif
|
|
|
|
defaults
|
|
mode http
|
|
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
|
|
timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
|
|
timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
|
|
|
|
frontend fe1
|
|
bind "fd@${fe1}"
|
|
|
|
# check list ordering using map_dom (list-based match)
|
|
http-request return hdr dom %[req.hdr(Host),lower,map_dom(${testdir}/map_ordering.map)] if { url_beg /dom }
|
|
|
|
# check tree ordering using map_str (tree-based match) and duplicated keys
|
|
http-request return hdr str %[req.hdr(Host),lower,map_str(${testdir}/map_ordering.map)] if { url_beg /str }
|
|
|
|
} -start
|
|
|
|
# Check map ordering for list-based matching types
|
|
client c1 -connect ${h1_fe1_sock} {
|
|
# first.domain.tld is above domain.tld so it should match first
|
|
txreq -url "/dom" -hdr "Host: first.domain.tld"
|
|
rxresp
|
|
expect resp.status == 200
|
|
expect resp.http.dom == "first"
|
|
|
|
# second.domain.tld is below domain.tld so domain.tld should match first
|
|
txreq -url "/dom" -hdr "Host: second.domain.tld"
|
|
rxresp
|
|
expect resp.status == 200
|
|
expect resp.http.dom == "domain"
|
|
} -run
|
|
|
|
# Check map ordering for tree-based matching types (check that the matching
|
|
# key is the first one seen in the file)
|
|
client c2 -connect ${h1_fe1_sock} {
|
|
# first.domain.tld is first mapped to "first" in the mapfile
|
|
txreq -url "/str" -hdr "Host: first.domain.tld"
|
|
rxresp
|
|
expect resp.status == 200
|
|
expect resp.http.str == "first"
|
|
} -run
|