Install rootfs artifact failed from Mender server

Hi,

I’m new in Mender and currently working on a PoC to evaluate it. After having a good start with Mender based on the “Get started” projects I’m now struggling with my first own “golden image” based on Ubuntu 20 LTS on a x86_64 Intel system.

I created my first release rootfs artifact and uploaded it to Mender. I start a deployment with a break after each step. This is the result:

2021-10-06 10:01:36 +0000 UTC info: Running Mender client version: 3.1.0
2021-10-06 10:01:36 +0000 UTC warning: RetryPollIntervalSeconds is not defined
2021-10-06 10:01:37 +0000 UTC info: State transition: update-fetch [Download_Enter] → update-store [Download_Enter]
2021-10-06 10:01:37 +0000 UTC info: No public key was provided for authenticating the artifact
2021-10-06 10:01:37 +0000 UTC info: Opening device “/dev/sdb2” for writing
2021-10-06 10:01:37 +0000 UTC info: Native sector size of block device /dev/sdb2 is 512 bytes. Mender will write in chunks of 1048576 bytes
2021-10-06 10:12:12 +0000 UTC info: All bytes were successfully written to the new partition
2021-10-06 10:12:12 +0000 UTC info: The optimized block-device writer wrote a total of 31665 frames, where 4395 frames did need to be rewritten (i.e., skipped)
2021-10-06 10:12:14 +0000 UTC info: Wrote 33202110464/33202110464 bytes to the inactive partition
2021-10-06 10:12:24 +0000 UTC info: State transition: update-store [Download_Enter] → update-after-store [Download_Leave]
2021-10-06 10:12:24 +0000 UTC info: State transition: update-after-store [Download_Leave] → mender-update-control [none]
2021-10-06 10:12:24 +0000 UTC info: Update Control: Forced update failure in update-install state
2021-10-06 10:12:24 +0000 UTC error: transient error: Forced a failed update
2021-10-06 10:12:24 +0000 UTC info: State transition: mender-update-control [none] → rollback [ArtifactRollback]
2021-10-06 10:12:24 +0000 UTC info: Performing rollback
2021-10-06 10:12:24 +0000 UTC info: No update available, so no rollback needed.
2021-10-06 10:12:24 +0000 UTC info: State transition: rollback [ArtifactRollback] → update-error [ArtifactFailure]
2021-10-06 10:12:24 +0000 UTC info: State transition: update-error [ArtifactFailure] → cleanup [Error]
2021-10-06 10:12:24 +0000 UTC info: State transition: cleanup [Error] → update-status-report [none]

Btw: there wasn’t any break.

I took the same artifact and run a standalone deployment on the device. This is the result:

INFO[0000] Loaded configuration file: /var/lib/mender/mender.conf
INFO[0000] Loaded configuration file: /etc/mender/mender.conf
INFO[0000] ‘UpdateControlMapExpirationTimeSeconds’ is not set in the Mender configuration file. Falling back to the default of 2*UpdatePollIntervalSeconds
INFO[0000] ‘UpdateControlMapBootExpirationTimeSeconds’ is not set in the Mender configuration file. Falling back to the default of 600 seconds
INFO[0000] Mender running on partition: /dev/sdb3
INFO[0000] Start updating from local image file: [/media/test/85d8c61c-41f5-43d3-b318-517db07ee506/snapshot-release.2.0.mender]
Installing Artifact of size 3599589888…
INFO[0000] No public key was provided for authenticating the artifact
INFO[0000] Opening device “/dev/sdb2” for writing
INFO[0000] Native sector size of block device /dev/sdb2 is 512 bytes. Mender will write in chunks of 1048576 bytes
… - 100 %
INFO[0185] All bytes were successfully written to the new partition
INFO[0185] The optimized block-device writer wrote a total of 31665 frames, where 0 frames did need to be rewritten (i.e., skipped)
INFO[0186] Wrote 33202110464/33202110464 bytes to the inactive partition
INFO[0186] Enabling partition with new image installed to be a boot candidate: 2
Use ‘commit’ to update, or ‘rollback’ to roll back the update.
At least one payload requested a reboot of the device it updated.

Any ideas? Hints are welcome!

1 Like

I believe this is due to this bug. I think I will try to get this prioritized, it’s not the first time I have seen this.

A couple of workaround suggestions:

  • Don’t click on any of the “Add a pause” buttons when creating the deployment.
  • If that doesn’t work, or you really need to use the pausing feature, then you can add this to the /etc/mender/mender.conf file on the device:
  "UpdateControlMapExpirationTimeSeconds": 3600,

(drop the comma if it’s the last line in the block, aka JSON)

This will set the expiration of the internal Update Control Map (where the pause comes from) to one hour instead of ten minutes, which is the default for the demo setup. Actually this map is supposed to be refreshed during the download, but the bug is preventing that.

I try it without any break. And … it works! Thanks @kacf :grinning:
I will now retry it several times to be sure that it works constantly. The only that doesn’t work was the reboot - it boots in the “old” partition because of this Root partition changes randomly from A to B.