]> git.proxmox.com Git - mirror_lxc.git/log
mirror_lxc.git
10 years agolxc.spec: adjust for move of libexecdir/lxc-init to sbin/lxc.init
Dwight Engen [Mon, 31 Mar 2014 22:58:27 +0000 (18:58 -0400)]
lxc.spec: adjust for move of libexecdir/lxc-init to sbin/lxc.init

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoadd yum plugin to repatch rootfs on yum update
Dwight Engen [Thu, 27 Mar 2014 20:46:38 +0000 (16:46 -0400)]
add yum plugin to repatch rootfs on yum update

oracle-template: Split patching rootfs vs one time setup into separate
shell functions so the template can be run with --patch.

oracle-template: Update to install the yum plugin and itself (as lxc-patch)
into a container. The plugin just runs lxc-patch --patch <path> so it is
fairly generic, but in this case it is running a copy of the template inside
the container.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoconfig_network_type: set macvlan default mode to private
Bogdan Purcareata [Fri, 28 Mar 2014 14:31:41 +0000 (10:31 -0400)]
config_network_type: set macvlan default mode to private

If a default mode is not set, the container requires an explicit
mode specified in the config file, otherwise creating the
container fails.

Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agomove lxc-init to /sbin/init.lxc
Serge Hallyn [Thu, 27 Mar 2014 15:36:06 +0000 (10:36 -0500)]
move lxc-init to /sbin/init.lxc

Using the multiarch dir causes problems when running lxc-execute
on amd64 with an i386 container.  /sbin/lxc-init is a more confusing
name and will show up in 'lxc<tab>'.  /sbin/init.lxc should be quite
obvious as an init for lxc.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocheck whether rootfs is shared before running pre-mount hooks
Florian Klink [Thu, 27 Mar 2014 15:50:17 +0000 (16:50 +0100)]
check whether rootfs is shared before running pre-mount hooks

this expands c597baa8f9 and 2c6f3fc932.

Also move the block using detect_ramfs_rootfs() from setup_rootfs() to
lxc_setup()

Signed-off-by: Florian Klink <flokli@flokli.de>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agonetwork.c: Add missing LXC_NET_NONE option + refactor
Bogdan Purcareata [Wed, 26 Mar 2014 15:35:09 +0000 (11:35 -0400)]
network.c: Add missing LXC_NET_NONE option + refactor

Add LXC_NET_NONE to known lxc_network_types, so parsing a config
file with lxc.network.type = none does not result in failure
(e.g. doc/examples/lxc-no-netns.conf). Options have also been
reordered to match the enum in conf.h.

Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agocommands: handle epipe
Serge Hallyn [Tue, 25 Mar 2014 20:50:06 +0000 (15:50 -0500)]
commands: handle epipe

If we start a lxc_wait on a container while it is exiting, it is
possible that we open the command socket, then the command socket
monitor closes all its mainloop sockets and exit, then we send our
credentials. Then we get killed by SIGPIPE.

Handle that case, recognizing that if we get sigpipe then the
container is (now) stopped.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agouserns: Update bind-mounted devices
Stéphane Graber [Mon, 24 Mar 2014 03:58:38 +0000 (23:58 -0400)]
userns: Update bind-mounted devices

This updates all configs to include the exact same set of 7 bind-mounted
devices:
 - console
 - full
 - null
 - random
 - tty
 - urandom
 - zero

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-ls: Optimize things a bit
Stéphane Graber [Sun, 23 Mar 2014 03:26:59 +0000 (23:26 -0400)]
lxc-ls: Optimize things a bit

Don't bother access information that the user didn't request.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-ls: Fix memory reporting
Stéphane Graber [Sat, 22 Mar 2014 23:17:36 +0000 (19:17 -0400)]
lxc-ls: Fix memory reporting

This resolves the memory math when memsw is enabled and fixes reporting
of nested containers memory when using cgmanager.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-busybox: follow symlinks when inspecting busybox binary
Bogdan Purcareata [Mon, 24 Mar 2014 16:43:03 +0000 (12:43 -0400)]
lxc-busybox: follow symlinks when inspecting busybox binary

Signed-off-by: Bogdan Purcareata <bogdan.purcareata@freescale.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoAdded root_password_expired password control tuning knob.
Michael H. Warfield [Sat, 22 Mar 2014 17:59:59 +0000 (13:59 -0400)]
Added root_password_expired password control tuning knob.

Added the environment variable "root_password_expired" to
control if the initial, temporary, root password is initially
set up as "expired".  If set to "yes" (default), the root password
is set as "expired" and the user must change it at first login.

Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoSupport SIGPWR in Fedora and Centos containers.
Michael H. Warfield [Sat, 22 Mar 2014 17:58:35 +0000 (13:58 -0400)]
Support SIGPWR in Fedora and Centos containers.

Added code to catch SIGPWR for Upstart in Fedora and CentOS
containers as well as for Systemd in Fedora containers.

Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoSet timezone for new container if not previously defined.
Michael H. Warfield [Sat, 22 Mar 2014 17:57:36 +0000 (13:57 -0400)]
Set timezone for new container if not previously defined.

