Comment 23 for bug 1694531

Revision history for this message
Mathieu Trudel-Lapierre (cyphermox) wrote :

This had already been identified and "fixed" on Wednesday, probably around the time the bug was filed (I uploaded the main-menu update around 11h30 EST). For posterity, I've captured relevant information at http://people.canonical.com/~mtrudel/lp1694531/)

Unfortunately, it's just the kind of bug that is genuinely hard to recognize and debug unless you have a good understanding of how d-i works; so I'll explain for the future:

We uploaded a libdebian-installer change on May 24th, which did some changes to the symbols provided by that library. It looked tame to me, so I sponsored the changes and did not insist on rebuilding the reverse-dependencies immediately as non of them relied on the exact symbols changed (SHA256 support). Namely, main-menu and netcfg were identified as needing a rebuild eventually, and needing a merge. Someone else had started doing d-i merges.

In preparing the netcfg merge and other changes, while testing I noticed that d-i would not start correctly. You'd reach the "d-i screen", but you would see the screen flicker, restarting repeatedly, forever. A little bit of debugging (starting the installer in expert mode, command-line, using the mini.iso image) and with the knowledge that the screen flickers after loading what looks like the d-i background, it's likely the main menu or some part of the early steps (language/keyboard selection, etc) that fail, as well as the messages already shown here in screenshots, I identified main-menu as the culprit. /sbin/debian-installer is a short script that just runs other pieces, some of which can be quickly dismissed as unlikely to apply to a default install, which helps narrowing things down.

Running main-menu from the console (ctrl-alt-f2) yields an error (see screenshot included in my capture of relevant files). This makes it apparent that the issue is related to libdebian-installer, which was changed with a date greater than main-menu's last upload. Rebuilding main-menu would be a reasonable attempt to fix the bug, but given that we were lagging a bit behind Debian, it was merged. main-menu was directly uploaded to the archive since the merge changes were straightforward and correct (and the merge obviously needed to be done anyway).

The important part when changing d-i components, however, is that some of them are so important that they are also used during d-i's build process, so as to be included in main.iso. They are listed under build/pkg-lists in the d-i source tree. main-menu is listed in build/pkg-lists/base. When listed, the packages are included in mini.iso, and thus require a debian-installer rebuild when changed. debian-installer was also uploaded in a PPA for testing with main-menu.

After verifying that the mini.iso image booted fine, I contacted Adam Conrad to synchronize on the necessary debian-installer upload, since he routinely does d-i uploads for new kernels. d-i was uploaded to artful and published in -proposed on 2017-05-29, and finally migrated to -release at 2017-06-01 16:54:47 EDT; the following ubuntu-server (20170602) includes all fixes.

Once thing to notice is that 20170602 is still listed under ubuntu-server/daily/pending rather than ubuntu-server/daily/current (the image in /current is the previous-last-known-good image 20170524). This means there may be other issues that break successful completion of the whole set of ubuntu-server tests.

http://people.canonical.com/~mtrudel/lp1694531 includes a copy of a broken mini.iso image, along with a screenshot of the real error from main-menu. The diff for the libd-i update is available here: http://launchpadlibrarian.net/320240937/libdebian-installer_0.102ubuntu3_0.110ubuntu1.diff.gz