Commit Graph

4207 Commits

Author SHA1 Message Date
Serge Hallyn
a17d94a593 lxc-test-unpriv: try to start the container a second time
We have nothing else testing this, and it was a real regression in lp
bug 1552355.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2016-03-02 16:17:17 -08:00
Serge Hallyn
77afbedf09 cgfs: don't try to remove cgroups we haven't created
info_ptr->created_paths_count can be 0, so don't blindly dereference
info_ptr->created_paths[ created_paths_count - 1].  Apparently we never
used to have 0 at the cleanup_name_on_this_level before, but now that
we can fail with -eperm and not just -eexist, we do.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2016-03-02 16:11:14 -08:00
Serge Hallyn
4fee80f9d7 cgfs: be less verbose
don't always warn about unused cgroups, it's noisy and not helpful

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2016-03-02 15:23:33 -08:00
Serge Hallyn
6a9e0f26fe cgfs: switch to userns when removing cgroup
Otherwise unprivileged users may not have the privilege needed to
remove their cgroups.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2016-03-02 14:24:34 -08:00
Stéphane Graber
de232a51d7 Merge pull request #864 from brauner/bugfix_branch
Add features/small improvements to man pages (lxc-attach, lxc-copy)
2016-03-02 10:04:04 -05:00
Christian Brauner
a372480c34 lxc-copy: update help to include hook options
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-03-02 14:14:06 +01:00
Christian Brauner
cc0607a931 lxc-copy: add copy hook explanation to manpage
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-03-02 14:09:56 +01:00
Christian Brauner
759d521b1f lxc-attach: small improvements to manpage
Explain that the pipe symbol needs to be escaped for -e and -s.

Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-03-02 12:48:38 +01:00
Stéphane Graber
0f4d7aff4e Merge pull request #863 from brauner/bugfix_branch
lxc-copy: correct order of copy and original & lxc-attach: setup ts->stdoutfd
2016-03-01 17:40:11 -05:00
Christian Brauner
12752e2727 lxc-attach: setup ts->stdoutfd
Otherwise we cannot do things like:

- lxc-attach -n a runlevel </dev/null
- lxc-attach -n a runlevel </dev/null 2>/dev/null
- lxc-attach -n a runlevel </dev/null 2>/dev/null | cat

Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-03-01 23:11:04 +01:00
Christian Brauner
5a8929b12c lxc-copy: correct order of copy and original
lxc-copy -n ORIG -N COPY -e

accidently printed

	"Created ORIG as clone of COPY"

instead of

	"Created COPY as clone of ORIG".
Fix the ordering.

Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-03-01 22:00:09 +01:00
Stéphane Graber
ebffa9db70 Merge pull request #862 from brauner/2016-03-01/post_stop_fail_no_reboot
start.c: do not reboot on lxc.hook.post-stop fail
2016-03-01 11:53:51 -05:00
Christian Brauner
f3787121a0 start.c: do not reboot on lxc.hook.post-stop fail
lxc should not reboot the container when lxc.hook.post-stop fails. It should
simply shutdown. This makes the behavior of lxc.hook.post-stop and
lxc.hook.pre-start consistent. When lxc.hook.pre-start fails, the container
does not start.

Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-03-01 12:54:55 +01:00
Serge Hallyn
e6eb4c3e16 Merge pull request #859 from brauner/bugfix_branch
lxc-attach: always allocate current controlling pty
2016-02-29 14:18:10 -08:00
Christian Brauner
a9d02bb9ae lxc-attach: always allocate current controlling pty
lxc-attach uses lxc_console_create() to allocate a pty on the host.
lxc_console_create() in turn calls lxc_console_peer_default() which either
makes the current controlling pty our controlling pty for the container, or
uses whatever the user gave us (e.g. /dev/tty2 etc.). For lxc-attach we always
want the current controlling pty to be used. This commit ensures that we're in
fact always using the current controlling pty. The commit also fixes a segfault
when the user specified lxc.console.path = none.

Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-02-29 17:44:22 +01:00
Serge Hallyn
cadbf1a7b6 Merge pull request #857 from brauner/bugfix_branch
cgfs: don't chown/chmod/rm non-existing paths
2016-02-27 10:46:09 -08:00
Christian Brauner
01d59fe5b3 cgfs: don't chown/chmod/rm non-existing paths
Dirty fix for the current noisiness when lxc_cgroupfs_create() could not create
cgroups.

Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-02-27 17:34:56 +01:00
Stéphane Graber
db6c92525e
change version to 2.0.0.rc4 in configure.ac
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2016-02-26 22:30:43 -05:00
Christian Brauner
992b78d715 Merge pull request #856 from hallyn/2016-02-26/cgfs.cgns.2
cgfs: ignore mount prefix in mountinfo if cgroup namespaces are suppo…
2016-02-26 23:08:22 +01:00
Serge Hallyn
fcca16bc86 cgfs: ignore mount prefix in mountinfo if cgroup namespaces are supported
This is not 100% correct, but will suffice until we fix the kernel so that
we can distinguish between bind mounts and namespaced cgroupfs mounts.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2016-02-26 13:35:24 -08:00
Christian Brauner
5d55659daa Merge pull request #855 from hallyn/2016-02-26/cgfs.crucial
fix cgfs failure for unpriv users
2016-02-26 21:55:27 +01:00
Serge Hallyn
ea439aaca1 fix cgfs failure for unpriv users
Cgmanager was taught awhile ago that only some cgroup controllers are
crucial.  Teach cgfs the same thing.

