workdir only used for root mount not recursed

Bug #1619459 reported by Scott Moser
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
cloud-initramfs-tools (Ubuntu)
Fix Released
Medium
Unassigned
Xenial
Fix Released
Medium
Scott Moser

Bug Description

=== Begin SRU Template ===
[Impact]
The impact on xenial would only be seen if there were multiple filesystems
mounted. In the 16.04 cloud image that is used on openstack or many other
clouds, there is only one partition. But in the 16.10 image there is
a separate uefi partition that caused havoc to overlayroot as the 'workdir'
option was not correctly supported.

[Test Case]
The following should work, but currently does not.
Note, to test the fix, between step 1 and 2, you'll need to enable
proposed and install overlayroot.

1. Start an instance of a cloud image with 2 disks.
   On openstack by default you get 2 disks (an ephemeral and a root).
   Cloud-init will configure the ephemeral to be a /mnt.

2. remove cloud-init's configuration of /etc/fstab options
    These can cause issue with the way overlayroot does its mounts.
    So just remove the special options that cloud-init writes.

    $ sed -i.dist s/,x-systemd.requires=cloud-init.service,comment=cloudconfig// /etc/fstab

    if you do not do that, then /mnt will not get mounted, and journalctl
    will show a ordering cycle on the mount. The following will show failed.
       systemctl status 'media-root\x2dro-mnt.mount'

    Note, this is a separate bug, mentioned here only for completeness.

3. Enable proposed and install overlayroot to show fix.
    $ rel=$(lsb_release -sc)
    $ echo "deb http://archive.ubuntu.com/ubuntu $rel-proposed main" |
    $ sudo tee /etc/apt/sources.list.d/proposed.list
    $ sudo apt update -qy && sudo apt install -qy overlayroot </dev/null
    $ dpkg-query --show overlayroot
    overlayroot 0.27ubuntu1.3

4. configure overlayroot to use tmpfs with recurse=1 and reboot.

   $ echo "overlayroot=tmpfs:recurse=1" | sudo tee /etc/overlayroot.local.conf
   $ sudo reboot

4. log back in and look around

   a.) check that 'overlay' is in /proc/mounts for / and /mnt
       $ awk '$3 ~ /overlay/ { print $0 }' /proc/mounts
       overlayroot / overlay rw,relatime,lowerdir=/media/root-ro,upperdir=/media/root-rw/overlay,workdir=/media/root-rw/overlay-workdir/_ 0 0
       /media/root-ro/mnt /mnt overlay rw,relatime,lowerdir=/media/root-ro/mnt,upperdir=/media/root-rw/overlay/mnt,workdir=/media/root-rw/overlay-workdir/mnt 0 0

   b.) check that /mnt is set as overlay
       $ df -h /mnt
       Filesystem Size Used Avail Use% Mounted on
       /media/root-ro/mnt 1000M 1.3M 999M 1% /mnt

   c.) check /run/initramfs/overlayroot.log
       $ grep success /run/initramfs/overlayroot.log
       [success]: configured root with 'tmpfs:recurse=1' using overlay per /dev/vda1/etc/overlayroot.local.conf

[Regression Potential]
Previously almost any scenario with multiple mount points would cause
failure to boot. This change does improve the situation, and is not likely
to regress it.

[Other Info]

=== End SRU Template ===

to reproduce, boot a yakkety disk1.img. this is a uefi image, so it has multiple partitions.

sudo sh -c 'echo overlayroot=tmpfs > /etc/overlayroot.local.conf && reboot'

you'll see it hang. the reason i believe is the info written to /etc/fstab for the non-root mounts does not include workdir information.

Scott Moser (smoser)
Changed in cloud-initramfs-tools (Ubuntu):
status: New → Confirmed
importance: Undecided → Medium
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package cloud-initramfs-tools - 0.28ubuntu1

---------------
cloud-initramfs-tools (0.28ubuntu1) yakkety; urgency=medium

  * overlayroot: write debug to /run/initramfs not /dev/.initramfs but
    support writing to /dev/.initramfs if that is all there is. (LP: #1485752)
  * overlayroot: fix overlayroot if recurse=0 was not provided.
    This fuctionality was lost since workdir support was added. (LP: #1619459)

 -- Scott Moser <email address hidden> Fri, 02 Sep 2016 11:20:53 -0400

Changed in cloud-initramfs-tools (Ubuntu):
status: Confirmed → Fix Released
Scott Moser (smoser)
Changed in cloud-initramfs-tools (Ubuntu Xenial):
status: New → Fix Committed
importance: Undecided → Medium
assignee: nobody → Scott Moser (smoser)
status: Fix Committed → In Progress
Scott Moser (smoser)
description: updated
description: updated
Revision history for this message
Chris Halse Rogers (raof) wrote : Please test proposed package

Hello Scott, or anyone else affected,

Accepted cloud-initramfs-tools into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/cloud-initramfs-tools/0.27ubuntu1.3 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 to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in cloud-initramfs-tools (Ubuntu Xenial):
status: In Progress → Fix Committed
tags: added: verification-needed
Revision history for this message
Scott Moser (smoser) wrote :

I've verified this as shown in the test case above.

description: updated
tags: added: verification-done
removed: verification-needed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package cloud-initramfs-tools - 0.27ubuntu1.3

---------------
cloud-initramfs-tools (0.27ubuntu1.3) xenial; urgency=medium

  * sync with upstream at 0.32ubuntu1 (revno 129)
    * overlayroot: fix overlayroot=crypt with newer initramfs-tools
      (LP: #1634310)
    * overlayroot: support random seed from systemd systemd-random-seed.service
    * cloud-initramfs-dyn-netconf: Further adjustments to support
      IPV6 and the new DEVICE6 and net6-DEVICE.conf files. (LP: #1621615)
    * overlayroot: support 'overlay' filesystem explicitly rather than
      relying on ubuntu specific kernel module 'overlayfs'. (LP: #1493188)
    * overlayroot: write debug to /run/initramfs not /dev/.initramfs but
      support writing to /dev/.initramfs if that is all there is. (LP: #1485752)
    * overlayroot: fix overlayroot if recurse=0 was not provided.
      This fuctionality was lost since workdir support was added. (LP: #1619459)
    * whitespace cleanup.

 -- Scott Moser <email address hidden> Mon, 28 Nov 2016 20:12:51 -0500

Changed in cloud-initramfs-tools (Ubuntu Xenial):
status: Fix Committed → Fix Released
Revision history for this message
Robie Basak (racb) wrote : Update Released

The verification of the Stable Release Update for cloud-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.

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.