What's up with Ubuntu mainline builds?

You might have been wondering lately what’s up with Ubuntu mainline builds [1] and why a lot of the recent 6.x builds failed. Well, in the 6.0 time frame we moved some checker scripts around [2] and changed how we handle kernel configs. Away from split config files towards a single annotations file [3]. This is still work in progress and we’ll keep making changes as we go along.

An unexpected side-effect of this is that it broke mainline builds :frowning: Some kernels still built properly - by sheer luck - but the majority failed due to config errors.

To give some context: When building kernel packages, there are a couple of checks that make sure we don’t release potentially broken kernels. Amongst other things, we check that kernel configs are as expected and that we don’t accidentally break the kernel ABI. This is not relevant for mainline builds, so these checks are disabled - theoretically. The code that generates mainline builds as well as the packaging bits have obviously changed over time and so have these checks. The build scripts disable the checks in two ways: 1) replace the checker scripts with empty shell scripts and 2) set a do_mainline_build build flag that is honored by the build scripts/rules to ignore some checks. With the above mentioned changes, we moved the checker scripts so they didn’t get stubbed out by the mainline build scripts and we introduced new config handling tools that ignored the do_mainline_build flag… :flushed:

Long story short, it’s all fixed and hopefully in a more robust way than before. Be aware though that we don’t actively monitor mainline builds so might not notice immediately when builds fail. In that case, don’t hesitate to notify us on IRC [4] or via email [5]. Or do so for any kernel related question/comment/suggestion/…

…Juerg

[1] Index of /mainline
[2] ~ubuntu-kernel/ubuntu/+source/linux/+git/lunar - [no description]
[3] ~ubuntu-kernel/ubuntu/+source/linux/+git/lunar - [no description]
[4] irc.libera.chat - channel #ubuntu-kernel
[5] kernel-team@lists.ubuntu.com

7 Likes

$ mainline --install-latest
mainline 1.1.9
Distribution: Linux Mint 21.1
Architecture: amd64
Running kernel: 6.2.8-060208-generic
Updating from: ‘https://kernel.ubuntu.com/~kernel-ppa/mainline/
OK
Found installed : 6.2-6ubuntu1~jammy
Found installed : 6.2.5-060205.202303110831
Found installed : 6.2.8-060208.202303220943
Latest point update: 6.2.9

Install Kernel Version 6.2.9 ? (y/n):
y

** (process:50799): CRITICAL **: 12:31:22.174: download_item_construct: assertion ‘cksum != NULL’ failed

** (process:50799): CRITICAL **: 12:31:22.174: download_task_add_to_queue: assertion ‘item != NULL’ failed

** (process:50799): CRITICAL **: 12:31:22.174: download_item_construct: assertion ‘cksum != NULL’ failed

** (process:50799): CRITICAL **: 12:31:22.174: download_task_add_to_queue: assertion ‘item != NULL’ failed

** (process:50799): CRITICAL **: 12:31:22.174: download_item_construct: assertion ‘cksum != NULL’ failed

** (process:50799): CRITICAL **: 12:31:22.174: download_task_add_to_queue: assertion ‘item != NULL’ failed

** (process:50799): CRITICAL **: 12:31:22.174: download_item_construct: assertion ‘cksum != NULL’ failed

** (process:50799): CRITICAL **: 12:31:22.174: download_task_add_to_queue: assertion ‘item != NULL’ failed
Downloading 6.2.9

This solved the problem for me:

Known Issue in 1.1.9 : assertion ‘cksum != NULL’

Work-Around: Settings -> enable Verify Checksums
As soon as the ppa updates to 1.1.11 the problem will be gone.

Why hasn’t Mainline put up the 6.3.8 or 6.3.9 kernels?

For that matter, where is the 6.4 kernel that was published yesterday?

Thanks for the polite inquiry. There’s is an issue with processing new tags that I need to look into.

4 Likes

Hello, is the processing new tags issue still what keeps new builds from showing? Or is it something else as I see 6.3.10, 6.3.11 and 6.4.1 are missing?

1 Like

I see that the newer builds are now available, all up to 6.3.12 and 6.4.2, but they (6.3.10-6.3.12, 6.4.1 and 6.4.2) appear as invalid in the Ubuntu Mainline Kernel Installer.

They should be all there by now. I don’t know what Ubuntu Mainline Kernel Installer is nor how it works but note that the existence of the main directory (for example ~kernel-ppa/mainline/v6.4.1/) is only the first step of the build process which will then trigger the actual builds of the binary packages.

I should probably add an overall build status that indicates the build status/progress of the whole operation. And also some PASS/FAIL logic to better detect missing/bad builds.

1 Like

Hey @juergh, thank you for the clarifications. When I first checked, the tests were not yet ran for the builds, but after the tests finished (successfully) the builds were also available in the kernel installer app I’m using. It’s nice to have a bit more context on what is going on. It would be great to have the build status easily available as well.