New mender server, new mender artifact, old mender client

I’ve build a new mender artifact using the kirkstone branch (==> v3)
I’ve installed a mender 3.4.0 server, which is up and running.
I’ve an existing device that’s running with mender client 1.5.0
This device can connect to the new server and is authenticated, so far so good.
When I try to deploy the new mender artifact to the device, I see that device doesn’t accept artifacts of version v3.

How should I proceed to get the device updated?

I added MENDER_ARTIFACT_EXTRA_ARGS = “–version 2”, to get an artifact version 2. (which is supported both by the mender server 3.4.0 and mender client 1 5.0)

The mender client 1.5.0 now starts the download from the mender server 3.4.0, but after a while the mender client reports: ‘fatal error: runtime: out of memory’ and as a result the mender client service is terminated on the device ;-(

Any toughts?

Have the exact same issue.
Mender server gone from version 2.4 to 3.4 and mender client is at version 1.6.
I also use MENDER_ARTIFACT_EXTRA_ARGS:append = " -v 2"

When I try to upgrade some devices will fail with:

error: Could not execute fw_setenv: fork/exec /sbin/fw_setenv: cannot allocate memory
or
error: error calling enter script for (error) update-install state: error running enter state script(s) for ArtifactInstall state: statescript: error executing ‘ArtifactInstall_Enter_50’: -1 : fork/exec /var/lib/mender/scripts/ArtifactInstall_Enter_50: cannot allocate memory

I was starting to search a bit about this issue and it seems that with the new server version while mender downloads a new image its memory explodes and goes to almost 30% of the RPI3 device I am using which has 1GB or RAM.

And then while mender tries to fork / exec new processes it fails.
I think also this issue might affects it:

Because when I use the trick with the overcommit_memory it works all the times.

But I cannot do this in an AftifactScript if I cannot execute any ArtifactScripts.

Has anything changed in the way mender client download the image from the server?
Or maybe better how the server serves the image to the client?

Because changing the memory usage only from server change seems very bizarre.

Thanks!

After further investigation I think I found what is the problem and why the updates fails.
It is due to this statement here:

Although it does not say anything about the memory usage of mender client after tests I found out that using mender client 1.7.1 I was able to make the updates fine and I have also observed that the memory consumption was not more than 2% at the whole update proccess.

So @Spinola62 please update also your mender clients before doing the upgrade to the server and I think the issue will disappear.

There is also another workaround if already updated to a new server. Please read here for more details:
https://docs.mender.io/3.4/server-installation/installation-with-docker-compose/upgrading#upgrading-from-mender-2-6-or-older

And specifically the part at:
If you are using mender-client older than 1.7.1 you can face some issues. You can find details here. If you still want to use Mender 2.7 or newer with clients older than 1.7.1 you have to set up an additional proxy in front of storage service. For that purpose you can include the one provided here into your setup (with updated domain name).

Thanks,
Tamis