Could not resume from hibernation when swap is specified as device

Bug #1876570 reported by Rasmus Bonnedal
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
initramfs-tools (Ubuntu)
Fix Released
Medium
Dan Streetman
Bionic
Fix Released
Medium
Dan Streetman
Focal
Fix Released
Medium
Dan Streetman
Groovy
Fix Released
Medium
Dan Streetman
Hirsute
Fix Released
Medium
Dan Streetman

Bug Description

[impact]

unable to resume from hibernation when resume= boot param is specified as device path

[test case]

set up device/partition for swap, e.g. /dev/vda2

add 'resume=/dev/vda2' kernel boot parameter

hibernate

power system back on; it should resume from /dev/vda2 instead of coldboot

[regression potential]

any regression would likely result in failure to correctly resume from hibernation, incorrectly attempting to resume from hibernation, or failing to resume from hibernation.

[scope]

this is needed in b/f/g/h

this bug was introduced, ironically, by bug 1644975, which was added in bionic, so this bug doesn't exist in xenial.

this code that introduced this bug isn't included in Debian, so no change is needed there.

[original description]

I originally experienced this on Pop!_OS but I have reproduced it on a freshly installed Ubuntu.

1. Ubuntu 20.04 LTS
2. initramfs-tools-core 0.136ubuntu6
3. I expect the system to resume from hibernation when running pm_hibernate
4. The system starts up anew when I try to resume

I have setup a swap partition on /dev/vda2 in /etc/fstab. To enable hibernate I added the kernel parameter "resume=/dev/vda2" to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub and run update-grub.

From debugging initramfs it tries to follow a symbolic link

DEV=$(readlink "$resume")
(see /usr/share/initramfs-tools/scripts/local-premount/resume, line 35)

which works well when swap is specified with uuid. When swap is specified as a device directly the readlink returns an empty string and the system does not resume from hibernation.

To verify this I added the parameter -f to readlink and run "update-initramfs -u". The system now hibernates successfully.

ProblemType: Bug
DistroRelease: Ubuntu 20.04
Package: initramfs-tools 0.136ubuntu6
ProcVersionSignature: Ubuntu 5.4.0-28.32-generic 5.4.30
Uname: Linux 5.4.0-28-generic x86_64
ApportVersion: 2.20.11-0ubuntu27
Architecture: amd64
CasperMD5CheckResult: skip
CurrentDesktop: ubuntu:GNOME
Date: Sun May 3 13:26:02 2020
InstallationDate: Installed on 2020-05-03 (0 days ago)
InstallationMedia: Ubuntu 20.04 LTS "Focal Fossa" - Release amd64 (20200423)
PackageArchitecture: all
SourcePackage: initramfs-tools
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
Rasmus Bonnedal (rasmusb) wrote :
Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

The attachment "resume.patch" seems to be a patch. If it isn't, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are a member of the ~ubuntu-reviewers, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issues please contact him.]

tags: added: patch
Mathew Hodson (mhodson)
Changed in initramfs-tools (Ubuntu):
importance: Undecided → Medium
Dan Streetman (ddstreet)
tags: added: sts-sponsor-volunteer
Mathew Hodson (mhodson)
tags: added: suspend-resume
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in initramfs-tools (Ubuntu):
status: New → Confirmed
Dan Streetman (ddstreet)
description: updated
Changed in initramfs-tools (Ubuntu Hirsute):
assignee: nobody → Dan Streetman (ddstreet)
Changed in initramfs-tools (Ubuntu Groovy):
assignee: nobody → Dan Streetman (ddstreet)
Changed in initramfs-tools (Ubuntu Focal):
assignee: nobody → Dan Streetman (ddstreet)
Changed in initramfs-tools (Ubuntu Bionic):
assignee: nobody → Dan Streetman (ddstreet)
Changed in initramfs-tools (Ubuntu Groovy):
importance: Undecided → Medium
Changed in initramfs-tools (Ubuntu Focal):
importance: Undecided → Medium
Changed in initramfs-tools (Ubuntu Bionic):
importance: Undecided → Medium
status: New → In Progress
Changed in initramfs-tools (Ubuntu Focal):
status: New → In Progress
Changed in initramfs-tools (Ubuntu Groovy):
status: New → In Progress
Changed in initramfs-tools (Ubuntu Hirsute):
status: Confirmed → In Progress
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package initramfs-tools - 0.139ubuntu2