If the container does not already contain an /etc/localtime
timezone definition, then copy a definition from the host to
the container.  This is often a symlink to an appropriate
system timezone definition files and is presumed to exist in

Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoFix arch cross-build when running distro cross-build.
Michael H. Warfield [Sat, 22 Mar 2014 17:56:41 +0000 (13:56 -0400)]
Fix arch cross-build when running distro cross-build.

Corner case existed when building a cross-arch container (i686 on x86_64)
on a cross-distro host (Fedora container on Ubuntu host).  Fixed the
arch "fixup" code to do the right thing when running from the bootstrap.

Signed-off-by: Michael H. Warfield <mhw@WittsEnd.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agofix console stdin,stdout,stderr fds
Dwight Engen [Tue, 11 Mar 2014 19:44:54 +0000 (15:44 -0400)]
fix console stdin,stdout,stderr fds

The fds for stdin,stdout,stderr that we were leaving open for /sbin/init
in the container were those from /dev/tty or lxc.console (if given), which
wasn't right. Inside the container it should only have access to the pty
that lxc creates representing the console.

This was noticed because busybox's init was resetting the termio on its
stdin which was effecting the actual users terminal instead of the pty.
This meant it was setting icanon so were were not passing keystrokes
immediately to the pty, and hence command line history/editing wasn't
working.

Fix by dup'ing the console pty to stdin,stdout,stderr just before
exec()ing /sbin/init. Fix fd leak in error handling that I noticed while
going through this code.

Also tested with lxc.console = none, lxc.console = /dev/tty7 and no
lxc.console specified.

V2: The first version was getting EBADF sometimes on dup2() because
lxc_console_set_stdfds() was being called after lxc_check_inherited()
had already closed the fds for the pty. Fix by calling
lxc_check_inherited() as late as possible which also extends coverage
of open fd checked code.

V3: Don't move lxc_check_inherited() since it needs to be called while
the tmp proc mount is still mounted. Move call to lxc_console_set_stdfds()
just before it.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoUpdate Japanese lxc-create(1) for 'best' option
KATOH Yasufumi [Fri, 21 Mar 2014 17:19:33 +0000 (02:19 +0900)]
Update Japanese lxc-create(1) for 'best' option

Update for commit a526a632e007c0d666dbe953cf7b39fbf26b63db

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agomutex cgmanager access
Serge Hallyn [Thu, 20 Mar 2014 04:55:00 +0000 (23:55 -0500)]
mutex cgmanager access

It looks like either libdbus or libnih is showing some corruption with
threaded access to the cgmanager-client library.  Until we can
straighten that out, mutex access to the cgmanager.

The worst part of this is having to take and drop the mutex at every
fork.  This also means that we can't keep a connection open for the
duration of container startup, since that would deadlock forks.

If we were going to keep it like this, then we could get rid of some
code in start.c.  However we take a performance hit here which I
really hope we can rectify soon.

The other approach we could take would be to keep a global count of
references to cgroup_manager.  Mutex the open, close, and each use
of the cgroup_manager proxy (and the inc/dec of the refcount).  This
way we could in fact keep the connection open for the duration of
container start.  The atfork handler child_fn would have to close
the connection if open.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodebian: Symlink /etc/mtab
Holger Amann [Wed, 19 Mar 2014 06:06:13 +0000 (07:06 +0100)]
debian: Symlink /etc/mtab

/etc/mtab doesn’t exist after bootstrapping a debian container, and will
be created as regular file after first start.

That leads to at least two errors:
- output of `mount` is wrong and get messed up the more often you
  start/stop the container
- /dev/pts/ptmx has wrong permissions

Signed-off-by: Holger Amann <holger@sauspiel.de>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-create manpage: specify -B best option
Serge Hallyn [Fri, 21 Mar 2014 14:01:48 +0000 (09:01 -0500)]
lxc-create manpage: specify -B best option

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-debian: Don't eat the argument after -c
Stéphane Graber [Fri, 21 Mar 2014 14:20:26 +0000 (10:20 -0400)]
lxc-debian: Don't eat the argument after -c

Reported-by: Robie Basak <robie.basak@canonical.com>
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agotests: Don't hardcode the cgroup list
Stéphane Graber [Thu, 13 Mar 2014 23:02:11 +0000 (19:02 -0400)]
tests: Don't hardcode the cgroup list

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agotests: daemonize in startone
Stéphane Graber [Thu, 13 Mar 2014 14:16:34 +0000 (10:16 -0400)]
tests: daemonize in startone

This should finally silence this test for good :)

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoFix typo to checking newgidmap existing
KATOH Yasufumi [Thu, 13 Mar 2014 08:58:43 +0000 (17:58 +0900)]
Fix typo to checking newgidmap existing

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agotests: Add missing include
Stéphane Graber [Thu, 13 Mar 2014 03:52:08 +0000 (23:52 -0400)]
tests: Add missing include

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agotests: Silence startone harder
Stéphane Graber [Thu, 13 Mar 2014 03:47:49 +0000 (23:47 -0400)]
tests: Silence startone harder

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agotests: Support cgmanager
Stéphane Graber [Thu, 13 Mar 2014 03:15:33 +0000 (23:15 -0400)]
tests: Support cgmanager

