Skip to content

Add riscv64 systems to spread tests#376

Merged
farshidtz merged 1 commit into
mainfrom
IENG-2305-add-riscv-spread-tests
May 19, 2026
Merged

Add riscv64 systems to spread tests#376
farshidtz merged 1 commit into
mainfrom
IENG-2305-add-riscv-spread-tests

Conversation

@imatrisciano

@imatrisciano imatrisciano commented May 5, 2026

Copy link
Copy Markdown
Contributor

This PR adds RISCV 64 systems to the spread test systems pool.

As of right now, the only ubuntu versions with RISCV64 qemu images available in image-garden are Ubuntu Cloud 24.04 and Ubuntu Cloud 26.04

To run spread tests targeting the newly added riscv64 systems, make sure the required qemu-riscv64 component is installed:

sudo snap install image-garden+qemu-riscv64 # for riscv64 emulation

Then, use the following to run all riscv64 tests:

SNAP_CHANNEL=edge image-garden.spread -v -vv ...riscv64

Due to delays caused by emulation, #372 might be required to make some tests pass (like update_policy)

@imatrisciano imatrisciano requested a review from farshidtz May 5, 2026 12:02
@farshidtz

Copy link
Copy Markdown
Member
$ SNAP_CHANNEL=edge image-garden.spread ...riscv64
2026-05-19 08:51:59 Project content is packed for delivery (36.84KB).
2026-05-19 08:51:59 Sequence of jobs produced with -seed=1779173519
2026-05-19 08:51:59 If killed, discard servers with: spread -reuse-pid=22938 -discard
2026-05-19 08:51:59 Allocating garden:ubuntu-cloud-24.04.riscv64...
2026-05-19 08:51:59 Allocating garden:ubuntu-cloud-26.04.riscv64...
2026-05-19 08:51:59 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:51:59 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:52:14 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:52:14 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:52:29 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:52:29 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:52:44 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:52:44 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:52:59 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:52:59 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:53:14 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:53:14 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:53:29 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:53:29 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:53:44 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:53:44 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:53:59 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:53:59 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:54:14 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:54:14 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:54:29 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:54:29 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:54:44 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:54:44 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:54:59 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:54:59 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:55:14 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:55:14 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:55:29 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:55:29 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:55:44 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:55:44 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:55:59 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:55:59 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:56:14 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:56:14 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:56:29 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:56:29 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:56:44 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:56:44 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: backend "garden" allocate must print ADDRESS=<SSH address> to stdout, got: ""
2026-05-19 08:56:59 Successful tasks: 0
2026-05-19 08:56:59 Aborted tasks: 28
error: unsuccessful run

Same result after merging #372 into this.

Tail, in verbose mode:

Verify SHA256: resolute-server-cloudimg-riscv64.img
---------------------------------------------------

Verifying sha256 checksum of /home/farshid/snap/image-garden/common/cache/dl/ubuntu/resolute-server-cloudimg-riscv64.img
resolute-server-cloudimg-riscv64.img: OK
ln -sf "$(cat /home/farshid/snap/image-garden/common/cache/dl/ubuntu/ubuntu-cloud-26.04.riscv64.filename)" /home/farshid/snap/image-garden/common/cache/dl/ubuntu/ubuntu-cloud-26.04.riscv64.qcow2
cp --preserve=timestamps  efi-code.riscv64.img
cp: missing destination file operand after 'efi-code.riscv64.img'
Try 'cp --help' for more information.
make: *** [/usr/include/image-garden.mk:308: efi-code.riscv64.img] Error 1
make: Leaving directory '/home/farshid/projects/canonical/docker-snap/.image-garden'
+ OUT=

-----

@imatrisciano

Copy link
Copy Markdown
Contributor Author

@farshidtz thank you for testing, are you able to provide the complete logs while running tests in verbose mode?

Also please make sure that the qemu-riscv64 component is installed:

$ sudo snap install image-garden+qemu-riscv64 # for riscv64 emulation

@farshidtz farshidtz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, it runs as expected after installing the qemu-riscv64 image-garden component:

