-
Notifications
You must be signed in to change notification settings - Fork 72
tedge-agent ignores in progress workflows without a version after being updated #3305
Description
Describe the bug
The tedge-agent 1.4.0 ignores in-progress commands if the command does not contain any version information, i.e. the command instance was created by a tedge-agent version < 1.4.0.
This was discovered after updating the tedge-container-bundle project which uses a customer software_update workflow to perform a self-update of the container (which includes tedge-agent). The last release of the tedge-container-bundle uses thin-edge.io 1.3.1, and during the self-update process, when the new version of the container launch, which includes tedge-agent 1.4.0, the in-progress operation is being ignored. The operation will then remain in the state it was left in before the new container was spawned.
To Reproduce
A system test has been added to the thin-edge.io project which includes a workflow to reproduce this issue, so please refer to the PR for all the details. The process is roughly as follows:
-
Install thin-edge.io 1.3.1
-
Override the default
software_updateworkflow which does a self-update of the tedge-agent -
Create a software update operation from the cloud
The above procedure will result in the software update operation being stuck in the EXECUTING state, and it will never complete.
Expected behavior
Command instances which don't have a version should still be respected by the tedge-agent, and the workflow matching the same name (as denoted by the operation = <name> field) should be used to continue processing the command instance.
Screenshots
Environment (please complete the following information):
| Property | Value |
|---|---|
| OS [incl. version] | Any |
| Hardware [incl. revision] | Any |
| System-Architecture | Any |
| thin-edge.io version | tedge 1.4.0 |
| mosquitto version | N/A |
Additional context