This patch needs improvement, but will fix failure of lxc without cgmanager
for unprivileged users for now.  In particular, needed improvements include:

1. the check for crucial subsystems needs to include lxc.use
2. we should keep a list of the actually used subsystems so we don't keep
trying to chmod and enter after create has found we couldn't use a particular
subsystem

This fixes unprivileged lxc use.  It does not appear to suffice to fix
nested unprivilegd lxd usage.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2016-02-26 12:16:39 -08:00
Christian Brauner
127ef998ed Merge pull request #751 from jirutka/alpine-tmpl
Rewrite template script for Alpine Linux
2016-02-26 15:46:02 +01:00
Stéphane Graber
e5712bb441 Merge pull request #852 from brauner/bugfix_branch
lxc-ls: count spaces
2016-02-26 09:44:05 -05:00
Jakub Jirutka
1125e053fb
lxc-alpine: allow to install additional packages
Signed-off-by: Jakub Jirutka <jakub@jirutka.cz>
2016-02-26 14:16:35 +01:00
Jakub Jirutka
20f39db782
lxc-alpine: cache APK packages instead of rootfs
Signed-off-by: Jakub Jirutka <jakub@jirutka.cz>
2016-02-26 14:16:35 +01:00
Jakub Jirutka
5845ac2bb8
lxc-alpine: remove all bashisms, make it compatible with dash
Signed-off-by: Jakub Jirutka <jakub@jirutka.cz>
2016-02-26 14:16:33 +01:00
Jakub Jirutka
04fa4e1253
lxc-alpine: make it compatible with ash, replace curl and rsync
Now it runs even on minimal Alpine system without bash, curl, openssl or
rsync.

Signed-off-by: Jakub Jirutka <jakub@jirutka.cz>
2016-02-26 13:15:30 +01:00
Jakub Jirutka
6515faa115
lxc-alpine: completely rewrite the template script
New template script is more readable and robust, uses cache and external
LXC config file as other templates.

Signed-off-by: Jakub Jirutka <jakub@jirutka.cz>
2016-02-26 13:14:46 +01:00
Christian Brauner
c46954935b Merge pull request #854 from ysbnim/master
Update Korean manuals
2016-02-26 12:48:23 +01:00
Christian Brauner
c753bba615 Merge pull request #853 from tenforward/japanese_man
doc: Update Japanese lxc-attach(1)
2016-02-26 12:45:48 +01:00
KATOH Yasufumi
f025e64819 doc: Update Japanese lxc-attach(1)
Update the description of pty allocation. Update for commit 478dda7.

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
2016-02-26 20:05:09 +09:00
Sungbae Yoo
bcd7520a48 doc: Add the Korean description that automount is ignored when cgroup namespaces are supported.
Update for commit 4608594

Signed-off-by: Sungbae Yoo <sungbae.yoo@samsung.com>
2016-02-26 20:02:38 +09:00
Sungbae Yoo
77fbb4d2d9 doc: Update Korean lxc-clone(1) and lxc-start-ephemeral(1)
Update for commit 2ae6732.

Signed-off-by: Sungbae Yoo <sungbae.yoo@samsung.com>
2016-02-26 20:02:38 +09:00
Sungbae Yoo
eae7ec6edc doc: Update Korean lxc-attach(1)
Update for commit e986ea3

