Description of problem: When we are fixing the test or fixing testing package then we need test /distribution/reservesys after each recipe. If scheduler could reserve machine for some time when previous test fails it would spare machine usage. Version-Release number of selected component (if applicable): https://beaker.engineering.redhat.com Version - 0.5.53 How reproducible: always Steps to Reproduce: 1. test A 2. test B 3. all other tests last test: 4. when there were fail ^ schedule /distribition/reservesys ELSE nothing Actual results: nothing like that, each test which needs to be investigated has a reservesys Expected results: Additional info: It could spare more scheduling of machines
Thanks for a good idea. Though I am not sure we can safely insert tasks into recipe as it could break multihost tests, this would not be difficult to implement in harness: Simple on failure - extend watchdog and notify owner.
I would really like to see this implemented. I think this feature when used with wisdom, could save some machine-time and man-time. For instance: - If you don't use reservesys and job fails, you need to wait for new machine to check/repair. So you wait for provisioning and test end. Note that some of the tests may last hours. It's also possible, that problem is not deterministic and second job will pass. - If you use reservesys and job didn't fail, you need to return each machine which you reserved. Is this exactly what people often forget? It could be also implemented if reservesys would have some option like: --task=/distribution/reservesys --taskparam="RETURN_WHEN_PASS=True"
That's approximately what I am thinking about. And it should also report results of manual runs :-) task || /task | Fail || || /reserve | Pass || || /manual-run/task | Fail || || /manual-run/task | Pass || || /reserve/end | Pass || next_task ... (unless one would want not to...)
(In reply to comment #4) > task > || /task | Fail || > || /reserve | Pass || > || /manual-run/task | Fail || > || /manual-run/task | Pass || > || /reserve/end | Pass || > next_task > ... +1
Caution has to be taken so all machines in Beaker are not blocked out. If a mass run on limited architectures (think s390s) fails and machine gets reserved for extra 24h (think - Friday evening) then this doesn't help you much and still holds the machine. See also bug 694733. I guess we can use common sense and educate people :)
David, I completely agree with common sense. :) Still, I think it worth to consider at least something like: --task=/distribution/reservesys --taskparam="RETURN_WHEN_PASS=True" Such mechanism, I hope, when used instead of reservesys could save some machine time.
Very good idea, +1! The risk of machine block-out is serious however. Maybe some very short reserve time could be used by default and the user would have to run extendtestingtime.sh manually if he really planned to dig into the problem.
on gerrit for review
Hello Petr, Here is the syntax to use for this <task name="/distribution/reservesys" role="STANDALONE"> <params> <param name="RESERVETIME" value="86400"/> <param name="RESERVE_IF_FAIL" value="1"/> </params> </task>
(In reply to comment #12) > any previous test failed then reservesys? Yes, this one. Pass RESERVE_IF_FAIL="1" to reservesys as Bill has shown, and then the reservation will only happen if some other task in the recipe has failed. If everything passed then /distribution/reservesys will also immediately pass without reserving the system.
Beaker 0.9.3 has been released.
*** Bug 596912 has been marked as a duplicate of this bug. ***