When cgmanager is around, use dbus-send to setup the cgroups, this
allows the tests to work in a container without cgroupfs access.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agotests: Close all fds in startone
Stéphane Graber [Thu, 13 Mar 2014 00:44:12 +0000 (20:44 -0400)]
tests: Close all fds in startone

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agosupport lxc.mount.auto for get_config_item and clear_config_item
Serge Hallyn [Wed, 12 Mar 2014 23:27:24 +0000 (18:27 -0500)]
support lxc.mount.auto for get_config_item and clear_config_item

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc: tests: use busybox template rather than ubuntu
Serge Hallyn [Wed, 12 Mar 2014 23:48:15 +0000 (18:48 -0500)]
lxc: tests: use busybox template rather than ubuntu

to speed up tests where it doesn't matter

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agomake failure to connect to cgmanager DEBUG instead of ERROR
Dwight Engen [Tue, 11 Mar 2014 18:48:32 +0000 (14:48 -0400)]
make failure to connect to cgmanager DEBUG instead of ERROR

You can have both cgmanager and cgfs compiled in, and lxc will fall back
at runtime to cgfs if it cannot connect to cgmanager, so print the failure
to connect as a DEBUG like the code used to do.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agocgmanager: avoid stray dbus connections
Serge Hallyn [Tue, 11 Mar 2014 02:41:34 +0000 (21:41 -0500)]
cgmanager: avoid stray dbus connections

There are two parts to this fix.

First, create a private DBusConnection manually, instead of using
nih_dbus_connect.  The latter always creates a shared connection,
which cannot be closed.  Note: creating an actual shared connection,
mutexing it among all threads, and creating per-thread proxies would
be an alternative - however we don't want long-lived connections as
they tend not to be reliable (especially if cgmanager restarts).

Second, use pthread_setspecific to create per-thread keys which can
be associated with destructors.  Specify a destructor which closes
the dbus connection.  If a thread dies while holding cgmanager,
the connection will be closed.  Otherwise, we close the connection
and unset the key.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodoc: Update Japanese lxc-autostart(1) for -A option
KATOH Yasufumi [Tue, 11 Mar 2014 06:18:04 +0000 (15:18 +0900)]
doc: Update Japanese lxc-autostart(1) for -A option

update for commit e582991fd00734436ad0cc95c42cc3d16fd3d229

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodoc: Update Japanese lxc-autostart(1) for -a and -g options
KATOH Yasufumi [Tue, 11 Mar 2014 06:18:03 +0000 (15:18 +0900)]
doc: Update Japanese lxc-autostart(1) for -a and -g options

update for commit e447a8a706cc786257bc755a25e6441a766b0a4d

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-opensuse: Fix syntax error
Stéphane Graber [Mon, 10 Mar 2014 21:33:12 +0000 (17:33 -0400)]
lxc-opensuse: Fix syntax error

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocgm_destroy: ignore a NULL d->cgroup_path
Serge Hallyn [Mon, 10 Mar 2014 16:59:08 +0000 (11:59 -0500)]
cgm_destroy: ignore a NULL d->cgroup_path

Depending on where during container creation we failed, cgroup_path
may be NULL.  Don't try to delete the cgroup in that case.

(Also fix a wrong function name in an ERROR message)

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoFix broken XML in previous commit
Stéphane Graber [Mon, 10 Mar 2014 14:34:56 +0000 (10:34 -0400)]
Fix broken XML in previous commit

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodoc: Update Japanese lxc-ls(1)
KATOH Yasufumi [Mon, 10 Mar 2014 06:17:13 +0000 (15:17 +0900)]
doc: Update Japanese lxc-ls(1)

update for commit 860490af5db945c37e9e6e24c019899fbe739dc5

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agodoc: Update Japanese lxc-create(1)
KATOH Yasufumi [Mon, 10 Mar 2014 10:15:35 +0000 (19:15 +0900)]
doc: Update Japanese lxc-create(1)

update for commit d3de16bb56b418884b41c50a4d15543129b5a564

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocheck netnsfd before closing
Serge Hallyn [Sat, 8 Mar 2014 02:39:14 +0000 (20:39 -0600)]
check netnsfd before closing

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agofix leak of netnsfd in recent commit
Serge Hallyn [Sat, 8 Mar 2014 02:38:20 +0000 (20:38 -0600)]
fix leak of netnsfd in recent commit

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoDon't trigger SYSERROR for optional mounts
Stéphane Graber [Fri, 7 Mar 2014 21:18:15 +0000 (16:18 -0500)]
Don't trigger SYSERROR for optional mounts

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agofix fd leak in test-concurrent
Dwight Engen [Fri, 7 Mar 2014 21:49:25 +0000 (16:49 -0500)]
fix fd leak in test-concurrent

