[SRU Exception] Backport 5.28 to kinetic

Bug #2015285 reported by Heather Ellsworth
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
autopkgtest (Ubuntu)
Fix Released
Undecided
Unassigned
Kinetic
Fix Released
Medium
Heather Ellsworth

Bug Description

[Impact]

This SRU has two specific impacts: cross-architecture testing, and pocket pinning. There may be unknown impacts in backporting the version in lunar to kinetic (5.25->5.28).

Initially, the patches were added to Jammy and Kinetic to provide the cross-architecture testing and pocket pinning in https://bugs.launchpad.net/ubuntu/+source/autopkgtest/+bug/2002455 but we have since decided to go ahead and backport the version of lunar that include these patches, back to kinetic.

(We similarly backported the 5.28 version in lunar to jammy in https://bugs.launchpad.net/ubuntu/+source/autopkgtest/+bug/2008026)

Below is a summary of the two initially sought after impacts.

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.25ubuntu1/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:

autopkgtest: error: unrecognized arguments: --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.

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

Here is a debdiff from 5.25ubuntu1 to 5.28ubuntu1.

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

Here is a debdiff that just updates the versioning scheme to something more intuitive that also will avoid collisions with the version that exists in lunar.

Changed in autopkgtest (Ubuntu Kinetic):
status: New → In Progress
importance: Undecided → Medium
assignee: nobody → Heather Ellsworth (hellsworth)
Revision history for this message
Brian Murray (brian-murray) wrote :

The upload currently in the SRU queue for Kinetic (version 5.28ubuntu0.22.10.0) supersedes the upload currently in -proposed and it might be easier to compare the version in the queue to what is already in the release pocket for Kinetic as the version in -proposed added a debian/patches directory which was then removed. (That's on me and I'm sorry!)

Revision history for this message
Steve Langasek (vorlon) wrote : Please test proposed package

Hello Heather, or anyone else affected,

Accepted autopkgtest into kinetic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/autopkgtest/5.28ubuntu0.22.10.0 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-kinetic to verification-done-kinetic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-kinetic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in autopkgtest (Ubuntu Kinetic):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-kinetic
Revision history for this message
Ubuntu SRU Bot (ubuntu-sru-bot) wrote : Autopkgtest regression report (autopkgtest/5.28ubuntu0.22.10.0)

All autopkgtests for the newly accepted autopkgtest (5.28ubuntu0.22.10.0) for kinetic have finished running.
The following regressions have been reported in tests triggered by the package:

gscan2pdf/2.13.0-1 (ppc64el)

Please visit the excuses page listed below and investigate the failures, proceeding afterwards as per the StableReleaseUpdates policy regarding autopkgtest regressions [1].

https://people.canonical.com/~ubuntu-archive/proposed-migration/kinetic/update_excuses.html#autopkgtest

[1] https://wiki.ubuntu.com/StableReleaseUpdates#Autopkgtest_Regressions

Thank you!

Revision history for this message
Tim Andersson (andersson123) wrote :
Download full text (4.4 KiB)

Testing the apt-pocket proposed

lxc launch ubuntu:kinetic timscontainer
lxc exec timscontainer bash
# Testing the wrong version
sudo apt install -t kinetic autopkgtest
exit
# Back to my machine
sudo autopkgtest-buildvm-ubuntu-cloud -a amd64 -r mantic -s 15G
lxc file push autopkgtest-mantic-amd64.img timscontainer/
# back to container
lxc exec timscontainer bash
sudo autopkgtest --setup-commands="apt-get update" --apt-pocket=proposed isc-dhcp -- qemu --ram-size=1536 --cpus 2 ./autopkgtest-mantic-amd64.img

Output verifies the version fetched isn't from proposed:
autopkgtest [14:47:12]: testbed dpkg architecture: amd64
autopkgtest [14:47:14]: testbed running kernel: Linux 6.2.0-21-generic #21-Ubuntu SMP PREEMPT_DYNAMIC Fri Apr 14 12:34:02 UTC 2023
autopkgtest [14:47:15]: @@@@@@@@@@@@@@@@@@@@ apt-source isc-dhcp
Get:1 http://archive.ubuntu.com/ubuntu mantic/main isc-dhcp 4.4.3-P1-1ubuntu1 (dsc) [2,969 B]
Get:2 http://archive.ubuntu.com/ubuntu mantic/main isc-dhcp 4.4.3-P1-1ubuntu1 (tar) [10.1 MB]
Get:3 http://archive.ubuntu.com/ubuntu mantic/main isc-dhcp 4.4.3-P1-1ubuntu1 (asc) [874 B]
Get:4 http://archive.ubuntu.com/ubuntu mantic/main isc-dhcp 4.4.3-P1-1ubuntu1 (diff) [128 kB]
gpgv: Signature made Mon 28 Nov 2022 02:38:12 PM GMT
gpgv: using RSA key 25E3FF2D7F469DBE7D0D4E50AFCFEC8E669CE1C2
gpgv: Can't check signature: No public key
dpkg-source: warning: cannot verify inline signature for ./isc-dhcp_4.4.3-P1-1ubuntu1.dsc: no acceptable signature found
autopkgtest [14:47:44]: testing package isc-dhcp version 4.4.3-P1-1ubuntu1

# Now testing to make sure with the correct version it works
sudo apt remove --purge autopkgtest
add "deb http://archive.ubuntu.com/ubuntu kinetic-proposed main restricted" to /etc/apt/sources.list
apt update
sudo apt install -t kinetic-proposed autopkgtest

apt list --installed | grep autopkgtest

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

autopkgtest/kinetic-proposed,now 5.28ubuntu0.22.10.0 all [installed]

sudo autopkgtest --setup-commands="apt-get update" --apt-pocket=proposed isc-dhcp -- qemu --ram-size=1536 --cpus 2 ./autopkgtest-mantic-amd64.img

Relevant output:
autopkgtest [15:06:08]: testbed dpkg architecture: amd64
autopkgtest [15:06:15]: testbed running kernel: Linux 6.2.0-21-generic #21-Ubuntu SMP PREEMPT_DYNAMIC Fri Apr 14 12:34:02 UTC 2023
autopkgtest [15:06:15]: @@@@@@@@@@@@@@@@@@@@ apt-source isc-dhcp
Get:1 http://archive.ubuntu.com/ubuntu mantic-proposed/main isc-dhcp 4.4.3-P1-1ubuntu2 (dsc) [2,969 B]
Get:2 http://archive.ubuntu.com/ubuntu mantic-proposed/main isc-dhcp 4.4.3-P1-1ubuntu2 (tar) [10.1 MB]
Get:3 http://archive.ubuntu.com/ubuntu mantic-proposed/main isc-dhcp 4.4.3-P1-1ubuntu2 (asc) [874 B]
Get:4 http://archive.ubuntu.com/ubuntu mantic-proposed/main isc-dhcp 4.4.3-P1-1ubuntu2 (diff) [129 kB]
gpgv: Signature made Thu 11 May 2023 03:13:31 PM BST
gpgv: using RSA key D98F377EB47CC6DD257A9A07E564B9C275BDD52E
gpgv: Can't check signature: No public key
dpkg-source: warning: cannot verify inline signature for ./isc-dhcp_4.4.3-P1-1ubuntu2.dsc: no acceptable signature found

rmadison output to verify correct version:
rmadison isc-dhcp ...

Read more...

Revision history for this message
Tim Andersson (andersson123) wrote (last edit ):

Testing the --architecture argument in the same container (testing with mawk instead of vlc as it has a shorter test duration and VLC has some issues at the moment):

check failure with incorrect version:
root@timscontainer:/home/ubuntu# apt list --installed | grep autopkgtest

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

autopkgtest/kinetic,now 5.25ubuntu1 all [installed]
root@timscontainer:/home/ubuntu# l
autopkgtest-kinetic-amd64.img autopkgtest-mantic-amd64.img
root@timscontainer:/home/ubuntu# sudo autopkgtest --architecture i386 mawk -- qemu --ram-size=1536 --cpus 2 ./autopkgtest-kinetic-amd64.img
usage: autopkgtest [options] [testbinary ...] testsrc -- virt-server [options]
autopkgtest: error: unrecognized arguments: --architecture

apt list --installed | grep autopkgtest

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

autopkgtest/kinetic-proposed,now 5.28ubuntu0.22.10.0 all [installed]

sudo autopkgtest --architecture i386 mawk -- qemu --ram-size=1536 --cpus 2 ./autopkgtest-kinetic-amd64.img
...
testing function calls and general stress test
general stress test OK
tested mawk OK
autopkgtest [15:24:25]: test mawktest: -----------------------]
autopkgtest [15:24:26]: test mawktest: - - - - - - - - - - results - - - - - - - - - -
mawktest PASS
autopkgtest [15:24:27]: @@@@@@@@@@@@@@@@@@@@ summary
mawktest PASS

So the architecture arg is working with the backport

tags: added: verification-done-kinetic
removed: verification-needed verification-needed-kinetic
tags: added: verification-needed
tags: removed: verification-needed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package autopkgtest - 5.28ubuntu0.22.10.0

---------------
autopkgtest (5.28ubuntu0.22.10.0) kinetic; urgency=medium

  [ Paride Legovini ]
  * Backport version 5.28 of autopkgtest. (LP: #2015285)
  * Include patches for cross-arch testing and preventing --apt-pocket from
    setting the wrong default release.

 -- Heather Ellsworth <email address hidden> Tue, 04 Apr 2023 17:47:37 +0000

Changed in autopkgtest (Ubuntu Kinetic):
status: Fix Committed → Fix Released
Revision history for this message
Andreas Hasenack (ahasenack) wrote : Update Released

The verification of the Stable Release Update for autopkgtest has completed successfully and the package is now being released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Marking devel main task as fix released, as lunar and mantic have version 5.28

Changed in autopkgtest (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.