hanging at boot for about 30 seconds since upgrade to bionic

Bug #1771962 reported by Zwylicht on 2018-05-18
20
This bug affects 3 people
Affects Status Importance Assigned to Milestone
initramfs-tools (Ubuntu)
Undecided
Unassigned
Bionic
Undecided
Unassigned

Bug Description

[SRU Justification]
A regression in initramfs-tools causes it to autogenerate config in the initramfs saying to resume from any available swap devices, even if the swap device is ephemeral (i.e. swap encrypted with a random key). This adds an inappropriate 30-second boot delay to any system with randomly-crypted swap, which includes any system that was installed with encrypted home directories in earlier releases.

[Test case]
1. Install the ecryptfs-utils package.
2. Enable encrypted swap by running 'sudo ecryptfs-setup-swap'.
3. Run 'update-initramfs -u' to regenerate the initramfs.
4. Reboot.
5. Verify that dmesg shows a 30-second delay before mounting the root filesystem.
6. Install initramfs-tools from bionic-proposed.
7. Reboot.
8. Verify that dmesg no longer shows a 30-second delay before mounting the root filesystem.

[Regression potential]
This makes changes to shell scripts, and shell is a perilous language. An unnoticed bug could cause all initramfs generation, and thus all kernel installation, to fail for some users. A regression could also cause a user to lose hiberation support that they currently have.

[Original description]
Since upgrade to Bionic ubuntu is hanging at boot for about 30s. A `dmesg` shows

```
[ 3.407230] clocksource: Switched to clocksource tsc
[ 34.632583] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)
```

This is 100% reproducable and is always 30s minimum. I do not know in which package to report this properly – please excuse me.

ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: ubuntu-release-upgrader-core 1:18.04.17
ProcVersionSignature: Ubuntu 4.15.0-20.21-lowlatency 4.15.17
Uname: Linux 4.15.0-20-lowlatency x86_64
ApportVersion: 2.20.9-0ubuntu7
Architecture: amd64
CrashDB: ubuntu
CurrentDesktop: i3
Date: Fri May 18 09:40:59 2018
EcryptfsInUse: Yes
InstallationDate: Installed on 2014-06-03 (1444 days ago)
InstallationMedia: Ubuntu 14.04 LTS "Trusty Tahr" - Release amd64 (20140417)
PackageArchitecture: all
SourcePackage: ubuntu-release-upgrader
Symptom: release-upgrade
UpgradeStatus: Upgraded to bionic on 2018-05-13 (5 days ago)
VarLogDistupgradeAptclonesystemstate.tar.gz:
 Error: command ['pkexec', 'cat', '/var/log/dist-upgrade/apt-clone_system_state.tar.gz'] failed with exit code 127: polkit-agent-helper-1: error response to PolicyKit daemon: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: No session for cookie
 Error executing command as another user: Not authorized

 This incident has been reported.

Zwylicht (zwylicht) wrote :
tags: added: xenial2bionic
Zwylicht (zwylicht) wrote :

This is a duplicate of https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1460447 and solution is setting `RESUME=none` in `/etc/initramfs-tools/conf.d` as described in https://askubuntu.com/questions/1029598/xubuntu-18-04-kernel-takes-long-to-boot

No problem with 16.04 though. Never been.

Steve Langasek (vorlon) wrote :

As I understand, you had an /etc/initramfs-tools/conf.d/resume file on your system that pointed to an invalid location. When was this file created? What were its contents? Do you know why the contents were invalid?

Changed in ubuntu-release-upgrader (Ubuntu):
status: New → Incomplete
Steve Langasek (vorlon) wrote :

please also provide full dmesg output from a boot in which the problem has been reproduced.

Zwylicht (zwylicht) wrote :

If I remember correctly resume was set to cryptswap partition. When doing so again (`RESUME=UUID=xxx`) invocation of `update-initramfs -uk all` gives

```
W: initramfs-tools configuration sets RESUME=UUID=9792e199-e275-4547-b9ce-c4e507e8bd5d
W: but no matching swap device is available.
```

