Skip to content

lava_dispatcher: fix failure retry on action timeout failures

Chase Qi requested to merge failure-retry into master

When only deploy/boot/test action level timeout is defined, the timeout is applied to all of its sub-actions. Retry action usually is just a wrapper of a set of other actions. Forcing the sub-actions to respect parent timeout breaks failure retry on action timeout error in every level.

This change allows retry actions to retry within job timeout. A common boot failure retry on bootloader/os boot timeout error will just work.

A common use case:

- boot:
    failure_retry: 3
    method: qemu
    timeout:
      minutes: 2
    media: tmpfs
    prompts:
    - "root@debian:"
    auto_login:
      login_prompt: "login:"
      username: root

A nested retry action still needs to define a named action timeout so that the timeout * retries + sleep is smaller than its parent timeout. Otherwise, the nested action may leave no time for the parent action to run when the child action passes after more than 1 retries.

A working example:

- deploy:
    failure_retry: 3
    timeout:
      minutes: 10
    timeouts:
      http-download:
        minutes: 2
    to: tmpfs
    ...
Edited by Chase Qi

Merge request reports