]> git.ipfire.org Git - thirdparty/lxc.git/log
thirdparty/lxc.git
11 years agotests: Wait 5s for init to respond in lxc-test-autostart
Stéphane Graber [Mon, 9 Jun 2014 21:13:56 +0000 (17:13 -0400)] 
tests: Wait 5s for init to respond in lxc-test-autostart

lxc-test-autostart occasionaly fails at the restart test in the CI
environment. Looking at the current test case, the most obvious race
there is if lxc-wait exists succesfuly immediately after LXC marked the
container RUNNING (init spawned) but before init had a chance to setup
the signal handlers.

To avoid this potential race period, let's add a 5s delay between the
tests to give a chance for init to finish starting up.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
11 years agocgfs: Log the whole cgroup path too
Stéphane Graber [Mon, 9 Jun 2014 22:27:24 +0000 (18:27 -0400)] 
cgfs: Log the whole cgroup path too

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
11 years agocontainer start: check for start hooks in container rootfs
Serge Hallyn [Tue, 10 Jun 2014 03:29:11 +0000 (03:29 +0000)] 
container start: check for start hooks in container rootfs

Do so early enough that we can report a meaningful failure.

(This should fix https://github.com/lxc/lxc/issues/225)

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agopython3: Fix crashes in snapshot()
Stéphane Graber [Mon, 9 Jun 2014 16:02:02 +0000 (12:02 -0400)] 
python3: Fix crashes in snapshot()

This makes sure all PyObject structs are always initialized to NULL,
this will fix issues such as (issue #239).

Also add a snapshot/list/restore testcase to the python3 api test code.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
11 years agodoc: Update Japanese man pages for the description of boot and group handling
KATOH Yasufumi [Thu, 5 Jun 2014 12:16:26 +0000 (21:16 +0900)] 
doc: Update Japanese man pages for the description of boot and group handling

Update lxc-autostart(1) and lxc.container.conf(5) for commit 015f0dd.

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoBackport of autoboot/autostart rollup to stable-1.0
Michael H. Warfield [Thu, 5 Jun 2014 21:40:18 +0000 (17:40 -0400)] 
Backport of autoboot/autostart rollup to stable-1.0

Full backport of the autostart / autoboot rollup patch from
master to stable-1.0.

lxc-autostart: rework boot and group handling

This adds new functionality to lxc-autostart.

*) The -g / --groups option is multiple cummulative entry.
    This may be mixed freely with the previous comma separated
    group list convention.  Groups are processed in the
    order they first appear in the aggregated group list.

*) The NULL group may be specified in the group list using either a
    leading comma, a trailing comma, or an embedded comma.

*) Booting proceeds in order of the groups specified on the command line
    then ordered by lxc.start.order and name collalating sequence.

*) Default host bootup is now specified as "-g onboot," meaning that first
    the "onboot" group is booted and then any remaining enabled
    containers in the NULL group are booted.

*) Adds documentation to lxc-autostart for -g processing order and
    combinations.

*) Parameterizes bootgroups, options, and shutdown delay in init scripts
    and services.

*) Update the various init scripts to use lxc-autostart in a similar way.

Reported-by: CDR <venefax@gmail.com>
Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoTry to be more helpful on container startup failure
Stéphane Graber [Wed, 4 Jun 2014 18:05:25 +0000 (14:05 -0400)] 
Try to be more helpful on container startup failure

This hides some of the confusing "command X failed to receive response"
why are usually caused by another more understandable error.

On failure to start() from lxc-start, a new error message is displayed,
suggesting the user sets logfile and loglevel and if using -d, restarts
the container in the foreground instead.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
11 years agoSpecially handle block device rootfs
Serge Hallyn [Wed, 4 Jun 2014 15:16:10 +0000 (10:16 -0500)] 
Specially handle block device rootfs

It is not possible to mount a block device from a non-init user namespace.
Therefore if root on the host is starting a container with a uid
mapping, and the rootfs is a block device, then mount the rootfs before
we spawn the container init task.

This addresses https://github.com/lxc/lxc/issues/221

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agolxc-download: Attempt to get the GPG key 3 times
Stéphane Graber [Tue, 3 Jun 2014 19:11:43 +0000 (15:11 -0400)] 
lxc-download: Attempt to get the GPG key 3 times

This is to deal with the GPG pool occasionaly yielding broken servers.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
11 years agolxc-fedora.in: Correct some systemd target setups.
Michael H. Warfield [Tue, 3 Jun 2014 16:59:20 +0000 (12:59 -0400)] 
lxc-fedora.in: Correct some systemd target setups.

Set the halt.target action to be sigpwr.target.  This allows
SIGPWR to properly shut the container down from lxc-stop.