Opening a debug log for every thread at every iteration of test-concurrent
causes it to quickly run out of fd's because this fd is leaked. Fix this
by adding a new api: lxc_log_close().

As Caglar noted, the log handling is in general a bit "interesting" because
a logfile can be opened through the per-container api
c->set_config_item("lxc.logfile") but lxc_log_fd is now per-thread data. It
just so happens in test-concurrent that there is a 1:1 mapping of threads
to logfiles.

Split out getting debug logs from quiet since I think they are useful
separately. If debug is specified, get a log of any mode, not just during
start.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-create: Require --template be passed
Stéphane Graber [Fri, 7 Mar 2014 20:29:12 +0000 (15:29 -0500)]
lxc-create: Require --template be passed

It's often been reported that the behavior of lxc-create without -t is a
bit confusing. This change makes lxc-create require the --template
option and introduces a new "none" special value which when set will
fallback to the old template-less behavior.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-ls: Add interfaces field
Stéphane Graber [Fri, 7 Mar 2014 20:20:28 +0000 (15:20 -0500)]
lxc-ls: Add interfaces field

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-ls: Update help message to include fields
Stéphane Graber [Fri, 7 Mar 2014 20:01:54 +0000 (15:01 -0500)]
lxc-ls: Update help message to include fields

Instead of maintaining hardcoded lists, point everyone to --help and
have the current list of valid and default fields printed there.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-autostart: Add a new --ignore-auto/-A flag
Stéphane Graber [Fri, 7 Mar 2014 18:32:16 +0000 (13:32 -0500)]
lxc-autostart: Add a new --ignore-auto/-A flag

When passed, this flag will cause lxc-autostart to ignore the value of
lxc.start.auto.

This then allows things like: lxc-autostart -s -a -A

Which will select all containers regardless of groups (-a), regardless
of whether they are actually marked as auto-started (-A) and will shut
them down (-s).

Update our init scripts to use the new feature.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-autostart: Document -a and -g
Stéphane Graber [Fri, 7 Mar 2014 18:28:32 +0000 (13:28 -0500)]
lxc-autostart: Document -a and -g

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc: manually move NICs back to host after container stops
Serge Hallyn [Fri, 7 Mar 2014 18:24:27 +0000 (12:24 -0600)]
lxc: manually move NICs back to host after container stops

This prevents things like bridges from being destroyed by the kernel.

My hope is that just doing this will be enough to also ensure that
the device will be available to be renamed immediately, so that
we don't need to do a retry loop.

Tested with a dummy device.  renaming dummy0 to dummy5 in container,
then shutting down container, returns dummy0 to the host.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoadd shared lxc_log_fd into TLS
S.Çağlar Onur [Fri, 7 Mar 2014 05:05:23 +0000 (00:05 -0500)]
add shared lxc_log_fd into TLS

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoput shared variables into thread-local storage
S.Çağlar Onur [Fri, 7 Mar 2014 04:27:05 +0000 (23:27 -0500)]
put shared variables into thread-local storage

This doesn't solve the general design problem of the log.c (eg; some log lines
got lost or scattered into multiple files) but at least prevent multithreaded
code from crashing.

Before this change something like following;

sudo src/tests/lxc-test-concurrent -i 10 -j 20

was crashing nearly all the time due to 3afbcc4600a as we started to
set lxc.loglevel and lxc.logfile with that commit.

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoRevert "fix console stdin,stdout,stderr fds"
Serge Hallyn [Fri, 7 Mar 2014 00:01:08 +0000 (18:01 -0600)]
Revert "fix console stdin,stdout,stderr fds"

This reverts commit 1da0ad1e0adff18c6d588772146eb054440db95b.

10 years agowait 15 seconds instead of forever and produce debug logs for further analyze
S.Çağlar Onur [Thu, 6 Mar 2014 22:48:10 +0000 (17:48 -0500)]
wait 15 seconds instead of forever and produce debug logs for further analyze

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agocgmanager: tell dbus to do locking
Serge Hallyn [Thu, 6 Mar 2014 16:23:17 +0000 (10:23 -0600)]
cgmanager: tell dbus to do locking

Thanks to S.Çağlar for figuring out that we needed this!

Also fix a memory leak found by coverity.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoadd missing return false on error path
Serge Hallyn [Thu, 6 Mar 2014 01:03:04 +0000 (19:03 -0600)]
add missing return false on error path

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agofix console stdin,stdout,stderr fds
Dwight Engen [Wed, 5 Mar 2014 20:48:39 +0000 (15:48 -0500)]
fix console stdin,stdout,stderr fds

The fds for stdin,stdout,stderr that we were leaving open for /sbin/init
in the container were those from /dev/tty or lxc.console (if given), which
wasn't right. Inside the container it should only have access to the pty
that lxc creates representing the console.