---------------
initramfs-tools (0.139ubuntu2) hirsute; urgency=medium

  * scripts/local-premount/resume:
    - Use readlink -f to correctly handle non-symlink $resume
      (LP: #1876570)
  * d/t/control:
    - autopkgtests running qemu need root, add needs-root restriction
  * hook-functions:
    - when MODULES=list there will be no 'kernel' dir, so don't try
      to find anything there, as it will log an 'error'
      this is needed for amd64-ata-only autopkgtest to pass,
      or we would need to ignore the 'error' with allow-stderr

 -- Dan Streetman <email address hidden> Thu, 18 Mar 2021 14:48:17 -0400

Changed in initramfs-tools (Ubuntu Hirsute):
status: In Progress → Fix Released
Revision history for this message
Dan Streetman (ddstreet) wrote :

uploaded to b/f/g

Revision history for this message
Brian Murray (brian-murray) wrote : Please test proposed package

Hello Rasmus, or anyone else affected,

Accepted initramfs-tools into groovy-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/initramfs-tools/0.137ubuntu12.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, what testing has been performed on the package and change the tag from verification-needed-groovy to verification-done-groovy. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-groovy. 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 initramfs-tools (Ubuntu Groovy):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-groovy
Changed in initramfs-tools (Ubuntu Focal):
status: In Progress → Fix Committed
tags: added: verification-needed-focal
Revision history for this message
Brian Murray (brian-murray) wrote :

Hello Rasmus, or anyone else affected,

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

Revision history for this message
Brian Murray (brian-murray) wrote :

Hello Rasmus, 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.12 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-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 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 initramfs-tools (Ubuntu Bionic):
status: In Progress → Fix Committed
tags: added: verification-needed-bionic
Revision history for this message
Rasmus Bonnedal (rasmusb) wrote :

I have tested initramfs-tools 0.137ubuntu12.1 on groovy and it fixes the issue for me.

I performed the following test:
1. Setup swap on /dev/sda3
2. Add resume=/dev/sda3 to GRUB_CMDLINE_LINUX_DEFAULT
3. Run update-grub
4. Run pm-hibernate

The system resumes from hibernation.

tags: added: verification-done-groovy
removed: verification-needed-groovy
Revision history for this message
Rasmus Bonnedal (rasmusb) wrote :

I have now tested initramfs-tools 0.136ubuntu6.5 on focal and it fixes the issue for me.

Same test as above.

tags: added: verification-done-focal
removed: verification-needed-focal
Revision history for this message
Rasmus Bonnedal (rasmusb) wrote :

I have now tested initramfs-tools 0.130ubuntu3.12 on bionic and it fixes the issue for me.

Same test as above.

tags: added: verification-done-bionic
removed: verification-needed-bionic
Dan Streetman (ddstreet)
tags: added: verification-done
removed: verification-needed
Revision history for this message
Chris Halse Rogers (raof) wrote : Update Released

The verification of the Stable Release Update for initramfs-tools 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
Launchpad Janitor (janitor) wrote :

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

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

  * scripts/local-premount/resume:
    - Use readlink -f to correctly handle non-symlink $resume
      (LP: #1876570)
  * hooks/fsck:
    - don't check PASSNO, always include fsck
      (LP: #1917780)
  * hook-functions:
    - include firmware from /lib/firmware/updates
      (LP: #1571506)

 -- Dan Streetman <email address hidden> Thu, 18 Mar 2021 14:48:17 -0400

Changed in initramfs-tools (Ubuntu Bionic):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package initramfs-tools - 0.136ubuntu6.5

---------------
initramfs-tools (0.136ubuntu6.5) focal; urgency=medium

  * scripts/local-premount/resume:
    - Use readlink -f to correctly handle non-symlink $resume
      (LP: #1876570)
  * hook-functions:
    - when MODULES=list there will be no 'kernel' dir, so don't try
      to find anything there, as it will log an error
      (LP: #1927779)
  * hooks/fsck:
    - don't check PASSNO, always include fsck
      (LP: #1917780)

 -- Dan Streetman <email address hidden> Thu, 18 Mar 2021 14:48:17 -0400

Changed in initramfs-tools (Ubuntu Focal):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package initramfs-tools - 0.137ubuntu12.1

---------------
initramfs-tools (0.137ubuntu12.1) groovy; urgency=medium

  * scripts/local-premount/resume:
    - Use readlink -f to correctly handle non-symlink $resume
      (LP: #1876570)
  * hook-functions:
    - when MODULES=list there will be no 'kernel' dir, so don't try
      to find anything there, as it will log an error
      (LP: #1927779)
  * hooks/fsck:
    - don't check PASSNO, always include fsck
      (LP: #1917780)

 -- Dan Streetman <email address hidden> Thu, 18 Mar 2021 14:48:17 -0400

Changed in initramfs-tools (Ubuntu Groovy):
status: Fix Committed → 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.