Comment 0 for bug 2002455

Revision history for this message
Heather Ellsworth (hellsworth) wrote :

[Impact]

This SRU has two main impacts: cross-architecture testing, and pocket pinning

1. cross-architecture testing

autopkgtest currently does not have the -a ARCH capability needed to permit cross-architecture testing. This is notably useful for i386 local testing [0] and was noted to be missing since the focal release.

The goal is to be able to create an amd64 VM where autopkgtest can run on an i386 package.

There was an existing patchset for this functionality from ~3 years ago that needed tweaking and is in a working state now[1].

2. pocket pinning (blurb copied from commit[2])

Ubuntu is switching to NotAutomatic: yes for the proposed pocket:
the change is already operative on >= Lunar and under consideration
for older stable releases. This means that by default packages from
-proposed won't be installed unless explicitly requested.

The change is meant to make it easier for end users to keep -proposed
enabled (for SRU verification or individual package installation)
without manually adding a pin to avoid pulling in all of -proposed.

However when running autopkgtests with --apt-pocket=proposed we do want
to pull in all the pocket, so let's always give it Pin-Priority: 500.
This is similar to what Launchpad does with the buildds.

Note: This change does not really treat -proposed in a special way:
any pocket will get Pin-Priority: 500. It makes sense to keep the tool
behavior consistent, and we're not aware of cases where this could be
cause issues.

[0] https://wiki.ubuntu.com/i386
[1] https://code.launchpad.net/~ubuntu-release/autopkgtest/+git/development/+merge/376169
[2] https://git.launchpad.net/~ubuntu-release/autopkgtest/+git/development/commit/?id=c92df58ae5f3bc55aa58bbfb93ca60cb38b2615c

[ Test Plan ]

1. cross-architecture testing

Create an amd64 VM where autopkgtest can run on an i386 package:

## Generate the VM
$ sudo autopkgtest-buildvm-ubuntu-cloud -a amd64 -r kinetic -s 15G

## Run autopkgtest on the i386 vlc package, finishes quickly
## Note that you should run the autopkgtest binary directly (so use the path to your
## runner/autopkgtest) and point to the .img file created in the last step
$ sudo ~/autopkgtest-5.25ubuntu2/runner/autopkgtest --setup-commands="dpkg --add-architecture i386; apt-get update" --architecture i386 vlc -- qemu --ram-size=1536 --cpus 2 ~/autopkgtest-kinetic-amd64.img

A passing result looks like autopkgtest setting up the testbed and launching the tests while a failing result looks something like this:

Downloading https://cloud-images.ubuntu.com/kinetic/current/kinetic-server-cloudimg-i386.img...
No image exists for this release/architecture

2. pocket pinning testing

Using the --apt-pocket=proposed option, you should see that the proposed pocket is used when running autopkgtests.

Also if there are any packages in proposed, then you should be able to track the pocket and update without pulling in any proposed packages.

[ Where problems could occur ]

1. cross-architecture testing
It is possible for the img file to find itself in a bad state, affecting the tests run, but simply recreating the VM is a quick fix. Without this patchset i386 testing less accessible, since i386 hardware is required, so the improvement greatly outweighs potentially introduced risk.

2. pocket pinning
We are not aware of any issues that may arise from this patch.