This was noticed because busybox's init was resetting the termio on its
stdin which was effecting the actual users terminal instead of the pty.
This meant it was setting icanon so were were not passing keystrokes
immediately to the pty, and hence command line history/editing wasn't
working.

Fix by dup'ing the console pty to stdin,stdout,stderr just before
exec()ing /sbin/init. Fix fd leak in error handling that I noticed while
going through this code.

Also tested with lxc.console = none, lxc.console = /dev/tty7 and no
lxc.console specified.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agosnapshot: fix overlayfs restore
Serge Hallyn [Tue, 4 Mar 2014 20:54:04 +0000 (14:54 -0600)]
snapshot: fix overlayfs restore

And add a testcase to catch regressions.

Without this patch, restoring a snapshot of an overlayfs based
container fails, because we do not pass in LXC_CLONE_SNAPSHOT,
and overlayfs does not support clone without snapshot.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoUpdate gitignore for lxc-ls
Stéphane Graber [Tue, 4 Mar 2014 22:40:24 +0000 (17:40 -0500)]
Update gitignore for lxc-ls

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocgmanager: switch to TLS
Serge Hallyn [Tue, 4 Mar 2014 18:18:08 +0000 (12:18 -0600)]
cgmanager: switch to TLS

Drop the thread mutex.  Set a (TLS) boolean at container start to
indicate that the connection should be kept open;  set it back to false
only when container start is complete.  Every cgm_ method opens the
connection if not already open, and closes it if cgm_keep_connection
is false.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocgmanager updates
Serge Hallyn [Mon, 3 Mar 2014 22:39:00 +0000 (16:39 -0600)]
cgmanager updates

1. remove the cgm_dbus_disconnected handler.  We're using a proxy
   anyway, and not keeping it around.

2. comment most of the cgm functions to describe when they are called, to
   ease locking review

3. the cgmanager mutex is now held for the duration of a connection, from
   cgm_dbus_connect to cgm_dbus_disconnect.

3b. so remove the mutex lock/unlock from functions which are called during
   container startup with the cgmanager connection already up

4. remove the cgroup_restart().  It's no longer needed since we don't
   daemonize while we have the cgmanager socket open.

5. report errors and return early if cgm_dbus_connect() fails

6. don't keep the cgm connection open after cgm_ops_init.  I'm a bit torn
   on this one as it means that things like lxc-start will always connect
   twice.  But if we do this there is no good answer, given threaded API
   users, on when to drop that initial connection.

7. cgm_unfreeze and nrtasks: grab the dbus connection, as we'll never
   have it at that point.  (technically i doubt anyone will use
   cgmanager and utmp helper on the same host :)

8. lxc_spawn: make sure we only disconnect cgroups if they were already
   connected.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-ls: Fix support of --nesting for unpriv
Stéphane Graber [Tue, 4 Mar 2014 18:20:10 +0000 (13:20 -0500)]
lxc-ls: Fix support of --nesting for unpriv

This reworks the way lxc-ls works in nesting mode. In the past it'd use
attach_wait's subprocess function to call itself in the container's
namespace, carefully only attaching to the namespaces it needed.

This works great for system containers but not so much as soon as you
also need to attach to userns. Instead this fix moves all of the
container listing code into a get_containers function (hence the massive
diff, sorry), this function is then called recursively.

For running containers, the function is called through attach_wait
inside the container's namespace, for stopped container, the function is
simply called recursively with a base path (container's rootfs) in an
attempt to find containers that way.
Communication between the parent lxc-ls and the child lxc-ls is done
through a temporary fd and serialized state using json (similar to what
was done using stdout in the previous implementation).

As get_global_config_item unfortunately caches the values, there's no
easy way to figure out what the lxcpath should be for a root container
when running as non-root, so just use @LXCPATH@ for now and have
python do the parsing itself.

As a result, the following things now work as expected:
 - listing nested unprivileged containers (root containers inside unpriv)
 - listing nested containers when they're not running
 - filtering containers in nesting mode (only the first level is filtered)
 - copy with invalid config (used to traceback)

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agopython3: Export get_global_config_item
Stéphane Graber [Tue, 4 Mar 2014 18:31:46 +0000 (13:31 -0500)]
python3: Export get_global_config_item

get_global_config_item was added in _lxc but not mapped into lxc itself,
this resolves this oversight.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agochown_mapped_rootid: don't double-map root id
Serge Hallyn [Tue, 4 Mar 2014 15:58:30 +0000 (09:58 -0600)]
chown_mapped_rootid: don't double-map root id

If the user maps container root to his host uid, chown_mapped_rootid
tries to make the same mapping twice and gets -EINVAL.

Reported-by: Andy Whitcroft <apw@canonical.com>
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolua: respect configure's --prefix
Natanael Copa [Tue, 4 Mar 2014 09:50:27 +0000 (09:50 +0000)]
lua: respect configure's --prefix

Install lua files under the confiugred --prefix rather than use the
pkg-config's variables LUA_INSTALL_[CL]MOD.

Users will likely want user --prefix while packagers will use DESTDIR.
Set the default to $datadir/lua/$LUA_VERSION for arch independent
lua modules and $libdir/lua/$LUA_VERSION for arch dependant .so module.

This should work for most distros. If it does not, then packagers
can still do:

  make install lualibdir=$(pkg-config lua --variable=INSTALL_CMOD) ...

This fixes #169

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoclone: don't set new containers' rootfs to the old
Serge Hallyn [Mon, 3 Mar 2014 19:57:14 +0000 (13:57 -0600)]
clone: don't set new containers' rootfs to the old

If clone is called from the api, the container object in memory
retains the bad fs.  The line is wrong, being a leftover from a
previous attempt before copy_storage was moved earlier.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agofix systemd unit file location to use prefix for local installs
Dwight Engen [Mon, 3 Mar 2014 17:59:42 +0000 (12:59 -0500)]
fix systemd unit file location to use prefix for local installs

also remove /usr special case for non-debian distros since systemd
itself sets systemunitdir=$(rootprefix)/lib/systemd/system

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoFix typo I introduced in the bdev change.
Stéphane Graber [Mon, 3 Mar 2014 16:31:03 +0000 (11:31 -0500)]
Fix typo I introduced in the bdev change.

When adding the missing return value in Caglar's change (as discussed on
the mailing-list), I set err = -1 instead or ret = -1, causing an
obvious build failure...

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoUpdate README to mention pkg-config and current configure
Stéphane Graber [Mon, 3 Mar 2014 16:14:31 +0000 (11:14 -0500)]
Update README to mention pkg-config and current configure

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agosimpler shared rootfs handling
Serge Hallyn [Sat, 1 Mar 2014 05:41:12 +0000 (23:41 -0600)]
simpler shared rootfs handling