Renable the systemd-journald.service.

Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agolxcapi_snapshot: check that c is defined
Serge Hallyn [Tue, 3 Jun 2014 18:16:03 +0000 (13:16 -0500)] 
lxcapi_snapshot: check that c is defined

before using it, like the other snapshot api methods do.

This will need to go into stable-1.0 as well.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agopython3: Handle invalid global config keys
Stéphane Graber [Sun, 25 May 2014 14:33:37 +0000 (16:33 +0200)] 
python3: Handle invalid global config keys

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
11 years agopython3: Don't require a template name
Stéphane Graber [Sun, 25 May 2014 12:36:28 +0000 (14:36 +0200)] 
python3: Don't require a template name

The template name isn't required, if it's not passed, then create will
simply be asked to create a container without a rootfs.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
11 years agoFree lxc configuration structure
bartekplus [Wed, 28 May 2014 19:17:37 +0000 (21:17 +0200)] 
Free lxc configuration structure

Signed-off-by: Bartosz Tomczyk <bartekplus@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoCorrected debug message
bartekplus [Mon, 2 Jun 2014 18:07:13 +0000 (20:07 +0200)] 
Corrected debug message

Signed-off-by: Bartosz Tomczyk <bartekplus@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agolxc-plamo: fix for configuring network interface
TAMUKI Shoichi [Tue, 3 Jun 2014 03:20:23 +0000 (12:20 +0900)] 
lxc-plamo: fix for configuring network interface

Fix configure_plamo so as not to configure wireless network interface
in containers even if the host uses wireless network interface.

Signed-off-by: TAMUKI Shoichi <tamuki@linet.gr.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agopoint user to updated man page in template boilerplate
Dwight Engen [Tue, 27 May 2014 19:30:10 +0000 (15:30 -0400)] 
point user to updated man page in template boilerplate

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
11 years agoconfigure.ac: don't let -lcgmanager end up in LIBS
Serge Hallyn [Tue, 3 Jun 2014 03:04:12 +0000 (22:04 -0500)] 
configure.ac: don't let -lcgmanager end up in LIBS

AC_SEARCH_LIBS always places the library being queried into LIBS.  We
don't want that - we were only checking whether a function is
available.  Not everything (notably not init.lxc.static) needs to
link against -lcgmanager.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoFix incorrect value used in comparison
bartekplus [Wed, 28 May 2014 15:52:24 +0000 (17:52 +0200)] 
Fix incorrect value used in comparison

Signed-off-by: Bartosz Tomczyk <bartekplus@gmail.com>
Acked-by: Dwight Engen <dwight.engen@oracle.com>
11 years agoattach: get personality through get_config command
Serge Hallyn [Thu, 22 May 2014 21:53:40 +0000 (16:53 -0500)] 
attach: get personality through get_config command

Newer kernels optionally disallow reading /proc/$$/personality by
non-root users.  We can get the personality through the lxc command
interface, so do so.

Also try to be more consistent about personality being a signed long.
We had it as int, unsigned long, signed long throughout the code.

