lxc-create -t ubuntu-cloud broken on quantal images (no ubuntu user)

Bug #1045955 reported by Scott Moser
This bug affects 1 person
Affects Status Importance Assigned to Milestone
lxc (Ubuntu)
Scott Moser
Stéphane Graber

Bug Description

=== Rationale ===
The quantal cloud image doesn't ship with an existing ubuntu user, instead it uses cloud-utils to create it at boot time.
This breaks older versions of lxc-ubuntucloud which expects the user to be there.

The fix is a backport from what was pushed into quantal and basically moves the user handling code to the cloud-init config file.

=== Test case ===
1) lxc-create -t ubuntucloud -n p1 -- -r q
2) If this works, you're good (otherwise it'll fail when setting up the user saying that "ubuntu" doesn't exist.)

=== Regression potential ===
The fix is a direct port of the change that was pushed to quantal and it's been tested on 12.04 with both a precise and quantal container. In the worst case, cloud-init would fail to run, rendering the container close to useless, but the testing I've been doing would have shown anything that bad.

------ original bug report --------

'lxc-create -t ubuntu-cloud' was broken on quantal images as it assumes presense of 'ubuntu' user, and that has been removed from the images. Now, cloud-init creates the ubuntu user on first boot.

$ lxc-create -t ubuntu-cloud -n source-quantal-amd64 -- --release quantal --arch amd64 --stream daily
No config file specified, using the default config
ubuntu-cloudimg-query is /usr/bin/ubuntu-cloudimg-query
wget is /usr/bin/wget
--2012-09-04 18:16:36-- https://cloud-images.ubuntu.com/server/quantal/20120904/quantal-server-cloudimg-amd64-root.tar.gz
Resolving cloud-images.ubuntu.com (cloud-images.ubuntu.com)...
Connecting to cloud-images.ubuntu.com (cloud-images.ubuntu.com)||:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://cloud-images.ubuntu.com/quantal/20120904/quantal-server-cloudimg-amd64-root.tar.gz [following]
--2012-09-04 18:16:36-- https://cloud-images.ubuntu.com/quantal/20120904/quantal-server-cloudimg-amd64-root.tar.gz
Reusing existing connection to cloud-images.ubuntu.com:443.
HTTP request sent, awaiting response... 200 OK
Length: 172848992 (165M) [application/x-gzip]
Saving to: `quantal-server-cloudimg-amd64-root.tar.gz'

100%[======================================================>] 172,848,992 17.5M/s in 10s

2012-09-04 18:16:46 (16.4 MB/s) - `quantal-server-cloudimg-amd64-root.tar.gz' saved [172848992/172848992]

Extracting container rootfs
Configuring for running outside of a cloud environment
If you want to configure for a cloud evironment, please use '-- -C' to create the container
usermod: user 'ubuntu' does not exist
failed to execute template 'ubuntu-cloud'

ProblemType: Bug
DistroRelease: Ubuntu 12.10
Package: lxc 0.8.0~rc1-4ubuntu32
ProcVersionSignature: User Name 3.5.0-13.13-generic 3.5.3
Uname: Linux 3.5.0-13-generic x86_64
Architecture: amd64
Date: Tue Sep 4 18:17:47 2012

 PATH=(custom, no user)
SourcePackage: lxc
UpgradeStatus: No upgrade log present (probably fresh install)

Related branches

Revision history for this message
Scott Moser (smoser) wrote :
Scott Moser (smoser)
Changed in lxc (Ubuntu):
assignee: nobody → Scott Moser (smoser)
importance: Undecided → Medium
status: New → Triaged
Changed in lxc (Ubuntu):
status: Triaged → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package lxc - 0.8.0~rc1-4ubuntu33