Only do the funky chroot_into_slave if / is in fact the rootfs.
Rootfs is a special blacklisted case for pivot_root.

If / is not rootfs but is shared, just mount / rslave.  We're
already in our own namespace.

This appears to solve the extra /proc/$$/mount entries in
containers and the host directories in lxc-attach which have
been plagueing at least fedora and arch.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoclone: don't ever mark the clone's rootfs as being the old, on disk
Serge Hallyn [Fri, 28 Feb 2014 03:49:27 +0000 (21:49 -0600)]
clone: don't ever mark the clone's rootfs as being the old, on disk

Otherwise an interrupted clone can lead to the original rootfs
being delete.

There is a period during lxcapi_clone during which we have written down
a temporary configuration file on disk, for the new container, using the
old rootfs. Interruption of clone doesn't allow us to do the cleanup we
do in error paths, so a subsequent lxc-destroy removes the old rootfs.

Fix this by doing the copy_storage as early as possible, and not
writing down the rootfs when we write down the temporary configuration
file.

(note - I tested this by putting a series of
'if (strcmp(newname, "u%d") == 0) exit(1)' inline to trigger
interruption between most blocks.  If someone has a good idea
for a generic way to regression-test this henceforth that'd be
great)

See https://bugs.launchpad.net/lxc/+bug/1285850

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agouse btrfs snapshot feature to restore snapshots
S.Çağlar Onur [Fri, 28 Feb 2014 21:39:41 +0000 (16:39 -0500)]
use btrfs snapshot feature to restore snapshots

fixes #131

changes since v1;
* uses btrfs snapshot feature only if src and dest are on same fs

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agocgmanager: don't stay connected
Serge Hallyn [Fri, 28 Feb 2014 23:50:22 +0000 (17:50 -0600)]
cgmanager: don't stay connected

There are only a few times when we need to be connected to the
cgroup manager:

* when starting a container, from cgm_init until we've set cgroup limits
* when changing a cgroup setting (while running)
* when cleaning up (when shutting down)
* around the cgroup entering at attach

So only connect/disconnect the cgmanager socket on-demand as
needed.  This should have a few benefits.

1. Reduce the # open fds when many containers are running
2. if cgmanager is stopped and restarted, the container
   doesn't have to deal with the disconnection.

This is currently RFC.  There are a few issues outstanding:

1. the cgm_set and cgm_get may need to be made thread-safe.
2. a non-daemonized start which fails while cgm is connected,
will not disconnected.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoremoved shebang from bash_completion-file
Johannes Kastl [Sat, 1 Mar 2014 20:48:11 +0000 (21:48 +0100)]
removed shebang from bash_completion-file

Signed-off-by: Johannes Kastl <git@ojkastl.de>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-download: Fix in_userns again
Stéphane Graber [Sat, 1 Mar 2014 00:12:47 +0000 (19:12 -0500)]
lxc-download: Fix in_userns again

The use of a subshell was causing various failures, re-arrange not to
use one.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoon_path: use strtok_r consistently
Serge Hallyn [Fri, 28 Feb 2014 05:47:36 +0000 (23:47 -0600)]
on_path: use strtok_r consistently

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agoFix unprivileged containers started by root
Stéphane Graber [Wed, 26 Feb 2014 18:00:36 +0000 (13:00 -0500)]
Fix unprivileged containers started by root

