I’m working with three state scripts.
Download_Leave… to ensure that upgrade processes and software running on the device don’t interfere with each other.
(e.g. download enter: device software should stop accepting new tasks, download leave: mender client should wait here until all task queues are drained, download enter: re-enable accepting tasks.)
Now it seems to me that this does not cover all possible state transitions in and out of the download state because when sending an artifact which has some
depends fields set, that are not satisfied by the currently installed artifact, I see in the journal
Oct 27 10:48:40 <redacted> mender: time="2023-10-27T10:48:40+02:00" level=info msg="State transition: update-fetch [Download_Enter] -> update-store [Download_Enter]" Oct 27 10:48:41 <redacted> mender: time="2023-10-27T10:48:41+02:00" level=info msg="No public key was provided for authenticating the artifact" Oct 27 10:48:41 <redacted> mender: time="2023-10-27T10:48:41+02:00" level=error msg="Artifact dependency \"<redacted>\" not satisfied by currently installed artifact (<redacted>)." Oct 27 10:48:41 <redacted> mender: time="2023-10-27T10:48:41+02:00" level=info msg="State transition: update-store [Download_Enter] -> update-status-report [none]" Oct 27 10:48:41 <redacted> mender: time="2023-10-27T10:48:41+02:00" level=info msg="State transition: update-status-report [none] -> idle [Idle]"
i.e. the incoming update gets rejected on the device (nice, that’s desired), but I don’t see that either of the
Download_Error scripts get executed (
Download_Error would be desired in my case).
This is with mender client version
3.5.1 runtime: go1.17.13
Quickly scrolling over State scripts | Mender documentation I don’t see a documented transition other than
Error to get out of the Download state.
Do you have any pointers for me to resume normal operations when an update gets rejected due to missing depends?