Issue with Robust Delta Update

When I deploy a delta update, it fails with the following error:

2020-09-26 00:55:12 +0000 UTC info: Running Mender client version: 2.3.0
2020-09-26 00:55:12 +0000 UTC info: State transition: update-fetch [Download_Enter] -> update-store [Download_Enter]
2020-09-26 00:55:12 +0000 UTC info: No public key was provided for authenticating the artifact
2020-09-26 00:55:14 +0000 UTC error: Module could not be executed: fork/exec /usr/share/mender/modules/v3/mender-binary-delta: no such file or directory
2020-09-26 00:55:14 +0000 UTC error: Artifact install failed: Module could not be executed: fork/exec /usr/share/mender/modules/v3/mender-binary-delta: no such file or directory
2020-09-26 00:55:14 +0000 UTC info: State transition: update-store [Download_Enter] -> cleanup [Error]
2020-09-26 00:55:14 +0000 UTC error: Could not execute update module: fork/exec /usr/share/mender/modules/v3/mender-binary-delta: no such file or directory
2020-09-26 00:55:14 +0000 UTC error: Cleanup failed: fork/exec /usr/share/mender/modules/v3/mender-binary-delta: no such file or directory
2020-09-26 00:55:14 +0000 UTC info: State transition: cleanup [Error] -> update-status-report [none]

Some extra poking around shows:

root@vexpress-qemu:~# ls -ltra /usr/share/mender/modules/v3/
total 110
-rwxr-xr-x 1 root root   1637 Sep 24 21:55 single-file
-rwxr-xr-x 1 root root    207 Sep 24 21:55 script
-rwxr-xr-x 1 root root    150 Sep 24 21:55 rpm
-rwxr-xr-x 1 root root   1788 Sep 24 21:55 rootfs-image-v2
-rwxr-xr-x 1 root root    799 Sep 24 21:55 docker
-rwxr-xr-x 1 root root   1378 Sep 24 21:55 directory
-rwxr-xr-x 1 root root    140 Sep 24 21:55 deb
-rwxr-xr-x 1 root root 100592 Sep 24 21:56 mender-binary-delta
drwxr-xr-x 3 root root   1024 Sep 25 22:32 ..
drwxr-xr-x 2 root root   1024 Sep 25 22:32 .

root@vexpress-qemu:~# /usr/share/mender/modules/v3/mender-binary-delta
-sh: /usr/share/mender/modules/v3/mender-binary-delta: No such file or directory
root@vexpress-qemu:~# file /usr/share/mender/modules/v3/mender-binary-delta
/usr/share/mender/modules/v3/mender-binary-delta: ELF 32-bit LSB pie executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=2158fadc0e259cc99c065a1038ffe5f7c2f81541, stripped
root@vexpress-qemu:~# file /lib/ld-linux-armhf.so.3
/lib/ld-linux-armhf.so.3: cannot open `/lib/ld-linux-armhf.so.3' (No such file or directory)
root@vexpress-qemu:~# file /usr/bin/mender
/usr/bin/mender: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.3, BuildID[sha1]=247b9ebd3ed538b508512e8781267646eb94bfaa, for GNU/Linux 3.2.0, stripped
root@vexpress-qemu:~# file /lib/ld-linux.so.3
/lib/ld-linux.so.3: symbolic link to ld-2.30.so

.

root@vexpress-qemu:~# uname -a
Linux vexpress-qemu 4.19.107-yocto-standard #1 SMP Thu Sep 24 20:44:03 UTC 2020 armv7l armv7l armv7l GNU/Linux

Running “ln -s /lib/ld-linux.so.3 /lib/ld-linux-armhf.so.3” did not solve the issue.

Device type: vexpress-qemu-grub

Any help will be appreciated.

1 Like

It looks like I might have solved it by changing mender-binary-delta’s interpreter using patchelf

patchelf --set-interpreter /lib/ld-linux.so.3 ./mender-binary-delta
1 Like

Interesting. I doubt anyone has tried running this on vexpress-qemu as I think we mostly use qemux86-64 for this testing now.

Drew