server install does not have 'standard' task installed

Bug #1539329 reported by Scott Moser on 2016-01-29
20
This bug affects 2 people
Affects Status Importance Assigned to Milestone
tasksel (Ubuntu)
High
Mathieu Trudel-Lapierre
Xenial
High
Mathieu Trudel-Lapierre

Bug Description

Tests of the server ISO install are run from [1]
The 'default' test uses the preseed at [2] to install, and then verifies that the 'irqbalance' package is installed.
The test is failing because it is *not* installed as it was in wily given the same preseed file.
Further diagnosis shows that the 'standard' task is not being installed, which was bringing in irqbalance in wily.

cyphermox suggested that possibly the preseed had to be updated to have 'server' rather than 'Basic Ubuntu server', like
  tasksel tasksel/first multiselect Basic Ubuntu server
as a result of a tasksel change [3].

That didnt seem to make a difference, and to be clear it is the 'standard' seed, not the 'server' seed that is missing.
Looking at logs of wily shows:
$ grep "apt-get" /var/log/utah/utah-7-install.log | grep server
Jan 28 21:10:29 in-target: debconf (developer): starting /usr/bin/debconf-apt-progress --from 160 --to 800 --logstderr -- apt-get -q -y install minimal^ server^ standard^

Where xenial shows:
$ grep "apt-get" /var/log/utah/utah-2-install.log | grep server
Jan 28 18:45:08 in-target: debconf (developer): starting /usr/bin/debconf-apt-progress --from 160 --to 800 --logstderr -- apt-get -q -y -o APT::Install-Recommends=true -o APT::Get::AutomaticRemove=true -o APT::Acquire::Retries=3 install server^ minimal^

Note the lack of 'standard^' in the xenial grep.
Some conversation in ubuntu-devel (mostly summarized here) though at [4]

[1] https://platform-qa-jenkins.ubuntu.com/view/smoke-default/job/ubuntu-xenial-server-amd64-smoke-default/
[2] http://bazaar.launchpad.net/~ubuntu-server-dev/ubuntu-test-cases/server-tests-raring/view/head:/preseeds/default.preseed
[3] https://launchpad.net/ubuntu/+source/tasksel/3.34ubuntu3
[4] http://irclogs.ubuntu.com/2016/01/28/%23ubuntu-devel.html

Scott Moser (smoser) on 2016-01-29
Changed in ubuntu:
status: New → Confirmed
importance: Undecided → High
affects: Ubuntu Xenial → debian-installer (Ubuntu Xenial)
Steve Langasek (vorlon) on 2016-01-29
affects: debian-installer (Ubuntu Xenial) → tasksel (Ubuntu Xenial)
Changed in tasksel (Ubuntu Xenial):
assignee: nobody → Mathieu Trudel-Lapierre (mathieu-tl)
Steve Langasek (vorlon) wrote :

I am confused why this test relies on tasksel to install packages to begin with. My understanding is that the server ISO today uses a fastpath installer, where the base system is copied from a loopback squashfs on the ISO, rather than being handled as a bootstrap of individual packages. On IRC, Scott said to me that "this is just tests to verify d-i works; we don't want to break that either". However, I don't thinkit's correct that we should have tests of the server ISO that do not map to how our users will actually install their systems. If we expect the 'standard' task to be included automatically on every server installation, it should be included in the squashfs, and our tests of the ISO should use the fastpath installation method. If we do not expect this task to be automatically installed on every server installation, then I would argue that the test is wrong and the installer behavior is (unexpectedly) correct.

My understanding was that all ISO installs should now use the fastpath method; so the tests for the ISO should not be using other methods (and we should probably disable those other methods from the ISO). If there is a need to use the non-fastpath install method for other install media - such as for netboot installs - the tests should be associated with that install media, not with the server ISO.

Indeed it looks like tasksel and d-i are doing things precisely as they have been requested: the squashfs contains only minimal (that is configured in livecd-rootfs:/live-build/auto-config) since quantal (livecd-rootfs 2.83, bug 1028453); the typical preseed for ubuntu-server only asks for the server^ seed, which doesn't contain much[1]; and the ubuntu-server-minimal.seed preseed on the ISO contains no special preseed for tasksel (as then, minimal is indeed likely to be what one wants).

I don't think there's anything to disable here on the images, but we're running into a case where we don't know why there is a difference between the behavior in wily and xenial. I'll input the difference in wily to something that utah did to install extra packages. In that light, I wouldn't test for anything that depends on the presence of ubuntu-standard on server installs, since users are unlikely to have it anyway.

[1] http://people.canonical.com/~ubuntu-archive/seeds/ubuntu.xenial/server

Colin Watson (cjwatson) wrote :

Mathieu, the standard task normally has to be explicitly *disabled*, if anything; its Test-new-install field is supposed to cause it to be installed by default. To stop it being installed, one has to preseed something like "tasksel tasksel/skip-tasks string standard" (as the ubuntu-server-minimalvm preseed file in our debian-cd branch does, but not ubuntu-server in general).

It's definitely possible that this was broken by the recent tasksel merge and consequential fixes, so worth checking.

Colin Watson (cjwatson) wrote :

Steve, the reason standard isn't in the squashfs is that we explicitly wanted to have this separate "minimalvm" mode which didn't install standard, and (lacking support for stacked squashfses) including standard in the squashfs precluded that.

Scott Moser (smoser) wrote :

Hi,
is there any work being done here?
This is critical for Ubuntu Server. The default installation should include 'standard' packages.

Scott Moser (smoser) wrote :

I went ahead and did a attended install to a vm with xenial at 20160224.
The tasksel menu ("Software selection") at the end does default to 'standard' being selected.
So someone just taking defaults as then install manually will get standard^.

This still differs (from memory) from trusty in that
 a.) i dont think you were given the option to *not* chose 'standard'
 b.) as shown in our automated tests, change is required to get standard if you have a previously used preseed.

if we could fix 'b' even if not fixing 'a', then I'd consider that fine. If not, then I think this at very least requires a release note.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers