-
Dridi Boukelmoune authored
A failing test may take up to the vtc timeout to effectively fail if a thread is waiting for a barrier to sync. Barriers now check every 100ms whether the vtc is done to bail out. The socket barriers were already polling for 1s, so now they poll for 100ms and leave the loop early when needed. The condvar barriers now loop over a timedwait, but critical sections were too wide. There were vtc_fatal() calls under barrier locks that would defeat the timedwait loop. Thus critical sections were more carefully laid, allowing multiple barrier commands to run simultaneously. This also means that besides initialization, socket barriers no longer touch the lock. Consider the following diff: --- bin/varnishtest/tests/v00056.vtc +++ bin/varnishtest/tests/v00056.vtc @@ -72,7 +72,7 @@ client c2 { } -run logexpect l2 -v v1 -g raw -q Backend_health { - expect 0 0 Backend_health "default Went healthy" + expect 0 0 Backend_health "default Went wrong" } -start barrier b3 sync With this change l2 would fail early, typically in less than 2s, but the barriers stuck in a condwait would prevent further progress.
3c67da44
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
varnishadm | ||
varnishd | ||
varnishhist | ||
varnishlog | ||
varnishncsa | ||
varnishstat | ||
varnishtest | ||
varnishtop | ||
Makefile.am | ||
flint.lnt |