
On Fri, Jan 29, 2021 at 02:07:31PM +0100, Michal Privoznik wrote:
On 1/29/21 1:45 PM, Pavel Hrdina wrote:
On Fri, Jan 29, 2021 at 09:30:24AM -0300, Daniel Henrique Barboza wrote:
On 1/27/21 2:59 PM, Michal Privoznik wrote:
Since we've switched to meson our tests run with a timeout (meson uses 30 seconds as the default). However, not every machine that builds libvirt is fast enough to run every test under 30 seconds (each test binary has its own timeout, but still). For instance when building a package for distro on a farm that's under load. Or on a generally slow ARM hardware. While each developer can tune their command line for building by adding --timeout-multiplier=10, this is hard to do for aforementioned build farms.
It's time to admit that not everybody has the latest, top shelf CPU and increase the timeout.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> ---
This sure will help these build farms environments, but what about the cases where an actual timeout means that there is something wrong with the code? E.g. commits 46d88d8dba56 and 2ba0b7497ce7 were only possible because I was seeing tests timing out in Power hosts when the 30 sec timeout was being enforced.
A 120 second default timeout for the majority of the test cases is a long time. virschematest in this laptop I use takes 2.5 sec to complete. If I do something wrong in the code and now the test is now 4 times slower (10 sec) I will not be able to detect it (I'll need to start keeping track or something). You'll have to run the test suit on your RasPi 2B to see that something went wrong because the timeout is better tuned to your RasPI than this laptop, but then the code is already upstream.
And the tests will get more complex and will naturally take longer to complete. Eventually this timeout might no be enough. Increase the timeout again?
Meson 0.57 has support for disabling test timeout entirely with --timeout-multiplier=0, disabling test timeout entirely. Can't we bump the meson version to 0.57 and then tell the distros to use timeout-multiplier=0? That will solve the problems for them, I keep the short timeouts for development, and we won't need to keep bumping the test timeout once every 2 years or something because the s390x TCG enviroment in Fedora COPR is timing out again.
Agreed. The timeout is useful and we can always find a machine where the current timeout will not be good enough. I don't think it is a good idea to increase the timeout like this for only few specific use-cases.
So we agree that timeouts are evil :-) Back in the autotools days we did not
No we don't :) timeouts are useful in test suites to reveal issues that something takes a long time when it shouldn't. Pavel
use any timeout at all and I don't remember that causing any trouble. But maybe it was so painful that I blocked it in my mind :-)
Michal