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)
Fix Released
Scott Moser
Fix Released
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.