This change makes it possible to create unprivileged containers as root.
They will be stored in the usual system wide location, use the usual
system wide cache but will be running using a uid/gid map.

This also updates lxc_usernsexec to use the same function as the rest of
LXC, centralizing all the userns switch in a single function.

That function now detects the presence of newuidmap and newgidmap on the
system, if they are present, they will be used for containers created as
either user or root. If they're not and the user isn't root, an error is
shown. If they're not and the user is root, LXC will directly set the
uid_map and gid_map values.

All that should allow for a consistent experience as well as supporting
distributions that don't yet ship newuidmap/newgidmap.

To make things simpler in the future, an helper function "on_path" is
also introduced and used to detect the presence of newuidmap and
newgidmap.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agostart: Fix print_top_failing_dir for /var/lib/lxc
Stéphane Graber [Thu, 27 Feb 2014 22:32:39 +0000 (17:32 -0500)]
start: Fix print_top_failing_dir for /var/lib/lxc

In the case where /var/lib/lxc itself was not accessible,
print_top_failing_dir would fail to print the error message.

This fixes it and also change the initial access check for X_OK instead
of R_OK (to match what we actually need and print_top_failing_dir's own
check).

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-download: Ignore return code from subshell
Stéphane Graber [Thu, 27 Feb 2014 20:46:23 +0000 (15:46 -0500)]
lxc-download: Ignore return code from subshell

The previous change fixed parsing of multiple uid/gid ranges by using a
while loop, however a failure in that loop will cause the script to exit
(due to -e), so we need to ignore the return value of the commands
inside that loop.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agobdev: do not crash if specs is NULL
S.Çağlar Onur [Thu, 27 Feb 2014 19:16:05 +0000 (14:16 -0500)]
bdev: do not crash if specs is NULL

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agofix realloc() error on reboot container
Vitaly Lavrov [Thu, 27 Feb 2014 09:01:00 +0000 (13:01 +0400)]
fix realloc() error on reboot container

The container with "lxc.network.type=phys" halted with error on reboot.

Error message:
*** glibc detected *** lxc-start: realloc(): invalid pointer: 0x0948eed0 ***

We have a sequence:

1) conf->saved_nic = relloc(NULL) on start start.c:container save_phys_nics()
2) free(conf->saved_nics) after stop container
   conf.c:lxc_rename_phys_nics_on_shutdown()
3) conf->saved_nic = relloc(conf->saved_nics) on restart container
   start.c:save_phys_nics() -> error relloc()

free(conf->saved_nics) in lxc_rename_phys_nics_on_shutdown()
unnecessary, it will be called later in lxc_clear_saved_nics().

Signed-off-by: Vitaly Lavrov <vel21ripn@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agofix attach when cgroups mounted after container start
Dwight Engen [Wed, 26 Feb 2014 18:54:58 +0000 (13:54 -0500)]
fix attach when cgroups mounted after container start

When booting an OL7 container on OL6, systemd in the OL7 container mounted
some extra cgroup controllers, which are then present in /proc/self/cgroups
of every task on the host. This is the list used by attach to determine
which cgroups to move the attached task into, but when it asks the container
over the command interface for the path to the subsystem this will fail
since the controller didn't exist when the container was first started.

Instead of failing, this change allows the attach to continue, warning that
those cgroups that could not be found won't be attached to.

The problem can be more simply reproduced by starting a busybox container,
mounting a cgroup that was not previously mounted, and then attempting
to attach to to the busybox container.

The problem will likely not manifest with cgmanager since it only requests
the path for the first controller, which is likely to always be mounted.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agolxc-download: Detect unpriv created by real root
Stéphane Graber [Wed, 26 Feb 2014 19:15:27 +0000 (14:15 -0500)]
lxc-download: Detect unpriv created by real root

This adds yet another case in the in_userns function detecting the case
where an unprivileged container is created by the real uid 0, in which
case we want to share the system wide cache but still use the
unprivileged templates and unpack method.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoupstart: Don't forward requests for LXC_DOMAIN
Stéphane Graber [Wed, 26 Feb 2014 00:15:28 +0000 (19:15 -0500)]
upstart: Don't forward requests for LXC_DOMAIN

Without this change, a request to *.LXC_DOMAIN that doesn't get a local
result from dnsmasq will be forwarded to its upstream server with the
potential of a loop.