The device is available and in use.

Zwylicht (zwylicht) wrote :

If I remember correctly resume was set to cryptswap partition. When doing so again (`RESUME=UUID=xxx`) invocation of `update-initramfs -uk all` gives

```
W: initramfs-tools configuration sets RESUME=UUID=9792e199-e275-4547-b9ce-c4e507e8bd5d
W: but no matching swap device is available.
```

The device is available and in use. Dmesg output is attached

Steve Langasek (vorlon) wrote :

Thanks. What are the options for /dev/mapper/cryptsetup1 in /etc/crypttab? Is this a randomly-encrypted swap partition?

Yes, it is randomly-encrypted:

cryptswap1 /dev/sda4 /dev/urandom swap,cipher=aes-cbc-essiv:sha256

On 07.06.2018 07:04, Steve Langasek wrote:
> Thanks. What are the options for /dev/mapper/cryptsetup1 in
> /etc/crypttab? Is this a randomly-encrypted swap partition?
>

Steve Langasek (vorlon) wrote :

Thanks. This will obviously never work for resume, since the encryption key is not saved anywhere across boot, so the scripts need to detect this case and avoid adding a resume setting in this case.

Changed in ubuntu-release-upgrader (Ubuntu):
status: Incomplete → Triaged
Steve Langasek (vorlon) on 2018-06-09
description: updated
Changed in ubuntu-release-upgrader (Ubuntu):
status: Triaged → Fix Committed

Hello Zwylicht, or anyone else affected,

Accepted initramfs-tools into bionic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/initramfs-tools/0.130ubuntu3.1 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 and change the tag from verification-needed-bionic to verification-done-bionic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-bionic. 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!

affects: ubuntu-release-upgrader (Ubuntu) → initramfs-tools (Ubuntu)
Changed in initramfs-tools (Ubuntu Bionic):
status: New → Fix Committed
tags: added: verification-needed verification-needed-bionic
Brian Murray (brian-murray) wrote :

initramfs-tools (0.130ubuntu7) cosmic; urgency=medium

  * hooks/resume: don't generate RESUME config pointing to randomly-crypted
    swap devices. LP: #1771962.

Changed in initramfs-tools (Ubuntu):
status: Fix Committed → Fix Released
Steve Langasek (vorlon) wrote :

I have run through the test case as described and confirmed that the updated initramfs-tools in bionic-proposed eliminates this 30-second wait in the initramfs. In my test VM, the rootfs is now mounted at 6.8s (and the swap is activated at 13.0s).

tags: added: verification-done verification-done-bionic
removed: verification-needed verification-needed-bionic
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package initramfs-tools - 0.130ubuntu3.1

---------------
initramfs-tools (0.130ubuntu3.1) bionic; urgency=medium

  * hooks/resume: don't generate RESUME config pointing to randomly-crypted
    swap devices. LP: #1771962.

 -- Steve Langasek <email address hidden> Fri, 08 Jun 2018 21:29:19 -0700

Changed in initramfs-tools (Ubuntu Bionic):
status: Fix Committed → Fix Released

The verification of the Stable Release Update for initramfs-tools has completed successfully and the package has now been 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.

Tais P. Hansen (taisph) wrote :

Note that this also applies if your swap is on ZFS. Ubuntu will attempt to use it automatically and cause a 30 second delay as the swap partition will not be available during early boot. Ie.

I: The initramfs will attempt to resume from /dev/zd0
I: (UUID=a0c4e220-8b9f-447b-b2e2-d2abeb2f6c39)
I: Set the RESUME variable to override this.

and

Aug 2 14:58:00 taisph-enodatio kernel: [ 3.822995] Btrfs loaded, crc32c=crc32c-intel
Aug 2 14:58:00 taisph-enodatio kernel: [ 35.038644] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)

Setting RESUME=none is currently necessary to work around this.

Tested with initramfs-tools 0.130ubuntu3.1.

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

Other bug subscribers