(This addresses bug
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1322067 :
3.15.0-1.x breaks lxc-attach for unprivileged containers)

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agodestroy the original container after making sure the snapshot exists (fixes #224)
S.Çağlar Onur [Sun, 25 May 2014 02:19:06 +0000 (22:19 -0400)] 
destroy the original container after making sure the snapshot exists (fixes #224)

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
11 years agomove bdev_specs struct into lxccontainer.h to allow API users to use it
S.Çağlar Onur [Wed, 21 May 2014 00:50:51 +0000 (20:50 -0400)] 
move bdev_specs struct into lxccontainer.h to allow API users to use it

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agounpriv tests: also move caller into unbound cgroups
Serge Hallyn [Wed, 21 May 2014 16:33:57 +0000 (11:33 -0500)] 
unpriv tests: also move caller into unbound cgroups

Otherwise the name=systemd cgroup isn't changed to one which
the lxc-unpriv user can write to, causing the test to fail.

This allows lxc-test-unpriv and lxc-test-usernic to pass when run in an
unprivileged container with cgmanager.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agocoverity: null check after dereference
Serge Hallyn [Wed, 21 May 2014 16:53:11 +0000 (11:53 -0500)] 
coverity: null check after dereference

we actually meant to check *p not p.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agolxc-oracle: fix ssh login under libvirt-lxc
Dwight Engen [Tue, 20 May 2014 20:46:10 +0000 (16:46 -0400)] 
lxc-oracle: fix ssh login under libvirt-lxc

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agocgmanager: slow down there (don't always grab abs cgroup path)
Serge Hallyn [Tue, 20 May 2014 16:47:17 +0000 (11:47 -0500)] 
cgmanager: slow down there (don't always grab abs cgroup path)

When I converted attach and enter to using move_pid_abs, these needed
to use the new get_pid_cgroup_abs method to get an absolute path.  But
for some inexplicable reason I also converted the functions which get
and set cgroup properties to use the absolute paths.  These are simply
not compatible with the cgmanager set_value and get_value methods.
This breaks for instance lxc-test-cgpath.

So undo that.  With this patch lxc-test-cgpath, lxc-test-autotest,
and lxc-test-concurrent once again pass in a nested container.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agolxc-oracle: set hostname with systemd
Dwight Engen [Tue, 20 May 2014 14:33:30 +0000 (10:33 -0400)] 
lxc-oracle: set hostname with systemd

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agolxc-devsetup: Don't use [[ because sh does not support it
ChangZhuo Chen (陳昌倬) [Tue, 20 May 2014 12:43:25 +0000 (20:43 +0800)] 
lxc-devsetup: Don't use [[ because sh does not support it

Signed-off-by: ChangZhuo Chen (陳昌倬) <czchen@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agolxc-oracle: add pts/[1-4] to securetty for libvirt-lxc
Dwight Engen [Mon, 19 May 2014 21:53:45 +0000 (17:53 -0400)] 
lxc-oracle: add pts/[1-4] to securetty for libvirt-lxc

Don't spawn a getty on /dev/console when running under libvirt-lxc

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agoremove TODO file with old item in it
Dwight Engen [Mon, 19 May 2014 21:24:44 +0000 (17:24 -0400)] 
remove TODO file with old item in it

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoFix syntax error in japanese manpage
Stéphane Graber [Mon, 19 May 2014 21:03:43 +0000 (23:03 +0200)] 
Fix syntax error in japanese manpage

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agodoc: Update Japanese lxc.container.conf(5) for guidance of lxc.mount.entry
KATOH Yasufumi [Sat, 17 May 2014 17:23:31 +0000 (02:23 +0900)] 
doc: Update Japanese lxc.container.conf(5) for guidance of lxc.mount.entry

Update for commit 6191f4f

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agolxc.container.conf(5): update guidance for lxc.mount.entry mount target
Serge Hallyn [Fri, 16 May 2014 14:14:16 +0000 (10:14 -0400)] 
lxc.container.conf(5): update guidance for lxc.mount.entry mount target

For years it has been best practice to use a relative path as
the mount target.  But the manpage hasn't reflect that.  Fix it.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Dwight Engen <dwight.engen@oracle.com>
11 years agoarchlinux template: fix lxc.root for btrfs backend
Edvinas Klovas [Sat, 10 May 2014 14:47:52 +0000 (16:47 +0200)] 
archlinux template: fix lxc.root for btrfs backend

when using btrfs backend lxc-create first creates rootfs in /usr/lib/lxc/rootfs
directory before moving it to /var/lib/lxc or other directory supplied by the
command line. Archlinux template relied in $rootfs_path which made containers
created with btrfs backend have lxc.rootfs set to /usr/lib/lxc/rootfs. By using
$path instead of $rootfs_path we make sure that lxc.rootfs is always correct.

Signed-off-by: Edvinas Klovas <edvinas@pnd.io>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
11 years agouse same ifndef/define format for all headers
S.Çağlar Onur [Fri, 9 May 2014 03:51:07 +0000 (23:51 -0400)] 
use same ifndef/define format for all headers

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agocgmanager: detect whether cgmanager supports name= subsystems
Serge Hallyn [Thu, 8 May 2014 17:23:53 +0000 (12:23 -0500)] 
cgmanager: detect whether cgmanager supports name= subsystems

On older cgmanager the support was broken.  So rather than
fail container starts altogether, just keep the old lxc behavior
in this case by not using name= subsystems.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agodoc: Fix Japanese lxc.container.conf(5)
KATOH Yasufumi [Thu, 8 May 2014 09:04:55 +0000 (18:04 +0900)] 
doc: Fix Japanese lxc.container.conf(5)

commit aafea1f was incomplete.

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agopython3: remove assert since hwaddr isn't set by the download template
Dwight Engen [Wed, 7 May 2014 13:52:00 +0000 (09:52 -0400)] 
python3: remove assert since hwaddr isn't set by the download template

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoinstall lxc-patch.py 644 to fix rpmlint warning
Dwight Engen [Wed, 7 May 2014 11:52:17 +0000 (07:52 -0400)] 
install lxc-patch.py 644 to fix rpmlint warning

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoarchlinux template: added sigpwr handling to systemd (lxc-stop)
Edvinas Klovas [Sat, 3 May 2014 17:15:36 +0000 (19:15 +0200)] 
archlinux template: added sigpwr handling to systemd (lxc-stop)

archlinux is using systemd and systemd's configuration does not have any
services setup to handle sigpwr hook which is sent by lxc-stop command. By
enabling sigpwr service we make sure that lxc-stop will work.

Signed-off-by: Edvinas Klovas <edvinas@pnd.io>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agocgmanager: use absolute cgroup path to switch cgroups at attach
Serge Hallyn [Thu, 1 May 2014 20:27:55 +0000 (15:27 -0500)] 
cgmanager: use absolute cgroup path to switch cgroups at attach

If an unprivileged user does 'lxc-start -n u1' in one
login session, followed by 'lxc-attach -n u1' in another
session, the attach will fail if the sessions are in different
cgroups.  The same is true of lxc-cgroup commands.

Address this by using the GetPidCgroupAbs and MovePidAbs
which work with the containers' cgroup path relative to
the cgproxy.

Since GetPidCgroupAbs is new to api version 3 in cgmanager,
use the old method if we are on an older cgmanager.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Tested-by: "S.Çağlar Onur" <caglar@10ur.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agocgmanager: also handle named subsystems (like name=systemd)
Serge Hallyn [Fri, 2 May 2014 18:36:32 +0000 (13:36 -0500)] 
cgmanager: also handle named subsystems (like name=systemd)

Read /proc/self/cgroup instead of /proc/cgroups, so as to catch
named subsystems.  Otherwise the contaienrs will not be fully
moved into the container cgroups.

Also free line which was being leaked.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agobtrfs: support unprivileged destroy
Serge Hallyn [Tue, 6 May 2014 21:43:19 +0000 (21:43 +0000)] 
btrfs: support unprivileged destroy

Do this by calling the bdev->destroy() hook from a user namespace
configured as the container's.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agobtrfs: support unprivileged create and clone
Serge Hallyn [Tue, 6 May 2014 20:50:45 +0000 (20:50 +0000)] 
btrfs: support unprivileged create and clone

btrfs subvolume ioctls are usable by unprivileged users, so allow
unprivileged containers to reside on btrfs.

This patch does not yet enable destroy.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agocorrect license on file to LGPL vs. GPL and fix address
Dwight Engen [Tue, 6 May 2014 20:12:00 +0000 (16:12 -0400)] 
correct license on file to LGPL vs. GPL and fix address

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agodoc: Update lxc.container.conf(5) for improving lxc.mount.auto
KATOH Yasufumi [Tue, 6 May 2014 17:05:14 +0000 (02:05 +0900)] 
doc: Update lxc.container.conf(5) for improving lxc.mount.auto

Update for commit 0769b82

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agodoc: Update Japanese lxc.container.conf(5) for mounting /sys/fs/cgroup rw
KATOH Yasufumi [Tue, 6 May 2014 17:05:13 +0000 (02:05 +0900)] 
doc: Update Japanese lxc.container.conf(5) for mounting /sys/fs/cgroup rw

Update for commit b46f055

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agolxc.mount.auto: improve defaults for cgroup and cgroup-full
Christian Seiler [Sat, 3 May 2014 18:57:46 +0000 (20:57 +0200)] 
lxc.mount.auto: improve defaults for cgroup and cgroup-full

If the user specifies cgroup or cgroup-full without a specifier (:ro,
:rw or :mixed), this changes the behavior. Previously, these were
simple aliases for the :mixed variants; now they depend on whether the
container also has CAP_SYS_ADMIN; if it does they resolve to the :rw
variants, if it doesn't to the :mixed variants (as before).

If a container has CAP_SYS_ADMIN privileges, any filesystem can be
remounted read-write from within, so initially mounting the cgroup
filesystems partially read-only as a default creates a false sense of
security. It is better to default to full read-write mounts to show the
administrator what keeping CAP_SYS_ADMIN entails.

If an administrator really wants both CAP_SYS_ADMIN and the :mixed
variant of cgroup or cgroup-full automatic mounts, they can still
specify that explicitly; this commit just changes the default without
specifier.

Signed-off-by: Christian Seiler <christian@iwakd.de>
Cc: Serge Hallyn <serge.hallyn@ubuntu.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agoFactor out capability parsing logic
Christian Seiler [Sat, 3 May 2014 18:57:45 +0000 (20:57 +0200)] 
Factor out capability parsing logic

Currently, setup_caps and dropcaps_except both use the same parsing
logic for parsing capabilities (try to identify by name, but allow
numerical specification). Since this is a common routine, separate it
out to improve maintainability and reuseability.

Signed-off-by: Christian Seiler <christian@iwakd.de>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agocgfs: don't mount /sys/fs/cgroup readonly
Christian Seiler [Sat, 3 May 2014 18:57:44 +0000 (20:57 +0200)] 
cgfs: don't mount /sys/fs/cgroup readonly

Ubuntu containers have had trouble with automatic cgroup mounting that
was not read-write (i.e. lxc.mount.auto = cgroup{,-full}:{ro,mixed}) in
containers without CAP_SYS_ADMIN. Ubuntu's mountall program reads
/lib/init/fstab, which contains an entry for /sys/fs/cgroup. Since
there is no ro option specified for that filesystem, mountall will try
to remount it readwrite if it is already mounted. Without
CAP_SYS_ADMIN, that fails and mountall will interrupt boot and wait for
user input on whether to proceed anyway or to manually fix it,
effectively hanging container bootup.

This patch makes sure that /sys/fs/cgroup is always a readwrite tmpfs,
but that the actual cgroup hierarchy paths (/sys/fs/cgroup/$subsystem)
are readonly if :ro or :mixed is used. This still has the desired
effect within the container (no cgroup escalation possible and programs
get errors if they try to do so anyway), while keeping Ubuntu
containers happy.

Signed-off-by: Christian Seiler <christian@iwakd.de>
Cc: Serge Hallyn <serge.hallyn@ubuntu.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agopython-lxc: minor fixes to __init__.py
Stéphane Graber [Tue, 6 May 2014 03:34:04 +0000 (22:34 -0500)] 
python-lxc: minor fixes to __init__.py

Set a base class for the network object and set the encoding in the
header. Neither of those changes are required for python3 but they do
make it easier for anyone trying to make a python2 binding.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoAdd missing MAX_STACKDEPTH define on MUTEX_DEBUGGING build
Serge Hallyn [Tue, 6 May 2014 03:32:31 +0000 (22:32 -0500)] 
Add missing MAX_STACKDEPTH define on MUTEX_DEBUGGING build

Corrected a small oversight when locking related code was moved from
src/lxc/utils.c to src/lxc/lxclock.c.

Signed-off-by: Stephen M Bennett <stephen_m_bennett@hotmail.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agolxc-ls: Force running against containers without python
Stéphane Graber [Mon, 5 May 2014 15:51:19 +0000 (10:51 -0500)] 
lxc-ls: Force running against containers without python

When using --nesting, we exec ourselves in the container context, if we
somehow need to dynamically-load modules from there, things break. So
make sure we pre-load everything we may need.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
11 years agoRevert "cgfs: don't mount /sys/fs/cgroup readonly"
Stéphane Graber [Fri, 2 May 2014 21:20:16 +0000 (17:20 -0400)] 
Revert "cgfs: don't mount /sys/fs/cgroup readonly"

This reverts commit 5cfc06fae750e7222f0839a48b152c4f9da1633c.

11 years agocgfs: don't mount /sys/fs/cgroup readonly
Serge Hallyn [Fri, 2 May 2014 16:35:10 +0000 (11:35 -0500)] 
cgfs: don't mount /sys/fs/cgroup readonly

/sys/fs/cgroup is just a size-limited tmpfs, and making it ro does
nothing to affect our ability alter mount settings of its subdirs.
OTOH making it ro can upset mountall in the container which tries
to remount it rw, which may be refused.

So just don't do it.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Cc: Christian Seiler <christian@iwakd.de>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agodoc: Update Japanese lxc-clone(1) for fixing typo
KATOH Yasufumi [Fri, 2 May 2014 06:03:06 +0000 (15:03 +0900)] 
doc: Update Japanese lxc-clone(1) for fixing typo

Update for commit 0e98b3bd319e887e76e37b513545d0e8eb893f24

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agolxc-ls: Typo in manpage
Stéphane Graber [Thu, 1 May 2014 22:37:42 +0000 (18:37 -0400)] 
lxc-ls: Typo in manpage

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agodoc: Update Japanese lxc-create(1) for 'none' bdev type
KATOH Yasufumi [Fri, 2 May 2014 07:01:47 +0000 (16:01 +0900)] 
doc: Update Japanese lxc-create(1) for 'none' bdev type

Update for commit 860f535

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agolxc-create: make 'none' bdev type work again
Serge Hallyn [Thu, 1 May 2014 16:33:05 +0000 (11:33 -0500)] 
lxc-create: make 'none' bdev type work again

This should address https://github.com/lxc/lxc/issues/199

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agouse correct lxc-init path in sshd template
Nikolay Martynov [Thu, 1 May 2014 04:46:49 +0000 (00:46 -0400)] 
use correct lxc-init path in sshd template

lxc-init got moved into SBINDIR/init.lxc recently.
This broke sshd template because path wasn't updated there.
This patch should fix this issue.

Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agolxc-oracle: fix warnings/errors from some rpm scriptlets
Dwight Engen [Thu, 1 May 2014 14:33:48 +0000 (10:33 -0400)] 
lxc-oracle: fix warnings/errors from some rpm scriptlets

- Some scriptlets expect fstab to exist so create it before doing the
  yum install

- Set the rootfs selinux label same as the hosts or else the PREIN script
  from initscripts will fail when running groupadd utmp, which prevents
  creation of OL4.x containers on hosts > OL6.x.

- Move creation of devices into a separate function

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agoalpinelinux: set correct lxc_arch for x86
Carlo Landmeter [Tue, 15 Apr 2014 09:51:53 +0000 (09:51 +0000)] 
alpinelinux: set correct lxc_arch for x86

Signed-off-by: Carlo Landmeter <clandmeter@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agofix minor typo in .gitignore
S.Çağlar Onur [Mon, 28 Apr 2014 23:22:43 +0000 (19:22 -0400)] 
fix minor typo in .gitignore

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoclang: Fix build warnings for 3.4
Stéphane Graber [Wed, 30 Apr 2014 16:15:06 +0000 (12:15 -0400)] 
clang: Fix build warnings for 3.4

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoapparmor: allow writes to sem* and msg* sysctls
Serge Hallyn [Tue, 29 Apr 2014 19:57:49 +0000 (14:57 -0500)] 
apparmor: allow writes to sem* and msg* sysctls

/proc/sys/kernel/sem* and /proc/sys/kernel/msg* are ipc sysctls
which are properly namespaced.  Allow writes to them from
containers.

Reported-by: Dan Kegel <dank@kegel.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agorevert 1d16785 - fixes #191
S.Çağlar Onur [Tue, 29 Apr 2014 00:16:09 +0000 (20:16 -0400)] 
revert 1d16785 - fixes #191

According to Serge, we no longer need to keep cgmanager connection open.

As long as my tests go it seems to be working fine.

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agoallow all iX86 strings for lxc.arch
Dwight Engen [Mon, 28 Apr 2014 20:50:51 +0000 (16:50 -0400)] 
allow all iX86 strings for lxc.arch

This change accepts all the same strings for lxc.arch that setarch(8) does.

Note that we continue to parse plain x86 as PER_LINUX32 so as not to break
existing lxc configuration files.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agolxc-user-nic: handle failure in create_nic
Serge Hallyn [Mon, 28 Apr 2014 20:52:08 +0000 (15:52 -0500)] 
lxc-user-nic: handle failure in create_nic

Failures were being ignored, leading up to an eventual segfault.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoConvert punctuation marks in Japanese man pages
KATOH Yasufumi [Wed, 23 Apr 2014 08:11:30 +0000 (17:11 +0900)] 
Convert punctuation marks in Japanese man pages

This only converts punctuation marks from FULLWIDTH COMMA/FULL STOP to
IDEOGRAPHIC COMMA/FULL STOP in Japanese man pages. The contents of man
pages do not change at all.

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agocoverity: fix fd leak in error case (1011105)
Dwight Engen [Mon, 21 Apr 2014 13:18:06 +0000 (09:18 -0400)] 
coverity: fix fd leak in error case (1011105)

I inadvertently introduced this with commit 8bf1e61e.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agoCheck for symlinks before attempting create.
Michael H. Warfield [Fri, 25 Apr 2014 16:06:44 +0000 (12:06 -0400)] 
Check for symlinks before attempting create.

Check for symlinks before attempting create.

When attempting to create the compulsory symlinks in /dev,
check for the existence of the link using stat first before
blindly attempting to create the link.

This works around an apparent quirk in the kernel VFS on read-only
file systems where the returned error code might be EEXIST or EROFS
depending on previous access to the /dev directory and its entries.

Reported-by: William Dauchy <william@gandi.net>
Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Tested-by: William Dauchy <william@gandi.net>
11 years agolxc startup: manually mark every shared mount entry as slave
Serge Hallyn [Wed, 16 Apr 2014 16:01:22 +0000 (11:01 -0500)] 
lxc startup: manually mark every shared mount entry as slave

If you 'ip netns add x1', this creates /run/netns and /run/netns/x1
as shared mounts.  When a container starts, it umounts these after
pivot_root, and the umount is propagated to the host.

Worse, doing mount("", "/", NULL, MS_SLAVE|MS_REC, NULL) does not
suffice to change those, even after binding /proc/mounts onto
/etc/mtab.

So, I give up.  Do this manually, walking over /proc/self/mountinfo
and changing the mount propagation on everything marked as shared.

With this patch, lxc-start no longer unmounts /run/netns/* on the
host.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agolxc-clone man page: fix typos
Serge Hallyn [Mon, 28 Apr 2014 13:42:24 +0000 (08:42 -0500)] 
lxc-clone man page: fix typos

In the body of the manpage, replace a few errant 'fssize's with the
more appropriate word.

Reported-by: MegaBrutal <megabrutal@megabrutal.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agocppcheck: fix unchecked realloc in lxc_info.c
Serge Hallyn [Tue, 15 Apr 2014 20:49:36 +0000 (15:49 -0500)] 
cppcheck: fix unchecked realloc in lxc_info.c

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agocgmanager: don't call nih_dbus_setup
Serge Hallyn [Fri, 11 Apr 2014 15:01:51 +0000 (10:01 -0500)] 
cgmanager: don't call nih_dbus_setup

it actually sets us up to run the nih_mainloop, but we will never run
that.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agolxc-oracle: use db_load from container
Dwight Engen [Wed, 9 Apr 2014 19:20:30 +0000 (15:20 -0400)] 
lxc-oracle: use db_load from container

This makes it so that the host doesn't need to have an old, compat
version of db43_load installed by using the db_load from the just
installed container. Some newer distributions do not even have an old
enough compat-db4 package available.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agochange version to 1.0.3 in configure.ac lxc-1.0.3
Stéphane Graber [Tue, 8 Apr 2014 22:53:31 +0000 (18:53 -0400)] 
change version to 1.0.3 in configure.ac

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoFix typo in previous commit
Stéphane Graber [Tue, 8 Apr 2014 21:23:23 +0000 (17:23 -0400)] 
Fix typo in previous commit

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agotests; Bump wait delay for shutdown to 120s
Stéphane Graber [Tue, 8 Apr 2014 21:12:00 +0000 (17:12 -0400)] 
tests; Bump wait delay for shutdown to 120s

On very busy boards with slow IO, the shutdown process can take over 60s
as the disk is syncing.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoapparmor: Use more generic allow rule for pivot
Stéphane Graber [Tue, 8 Apr 2014 17:17:27 +0000 (13:17 -0400)] 
apparmor: Use more generic allow rule for pivot

Recent fixes in the apparmor kernel code is now making at least the CI
environment and quite possibly some others fail due to an invalid path
in the pivot_root stanza.

So update both lines to allow a more generic pivot_root call for
anything in LXC's work directory.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
11 years agodoc: Update Japanese lxc-stop(1) to describe about exit value
KATOH Yasufumi [Tue, 8 Apr 2014 08:53:58 +0000 (17:53 +0900)] 
doc: Update Japanese lxc-stop(1) to describe about exit value

Update for commit 13bc2fd2370f8e3778d81f58ac8dda5746550a4f

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agocgmanager: cgm_get: len = 0 is a query for length only
Serge Hallyn [Mon, 7 Apr 2014 17:52:43 +0000 (12:52 -0500)] 
cgmanager: cgm_get: len = 0 is a query for length only

The caller might (like lxc-test-startone does) pass in a valid
(or invalid) buffer and 0 length.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agolxc_*.c: don't exit with -1
Serge Hallyn [Mon, 7 Apr 2014 16:56:20 +0000 (11:56 -0500)] 
lxc_*.c: don't exit with -1

In this patch I tried to stick with each file's coding style, however I
think we should probably change that.  Every main() should always not
return and only exit;  they should always return EXIT_SUCCESS or EXIT_FAILURE
with the only exceptions being cases where we are returning a child's
exit status (lxc_execute, lxc_attach, lxc_init).

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoarchlinux: add debugging info for missing network link
Ryan Mulligan [Mon, 7 Apr 2014 02:24:24 +0000 (19:24 -0700)] 
archlinux: add debugging info for missing network link

Signed-off-by: Ryan Mulligan <ryan@ryantm.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agolxc_start: return 1 not -1 on error
Serge Hallyn [Mon, 7 Apr 2014 15:06:56 +0000 (10:06 -0500)] 
lxc_start: return 1 not -1 on error

So that exit status doesn't show up as 255.

Reported-by: Andrey Khozov <avkhozov@googlemail.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agolxc_spawn: initialize netpipe
Serge Hallyn [Sat, 5 Apr 2014 02:26:16 +0000 (21:26 -0500)] 
lxc_spawn: initialize netpipe

When rebooting an unprivileged container, netpipe starts out
as not -1.  If count_veths somehow changed this could lead
to trying to send data over nonexistent pipe.  (Ok can't
*really* happen, as it currently stands, but it's an open
end)

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agoarchlinux: Code cleanups (v2)
Leonid Isaev [Tue, 1 Apr 2014 02:24:31 +0000 (22:24 -0400)] 
archlinux: Code cleanups (v2)

Cleanups:
1. Do not modify container's /etc/hosts (archlinux uses /etc/nsswitch.conf)
2. Remove duplicate lines from config
3. Print a nicer final message
4. Get rid of some grep's

Signed-off-by: Leonid Isaev <lisaev@umail.iu.edu>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoarchlinux: Create per-container pacman host key
Leonid Isaev [Mon, 31 Mar 2014 21:11:58 +0000 (17:11 -0400)] 
archlinux: Create per-container pacman host key

Do not copy the pacman master key from the host, as this opens it to
attacks; generate a new secret hostkey.

Signed-off-by: Leonid Isaev <lisaev@umail.iu.edu>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoarchlinux: Fix default package selection
Leonid Isaev [Tue, 1 Apr 2014 02:20:48 +0000 (22:20 -0400)] 
archlinux: Fix default package selection

Do not cherry-pick packages for the default install to avoid dependency
issues. Instead, install the base group modulo blacklisted packages.

Signed-off-by: Leonid Isaev <lisaev@umail.iu.edu>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoMove lxc-monitord.log out of /var/lib/lxc/
Robert Vogelgesang [Fri, 4 Apr 2014 17:04:03 +0000 (19:04 +0200)] 
Move lxc-monitord.log out of /var/lib/lxc/

Place log file into LOGPATH instead of LXCPATH (but still use the
given lxcpath if the latter differs from LXCPATH).

Signed-off-by: Robert Vogelgesang <vogel@users.sourceforge.net>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoFix wait_for_bridge() in sysvinit script
Robert Vogelgesang [Fri, 4 Apr 2014 17:01:34 +0000 (19:01 +0200)] 
Fix wait_for_bridge() in sysvinit script

Fix parsing of /etc/lxc/default.conf, i. e. ignore comments, and don't
require whitespace left and right of the equal sign.

Make the early return actually work.

Signed-off-by: Robert Vogelgesang <vogel@users.sourceforge.net>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoadd init.lxc to .gitignore
S.Çağlar Onur [Fri, 4 Apr 2014 19:13:29 +0000 (15:13 -0400)] 
add init.lxc to .gitignore

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoapparmor: Update profiles for current upstream parser
Stéphane Graber [Fri, 4 Apr 2014 21:14:58 +0000 (17:14 -0400)] 
apparmor: Update profiles for current upstream parser

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
11 years agofix lxc-info printing duplicate lines
Dwight Engen [Thu, 3 Apr 2014 01:13:05 +0000 (21:13 -0400)] 
fix lxc-info printing duplicate lines

When lxc-info's stdout is not line buffered (ie. "lxc-info -n foo |more")
the first three lines will be duplicated. This is because c->get_ips()
comes next and it forks and the child will exit() causing its fds to be
closed which flushes out its (fork duplicated) stdio buffers. The lines are
then duplicated when the parent actually gets around to flushing out its
stdio. This causes problems for programs (such as the lxc-webpanel) which
are popen()ing lxc-info.

The fix here isn't necessarily the right one, but does show what the
problem is. Seems like maybe we should fix this inside of get_ips(), for
other API callers as well.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agoAdded lxc.arch to configuration files for CentOS and Fedora
Michael H. Warfield [Wed, 2 Apr 2014 20:54:39 +0000 (16:54 -0400)] 
Added lxc.arch to configuration files for CentOS and Fedora

Added lxc.arch to the resulting container configuration files
to support i686 on x86_64 cross arch containers.

Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agomake monitor/monitord more resilient to unexpected termination
Dwight Engen [Wed, 2 Apr 2014 17:12:38 +0000 (13:12 -0400)] 
make monitor/monitord more resilient to unexpected termination

Reported-by: Florian Klink <flokli@flokli.de>
Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
11 years agoapparmor: deny writes to most of /proc/sys (v2)
Serge Hallyn [Tue, 1 Apr 2014 23:03:07 +0000 (01:03 +0200)] 
apparmor: deny writes to most of /proc/sys (v2)

Allow writes to kernel.shm*, net.*, kernel/domainname and
kernel/hostname,

Also fix a bug in the lxc-generate-aa-rules.py script in a
path which wasn't being exercised before, which returned a
path element rather than its child.

Changelog (v2): remove trailing / from block path

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agoenable sshd by default like other templates
Guillaume ZITTA [Wed, 2 Apr 2014 05:59:46 +0000 (07:59 +0200)] 
enable sshd by default like other templates

Signed-off-by: Guillaume ZITTA <lxc@zitta.fr>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agolxc-gentoo, fix lack of any generated locale
Guillaume ZITTA [Tue, 1 Apr 2014 21:48:51 +0000 (23:48 +0200)] 
lxc-gentoo, fix lack of any generated locale

fix lack of any generated locale

Signed-off-by: Guillaume ZITTA <lxc@zitta.fr>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
11 years agotests: Try to make shutdowntest a bit more robust
Stéphane Graber [Tue, 1 Apr 2014 20:38:39 +0000 (16:38 -0400)] 
tests: Try to make shutdowntest a bit more robust

This should help it run better on slow test environment like the LXC CI
armhf builder.
 - Wait longer for the container to start
 - Wait longer for the container to shutdown
 - On failure to shutdown, kill the container
 - Always destroy the container if it's around

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>