Thanks to Ed for the patch on Launchpad (LP: #1246094).

Reported-by: Ed Swierk
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoconfile: Don't crash on invalid id_map
Stéphane Graber [Tue, 25 Feb 2014 21:26:48 +0000 (16:26 -0500)]
confile: Don't crash on invalid id_map

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agopython3: Add support for wlan device add
Stéphane Graber [Tue, 25 Feb 2014 20:50:44 +0000 (15:50 -0500)]
python3: Add support for wlan device add

With this change it's now possible to add wlan devices to the container.
This will track down the right phy device, move it to the right
namespace (we don't care about its name), then if the user asked for a
new device name for the actual interface, we attach to the container and
rename the interface in there using attach.

I have tested this to work with both Intel and Atheros NICs.

This patch is based on the one provided to lxc-devel by Gregor Beck and
has then been updated to do the device renaming as well as minor code
style changes. Thanks!

Reported-by: Gregor Beck <gbeck@sernet.de>
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoattach: Defined MS_REC and MS_SLAVE if not set
Stéphane Graber [Tue, 25 Feb 2014 19:59:30 +0000 (14:59 -0500)]
attach: Defined MS_REC and MS_SLAVE if not set

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoalways check whether rootfs is shared
Serge Hallyn [Tue, 25 Feb 2014 05:08:26 +0000 (23:08 -0600)]
always check whether rootfs is shared

(this expands on Dwight's recent patch, commit c597baa8f9)

After unshare(CLONE_NEWNS) and before doing any mounting, always
check whether rootfs is shared.  Otherwise template runs or clone
scripts can bleed mount activity to the host.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoCatch seccomp violations by init
Serge Hallyn [Mon, 24 Feb 2014 17:28:10 +0000 (11:28 -0600)]
Catch seccomp violations by init

Note that if a task other than init violates the seccomp policy,
we cannot catch that.  Init will catch it and (if it feels like
it) log it.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-start-ephemeral: Set tmpfs mode to 0755
Stéphane Graber [Sun, 23 Feb 2014 00:34:27 +0000 (19:34 -0500)]
lxc-start-ephemeral: Set tmpfs mode to 0755

The tmpfs was mounted with its default mode (1777) which was then picked
up by overlayfs/aufs as the target's mode.

This led to a world writable / in ephemeral containers.

I have confirmed that this issue doesn't impact lxc-clone.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
10 years agoadd dir support
Serge Hallyn [Fri, 21 Feb 2014 20:36:06 +0000 (14:36 -0600)]
add dir support

It used to be supported with the lxc-create.in script, and
the manpage says it's supported...  So let's just support it.

Now

sudo lxc-create -t download --dir /opt/ab -n ab

works, creating the container rootfs under /opt/ab.  This
generally isn't something I'd recommend, however telling users
to use a different lxc-path isn't as friendly as I'd like,
because each lxcpath requires separate lxc-ls and lxc-autostart
runs.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoapparmor: don't do on-exec profile changes
Serge Hallyn [Fri, 21 Feb 2014 19:53:46 +0000 (13:53 -0600)]
apparmor: don't do on-exec profile changes

always change profile immediately.  Otherwise there are weird
corner cases where the profile change may not happen.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agochange version to 1.0.0 in configure.ac
Stéphane Graber [Thu, 20 Feb 2014 18:24:19 +0000 (13:24 -0500)]
change version to 1.0.0 in configure.ac

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agoapparmor: Drop unused profile
Stéphane Graber [Thu, 20 Feb 2014 18:36:33 +0000 (13:36 -0500)]
apparmor: Drop unused profile

This profile was never meant to get into git...

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agocoverity: Fix two memory leaks
Stéphane Graber [Thu, 20 Feb 2014 15:42:57 +0000 (10:42 -0500)]
coverity: Fix two memory leaks

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agobdev: Fix aufs mounts when /run/lxc doesn't exist
Stéphane Graber [Thu, 20 Feb 2014 15:06:30 +0000 (10:06 -0500)]
bdev: Fix aufs mounts when /run/lxc doesn't exist

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-alpine: add support for architecture arm
Natanael Copa [Thu, 20 Feb 2014 10:31:01 +0000 (10:31 +0000)]
lxc-alpine: add support for architecture arm

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolua: Do not link Lua module to the Lua core library
Natanael Copa [Thu, 20 Feb 2014 09:54:35 +0000 (09:54 +0000)]
lua: Do not link Lua module to the Lua core library

Modules should not link to the Lua core library.

See http://lua-users.org/wiki/BuildingModules under
"Do Not Link Modules to the Lua Core Libraries"

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agolxc-start-ephemeral: Also set xino path
Stéphane Graber [Thu, 20 Feb 2014 14:40:08 +0000 (09:40 -0500)]
lxc-start-ephemeral: Also set xino path

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agofix aufs mount for some fs types via adding the xino parameter
S.Çağlar Onur [Thu, 20 Feb 2014 05:49:55 +0000 (00:49 -0500)]
fix aufs mount for some fs types via adding the xino parameter

Signed-off-by: S.Çağlar Onur <caglar@10ur.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
10 years agofix mounts not propagating back to root mntns during create and clone
Dwight Engen [Wed, 19 Feb 2014 21:44:19 +0000 (16:44 -0500)]
fix mounts not propagating back to root mntns during create and clone

Systems based on systemd mount the root shared by default. We don't want
mounts done during creation by templates nor those done internally by
bdev during rsync based clones to propagate to the root mntns.

The create case already had the right check, but the mount call was
missing "/", so it was failing.

Signed-off-by: Dwight Engen <dwight.engen@oracle.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>