$ sudo snap install image-garden+qemu-riscv64
component qemu-riscv64 10.2.1 for image-garden v0.5 installed
$ SNAP_CHANNEL=edge image-garden.spread  ...riscv64
2026-05-19 13:27:35 Project content is packed for delivery (37.13KB).
2026-05-19 13:27:35 Sequence of jobs produced with -seed=1779190055
2026-05-19 13:27:35 If killed, discard servers with: spread -reuse-pid=284420 -discard
2026-05-19 13:27:35 Allocating garden:ubuntu-cloud-24.04.riscv64...
2026-05-19 13:27:35 Allocating garden:ubuntu-cloud-26.04.riscv64...
2026-05-19 13:27:36 Cannot allocate garden:ubuntu-cloud-24.04.riscv64: Image garden allocation failed
2026-05-19 13:27:36 Cannot allocate garden:ubuntu-cloud-26.04.riscv64: Image garden allocation failed
2026-05-19 13:32:40 WARNING: local script running late. Current output:
-----
[     *] Job multipathd.service/stop running (1min 36s / 1min 43s): shutdown
-----
2026-05-19 13:32:40 WARNING: local script running late. Current output:
-----
(... 1740 lines above ...)
make: Leaving directory '/home/farshid/projects/canonical/docker-snap/.image-garden'
Looking available TCP port for ubuntu-cloud-24.04.riscv64...
Starting ubuntu-cloud-24.04.riscv64...
+ image_garden_output=localhost:6716
+ '[' -z localhost:6716 ']'
++ uname -m
+ HOST_ARCH=x86_64
+ SYSTEM_ARCH=riscv64
+ '[' x86_64 '!=' riscv64 ']'
+ sleep 5m
-----
2026-05-19 13:35:00 Waiting for garden:ubuntu-cloud-24.04.riscv64 to make SSH available at localhost:6716...
2026-05-19 13:35:00 Allocated garden:ubuntu-cloud-24.04.riscv64.
2026-05-19 13:35:00 Connecting to garden:ubuntu-cloud-24.04.riscv64...
2026-05-19 13:35:02 Connected to garden:ubuntu-cloud-24.04.riscv64 at localhost:6716.
2026-05-19 13:35:02 Sending project content to garden:ubuntu-cloud-24.04.riscv64...
2026-05-19 13:35:13 Preparing garden:ubuntu-cloud-24.04.riscv64 (garden:ubuntu-cloud-24.04.riscv64)...
2026-05-19 13:37:40 WARNING: local script running late. Current output:
-----
(... 82 lines above ...)
make: Leaving directory '/home/farshid/projects/canonical/docker-snap/.image-garden'
Looking available TCP port for ubuntu-cloud-26.04.riscv64...
Starting ubuntu-cloud-26.04.riscv64...
+ image_garden_output=localhost:6913
+ '[' -z localhost:6913 ']'
++ uname -m
+ HOST_ARCH=x86_64
+ SYSTEM_ARCH=riscv64
+ '[' x86_64 '!=' riscv64 ']'
+ sleep 5m
-----
2026-05-19 13:37:49 Waiting for garden:ubuntu-cloud-26.04.riscv64 to make SSH available at localhost:6913...
2026-05-19 13:37:49 Allocated garden:ubuntu-cloud-26.04.riscv64.
2026-05-19 13:37:49 Connecting to garden:ubuntu-cloud-26.04.riscv64...
2026-05-19 13:37:53 Connected to garden:ubuntu-cloud-26.04.riscv64 at localhost:6913.
2026-05-19 13:37:53 Sending project content to garden:ubuntu-cloud-26.04.riscv64...
2026-05-19 13:38:06 Preparing garden:ubuntu-cloud-26.04.riscv64 (garden:ubuntu-cloud-26.04.riscv64)...
2026-05-19 13:40:13 WARNING: garden:ubuntu-cloud-24.04.riscv64 (garden:ubuntu-cloud-24.04.riscv64) running late. Current output:
-----
(... 81 lines above ...)
Fetched 31.6 MB in 6s (5294 kB/s)
(Reading database ... 81831 files and directories currently installed.)
Preparing to unpack .../snapd_2.74.1+ubuntu24.04.4_riscv64.deb ...
Unpacking snapd (2.74.1+ubuntu24.04.4) over (2.73+ubuntu24.04.2) ...
Setting up snapd (2.74.1+ubuntu24.04.4) ...
snapd.failure.service is a disabled or a static unit not running, not starting it.
snapd.gpio-chardev-setup.target is a disabled or a static unit not running, not starting it.
snapd.snap-repair.service is a disabled or a static unit not running, not starting it.
Processing triggers for dbus (1.14.10-4ubuntu4.1) ...
Processing triggers for man-db (2.12.0-4build2) ...
-----
.
2026-05-19 13:43:06 WARNING: garden:ubuntu-cloud-26.04.riscv64 (garden:ubuntu-cloud-26.04.riscv64) running late. Current output:
-----
(... 60 lines above ...)
++ echo 'Removing docker (if already installed)'
Removing docker (if already installed)
++ sudo snap remove docker --purge
snap "docker" is not installed
++ '[' -n edge ']'
++ echo 'Installing docker from channel: edge'
Installing docker from channel: edge
++ sudo snap install docker --channel=edge
2026-05-19T13:41:20+02:00 INFO Waiting for automatic snapd restart...
2026-05-19T13:41:21+02:00 INFO Waiting for automatic snapd restart...
-----
.
2026-05-19 13:45:13 WARNING: garden:ubuntu-cloud-24.04.riscv64 (garden:ubuntu-cloud-24.04.riscv64) running late. Current output:
-----
(... 26 lines above ...)
2026-05-19T13:44:21+02:00 INFO task ignored
docker (edge) 29.3.1 from Canonical** installed
++ wait_for_docker
++ echo 'Waiting for docker to become available...'
Waiting for docker to become available...
++ run_retry_command docker info
++ local RETRIES=30
++ local DELAY=6
++ local n=1
++ docker info
-----
.
2026-05-19 13:45:36 Executing garden:ubuntu-cloud-26.04.riscv64:spread/main/copy (garden:ubuntu-cloud-26.04.riscv64) (1/28)...
2026-05-19 13:45:48 Executing garden:ubuntu-cloud-24.04.riscv64:spread/main/hello-world (garden:ubuntu-cloud-24.04.riscv64) (2/28)...
2026-05-19 13:46:02 Executing garden:ubuntu-cloud-24.04.riscv64:spread/main/export_and_import (garden:ubuntu-cloud-24.04.riscv64) (3/28)...
2026-05-19 13:46:08 Executing garden:ubuntu-cloud-26.04.riscv64:spread/main/hello-world (garden:ubuntu-cloud-26.04.riscv64) (4/28)...
2026-05-19 13:46:19 Executing garden:ubuntu-cloud-26.04.riscv64:spread/main/start_and_stop (garden:ubuntu-cloud-26.04.riscv64) (5/28)...
2026-05-19 13:46:44 Executing garden:ubuntu-cloud-24.04.riscv64:spread/main/update_policy (garden:ubuntu-cloud-24.04.riscv64) (6/28)...
2026-05-19 13:47:16 Executing garden:ubuntu-cloud-26.04.riscv64:spread/main/update_policy (garden:ubuntu-cloud-26.04.riscv64) (7/28)...
2026-05-19 13:48:45 Executing garden:ubuntu-cloud-24.04.riscv64:spread/main/save_and_load (garden:ubuntu-cloud-24.04.riscv64) (8/28)...
2026-05-19 13:49:06 Executing garden:ubuntu-cloud-24.04.riscv64:spread/main/build (garden:ubuntu-cloud-24.04.riscv64) (9/28)...
2026-05-19 13:49:19 Executing garden:ubuntu-cloud-26.04.riscv64:spread/main/simple_container (garden:ubuntu-cloud-26.04.riscv64) (10/28)...
2026-05-19 13:49:26 Executing garden:ubuntu-cloud-24.04.riscv64:spread/main/start_and_stop (garden:ubuntu-cloud-24.04.riscv64) (11/28)...
2026-05-19 13:49:55 Executing garden:ubuntu-cloud-26.04.riscv64:spread/main/installation (garden:ubuntu-cloud-26.04.riscv64) (12/28)...
2026-05-19 13:50:07 Executing garden:ubuntu-cloud-26.04.riscv64:spread/main/version (garden:ubuntu-cloud-26.04.riscv64) (13/28)...
2026-05-19 13:50:13 Executing garden:ubuntu-cloud-26.04.riscv64:spread/main/commit (garden:ubuntu-cloud-26.04.riscv64) (14/28)...
2026-05-19 13:50:18 Executing garden:ubuntu-cloud-24.04.riscv64:spread/main/kill (garden:ubuntu-cloud-24.04.riscv64) (15/28)...
2026-05-19 13:50:48 Executing garden:ubuntu-cloud-26.04.riscv64:spread/main/restart_on_failure (garden:ubuntu-cloud-26.04.riscv64) (16/28)...
2026-05-19 13:51:28 Executing garden:ubuntu-cloud-26.04.riscv64:spread/main/kill (garden:ubuntu-cloud-26.04.riscv64) (17/28)...
2026-05-19 13:51:29 Executing garden:ubuntu-cloud-24.04.riscv64:spread/main/copy (garden:ubuntu-cloud-24.04.riscv64) (18/28)...
2026-05-19 13:51:48 Executing garden:ubuntu-cloud-24.04.riscv64:spread/main/simple_container (garden:ubuntu-cloud-24.04.riscv64) (19/28)...
2026-05-19 13:52:19 Executing garden:ubuntu-cloud-24.04.riscv64:spread/main/commit (garden:ubuntu-cloud-24.04.riscv64) (20/28)...
2026-05-19 13:52:42 Executing garden:ubuntu-cloud-26.04.riscv64:spread/main/build (garden:ubuntu-cloud-26.04.riscv64) (21/28)...
2026-05-19 13:52:50 Executing garden:ubuntu-cloud-24.04.riscv64:spread/main/restart_on_failure (garden:ubuntu-cloud-24.04.riscv64) (22/28)...
2026-05-19 13:53:07 Executing garden:ubuntu-cloud-26.04.riscv64:spread/main/save_and_load (garden:ubuntu-cloud-26.04.riscv64) (23/28)...
2026-05-19 13:53:27 Executing garden:ubuntu-cloud-24.04.riscv64:spread/main/installation (garden:ubuntu-cloud-24.04.riscv64) (24/28)...
2026-05-19 13:53:36 Executing garden:ubuntu-cloud-26.04.riscv64:spread/main/export_and_import (garden:ubuntu-cloud-26.04.riscv64) (25/28)...
2026-05-19 13:53:39 Executing garden:ubuntu-cloud-24.04.riscv64:spread/main/restart_always (garden:ubuntu-cloud-24.04.riscv64) (26/28)...
2026-05-19 13:54:09 Executing garden:ubuntu-cloud-24.04.riscv64:spread/main/version (garden:ubuntu-cloud-24.04.riscv64) (27/28)...
2026-05-19 13:54:10 Executing garden:ubuntu-cloud-26.04.riscv64:spread/main/restart_always (garden:ubuntu-cloud-26.04.riscv64) (28/28)...
2026-05-19 13:54:14 Discarding garden:ubuntu-cloud-24.04.riscv64...
2026-05-19 13:54:44 Discarding garden:ubuntu-cloud-26.04.riscv64...
2026-05-19 13:54:44 Successful tasks: 28
2026-05-19 13:54:44 Aborted tasks: 0

Great addition to the testing coverage!

@farshidtz farshidtz merged commit 0b669f9 into main May 19, 2026
6 checks passed
@farshidtz farshidtz deleted the IENG-2305-add-riscv-spread-tests branch May 19, 2026 12:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants