Well the main usage of `cycle_timeout` is for periodic checking and the 1s makes sense there. Using it also as a deadline for waiting for process finish was probably unfortunate, but we can always improve that. Please let me know whether 10s is enough, or whether we should make it even more lenient. There is a step of `0.01s` so it should not block for 10s each test, only the ones which do not finish, so longer timeouts are acceptable.

Lukáš

Dne 30.3.2017 v 19:07 Vincent Matossian napsal(a):
I'll play with that, thanks, it might be good to have cycle_timeout
configurable in avocado config.

-
Vincent

On Thu, Mar 30, 2017 at 3:35 AM, Lukáš Doktor <[email protected]
<mailto:[email protected]>> wrote:

    Dne 25.3.2017 v 18:38 Vincent Matossian napsal(a):

        I intermittently see tests erroring out with reason

        "fail_reason": "Test reported status but did not finish"

        Unfortunately I don't have a reliable reproduction case, but was
        wondering if it was a known issue?

        I didn't deep dive in the code but looking at
        avocado/core/runner.py's
        run_test method, could it be that the queue ends up empty before the
        process is actually deemed gone?

        wait.wait_for(lambda: not queue.empty() or not proc.is_alive(),
        cycle_timeout, first, step)

        Any thoughts?

        Thanks

        Vincent


    Dear Vincent,

    the description says it all, the test process reported the status:

        avocado.core.runner:L323
        queue.put(state)

    but then the process did not finish, which could be because:

    1. the machine is too busy, timeout is 2s
    2. the test spawned some threads/processes which prevent it from
    finishing

    Do you also get the "Killing hanged test process ..." messages in
    the main `job.log`? If not it's likely the (1), otherwise it could
    be any of those.

    Perhaps you could try increasing the timeout in:

        avocado.core.runner:L437
        test_state = test_status.finish(proc, time_started, cycle_timeout,

    replace the `cycle_timeout` with a number, I'd go with 10s or so and
    let us know whether it solved your issue. We can be probably a bit
    more lenient...

    Lukáš



Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to