Signed-off-by: Sungbae Yoo <sungbae.yoo@samsung.com>
2016-02-26 20:02:33 +09:00
Sungbae Yoo
1e4fe6112c doc: Add the Korean description of cgns apparmor profile in lxc.container.conf
Update for commit 7a126ae

Signed-off-by: Sungbae Yoo <sungbae.yoo@samsung.com>
2016-02-26 20:01:29 +09:00
Sungbae Yoo
a3e596c3a5 doc: Add LXC_CGNS_AWARE env to Korean lxc.container.conf(5)
Update for commit c4cafa0

Signed-off-by: Sungbae Yoo <sungbae.yoo@samsung.com>
2016-02-26 19:58:56 +09:00
Christian Brauner
fb9d69f27f lxc-ls: count spaces
Otherwise line wrapping might occur too late.

Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-02-26 11:20:40 +01:00
Serge Hallyn
a71e0967ae Merge pull request #851 from tych0/set-sid-in-init
start: setsid in init task as well
2016-02-25 17:00:20 -08:00
Tycho Andersen
8c9a76651a start: setsid in init task as well
If we don't do this, we'll leak the parent's session id to the container,
which maybe doesn't matter, but it still seems better to set it anyway.

Also, it breaks CRIU for containers that don't call setsid themselves.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
2016-02-25 17:04:01 -07:00
Serge Hallyn
ad6ea0348c Merge pull request #849 from brauner/2016-02-25/fix_attach_container_put
lxc-attach: rework pty allocation
2016-02-25 11:48:26 -08:00
Stéphane Graber
0eb37f9866 Merge pull request #850 from hallyn/2016-02-25/cgfs.lxcfs
cgfs: make sure we use valid cgroup mountpoints
2016-02-25 14:39:28 -05:00
Serge Hallyn
d3f99e96fb cgfs: make sure we use valid cgroup mountpoints
If lxcfs starts before cgroup-lite, then the first cgroup mountpoints in
/proc/self/mountinfo are /run/lxcfs/*.  Unprivileged users cannot access
these.  So privileged containers are ok, and unprivileged containers are ok
since they won't cache those to begin with.  But unprivileged root-owned
containers cache /run/lxcfs/* and then try to use them.

So when doing cgroup automounting check whether the mountpoints we have
stored are accessible, and if not look for a new one to use.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2016-02-25 11:18:17 -08:00
Christian Brauner
478dda766a lxc-attach: rework pty allocation
Previously we implemented two ways to get a pty for lxc-attach:
	1. get a pty in the container
	2. get a pty on the host

Where 1. was the default and 2. was only tried after 1. failed.
For safety and simplicity reasons, we remove 1. and just keep 2. around.

Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-02-25 19:27:02 +01:00
Christian Brauner
fa79f0a4e3 Merge pull request #847 from tenforward/japanese_man
Update Japanese man
2016-02-25 08:57:21 +01:00
KATOH Yasufumi
cd548c9d86 doc: Update Japanese lxc.container.conf(5)
- Add the description that automount is ignored when cgroup namespaces
  are supported. Update for commit 4608594.
- Unify terminology of translation

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
2016-02-25 15:44:44 +09:00
KATOH Yasufumi
bf5afa6e6b doc: Update Japanese lxc-clone(1) and lxc-start-ephemeral(1)
describe that lxc-clone and lxc-start-ephemeral have been deprecated
in those man pages.
Update for commit 2ae6732.

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
2016-02-25 15:15:41 +09:00
Stéphane Graber
9e89a0ba52
change version to 2.0.0.rc3 in configure.ac
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2016-02-24 21:13:20 -05:00
Stéphane Graber
e80ca772ad Merge pull request #846 from hallyn/2016-02-24/cgns.auto
cgfs: do not automount if cgroup namespaces are supported
2016-02-24 21:11:29 -05:00
Serge Hallyn
4608594e1d cgfs: do not automount if cgroup namespaces are supported
In that case containers will be able to mount cgroup filesystems
for themselves as they do on a host.

This fixes inability to start systemd based containers on cgns-enabled
kernels with cgmanager not running.

I've tested debian jessie, busybox, ubuntu trusty and xenial, all of
which booted ok.  However if there are some setups which require
premounted cgroupfs (i.e. they don't mount if they detect being in
a container), this may cause trouble.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2016-02-24 17:47:23 -08:00