-
Nils Goroll authored
When making a connection a "real" backend (VBE), we checked the probed health state and did not take into account the administrative health state as set with `varnishadm backend.set_health ... {healthy,sick}`. Our documentation was not particularly explicit on this aspect either, but the administrative states `sick` and `healthy` made no sense if `auto` semantics was implied always. Also, the semantics were implicitly documented for `backend.list`. Implementation note: The relevant change is to call `VRT_Healthy()`, which does check the administrative health, in place of checking `(struct backend *)->sick` in `vbe_dir_getfd()`. As a `VRT_CTX` is required by `VRT_Healthy()`, we change the arguments of `vbe_dir_getfd()` accordingly: The busyobj can now be taken from the ctx, but the worker argument differs for pipe mode vs. fetch, so we preserve it as an explicit argument. A test for overriding a probed backend as healthy has been added to c00048.vtc, which requires a second probe to hit server s1 and fail. This is timing sensitive, so I hope that the backend probe interval of 5 seconds is long enough for all our test environments. If not, we probably need to make it longer or add another vtc. Fixes #3299
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
cache | ||
common | ||
fuzzers | ||
hash | ||
hpack | ||
http1 | ||
http2 | ||
mgt | ||
proxy | ||
storage | ||
waiter | ||
Makefile.am | ||
VSC_lck.vsc | ||
VSC_main.vsc | ||
VSC_mempool.vsc | ||
VSC_mgt.vsc | ||
VSC_sma.vsc | ||
VSC_smf.vsc | ||
VSC_smu.vsc | ||
VSC_vbe.vsc | ||
builtin.vcl | ||
flint.lnt | ||
flint.sh | ||
vclflint.lnt | ||
vclflint.sh |