lxc (0.8.0~rc1-4ubuntu33) quantal; urgency=low

  [ Serge Hallyn ]
  * 0206-lxc-wait-initialize-timeout: initialize timeout to -1 so lxc-wait
    will, by default, wait for the container to enter the requested state.
  * debian/patches/compilecleanups/* - fix compile time warnings.
  * lxc.lxc-net.upstart: tell iptables not to masquerate packets between
    containers. (LP: #1045947)
  * 0208-fix-getitem-utsname-segv: fix seg fault when doing get_item(utsname)
    on newly created container.
  * 0209-reload-conf-after-create: add ability to free a lxc_conf. Use that
    after calling Container->Create() to completely reload the newly created
  * 0211-add-hooks-to-manpage: document lxc.hook in the lxc.conf manpage.
  * 0212-lxc-destroy-rm-symlink: If rootfs is a symbolic link to a directory,
    remove it. (LP: #1046117)
  * 0213-add-premount-hook.patch: add a premount hook to support encrypted
    filesystems. (LP: #1043052)

  [ Scott Moser ]
  * 0207-ubuntu-cloud-fixes.patch: cleanups to lxc-ubuntu-cloud.in
    fix for quantal images that do not have user 'ubuntu' present
    (LP: #1045955)

  [ Rex Tsai ]
  * 0210-fix-debian-templates: Fix lxc-shutdown/lxc-restart in Debian
    containers and fix lxc.utsname for lenny containers.
    (LP: #1046684, LP: #1046696)

  [ Stéphane Graber ]
  * lxc.lxc-net.upstart: Make the iptables call more consistent (LP: #1045947)
 -- Serge Hallyn <email address hidden> Thu, 30 Aug 2012 11:32:06 -0500

Changed in lxc (Ubuntu):
status: Fix Committed → Fix Released
Scott Moser (smoser)
Changed in lxc (Ubuntu Precise):
status: New → Triaged
importance: Undecided → Medium
Changed in lxc (Ubuntu Precise):
status: Triaged → In Progress
assignee: nobody → Stéphane Graber (stgraber)
description: updated
Revision history for this message
Clint Byrum (clint-fewbar) wrote : Please test proposed package

Hello Scott, or anyone else affected,

Accepted lxc into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/lxc/0.7.5-3ubuntu67 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 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 lxc (Ubuntu Precise):
status: In Progress → Fix Committed
tags: added: verification-needed
Revision history for this message
Scott Moser (smoser) wrote :

$ rel=$(lsb_release -sc)
$ echo $rel
$ echo "deb http://archive.ubuntu.com/ubuntu $rel-proposed main universe" |
   sudo tee /etc/apt/sources.list.d/$rel-proposed.list
$ sudo apt-get update

$ apt-cache policy lxc
  Installed: (none)
  Candidate: 0.7.5-3ubuntu67
  Version table:
     0.7.5-3ubuntu67 0
        500 http://archive.ubuntu.com/ubuntu/ precise-proposed/universe amd64 Packages
     0.7.5-3ubuntu66 0
        500 http://nova.clouds.archive.ubuntu.com/ubuntu/ precise-updates/universe amd64 Packages
     0.7.5-3ubuntu52 0
        500 http://nova.clouds.archive.ubuntu.com/ubuntu/ precise/universe amd64 Packages

$ sudo apt-get install -q -y lxc distro-info
$ sudo lxc-create -t ubuntu-cloud -n quantal-i386-source -- --release=quantal --arch=i386
$ sudo lxc-clone -o quantal-i386-source -n quantal-i386
$ sudo lxc-start -n quantal-i386

Then logged in using 'ubuntu:ubuntu'.

tags: added: verification-done
removed: verification-needed
Revision history for this message
Colin Watson (cjwatson) wrote : Update Released

The verification of this Stable Release Update 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 regresssions.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package lxc - 0.7.5-3ubuntu67

lxc (0.7.5-3ubuntu67) precise-proposed; urgency=low

  * Don't directly write/remove /etc/dnsmasq.d/lxc as that's causing problems
    when removing and reinstalling lxc.
    Instead have dnsmasq ship /etc/dnsmasq.d-available/lxc and create/remove
    a symlink in /etc/dnsmasq.d/. (LP: #1113821)
  * Bump debhelper dependency and add Pre-Depends on newer dpkg for above fix.
  * Allow the container to mount efivars on /sys/firmware/efi/efivars.
    efivars is automatically mounted by mountall on UEFI systems, failure to
    do so leads to a complete boot failure. (LP: #1117589)
  * 0221-make-nonflush-upgrades-robust: be more robust about out of date
    container caches. (LP: #942862)
  * 0207-ubuntu-cloud-fixes.patch: cleanups to lxc-ubuntu-cloud.in
    fix for quantal images that do not have user 'ubuntu' present
    (LP: #1045955)
  * 0301-debian-copy-config: Pass all the arguments to copy_configuration.
    (LP: #1111613)
 -- Stephane Graber <email address hidden> Thu, 07 Feb 2013 13:08:07 -0500

Changed in lxc (Ubuntu Precise):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers