]> git.proxmox.com Git - mirror_lxc.git/log
mirror_lxc.git
6 years agoAdd support share pid namespace
LiFeng [Fri, 29 Sep 2017 11:53:43 +0000 (19:53 +0800)]
Add support share pid namespace

Signed-off-by: LiFeng <lifeng68@huawei.com>
6 years agoMerge pull request #1835 from brauner/2017-09-28/share_namespaces
Christian Brauner [Thu, 28 Sep 2017 14:38:26 +0000 (10:38 -0400)]
Merge pull request #1835 from brauner/2017-09-28/share_namespaces

start: don't close inherited namespace fds

6 years agostart: don't close inherited namespace fds
LiFeng [Thu, 28 Sep 2017 16:23:30 +0000 (00:23 +0800)]
start: don't close inherited namespace fds

Otherwise we can never share namespaces.

Signed-off-by: LiFeng <lifeng68@huawei.com>
Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #1833 from brauner/2017-09-27/check_for_initialized_conf
Stéphane Graber [Wed, 27 Sep 2017 21:50:14 +0000 (17:50 -0400)]
Merge pull request #1833 from brauner/2017-09-27/check_for_initialized_conf

cgfsng: check whether we have a conf

6 years agocgfsng: check whether we have a conf
Christian Brauner [Wed, 27 Sep 2017 16:24:42 +0000 (18:24 +0200)]
cgfsng: check whether we have a conf

We can't rely in general on the presence of an initialized conf on cgroup init
time. One good example are our criu codepaths.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #1830 from tenforward/japanese
Christian Brauner [Mon, 25 Sep 2017 13:25:09 +0000 (09:25 -0400)]
Merge pull request #1830 from tenforward/japanese

doc: Translate lxc-update-config(1) into Japanese

6 years agodoc: Translate lxc-update-config(1) into Japanese
KATOH Yasufumi [Mon, 25 Sep 2017 11:14:57 +0000 (20:14 +0900)]
doc: Translate lxc-update-config(1) into Japanese

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
6 years agoMerge pull request #1828 from brauner/2017-09-23/storage_driver_lvm_fix_thinpool
Stéphane Graber [Sun, 24 Sep 2017 22:26:55 +0000 (18:26 -0400)]
Merge pull request #1828 from brauner/2017-09-23/storage_driver_lvm_fix_thinpool

lvm: fix thinpool logical volumes

6 years agolvm: fix thinpool logical volumes
Christian Brauner [Sat, 23 Sep 2017 20:32:25 +0000 (22:32 +0200)]
lvm: fix thinpool logical volumes

Closes #1827.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #1819 from brauner/2017-09-19/lxc-update-config_manpage
Stéphane Graber [Wed, 20 Sep 2017 17:03:23 +0000 (13:03 -0400)]
Merge pull request #1819 from brauner/2017-09-19/lxc-update-config_manpage

doc: add lxc-update-config manpage

6 years agoMerge pull request #1821 from brauner/2017-09-19/fail_on_when_setting_limits_on_unava...
Stéphane Graber [Wed, 20 Sep 2017 17:03:06 +0000 (13:03 -0400)]
Merge pull request #1821 from brauner/2017-09-19/fail_on_when_setting_limits_on_unavailable_controllers

cgfsng: fail when limits fail to apply

6 years agoMerge pull request #1824 from brauner/2017-09-20/fix_best_option
Stéphane Graber [Wed, 20 Sep 2017 15:42:33 +0000 (11:42 -0400)]
Merge pull request #1824 from brauner/2017-09-20/fix_best_option

zfs: return error directly when zfs creation fails

6 years agozfs: return error directly when zfs creation fails
Christian Brauner [Wed, 20 Sep 2017 08:13:30 +0000 (10:13 +0200)]
zfs: return error directly when zfs creation fails

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #1822 from tenforward/japanese
Christian Brauner [Tue, 19 Sep 2017 16:07:28 +0000 (10:07 -0600)]
Merge pull request #1822 from tenforward/japanese

doc: fix regex-typo in Japanese and Korean lxc-monitor(1)

6 years agodoc: fix regex-typo in Japanese and Korean lxc-monitor(1)
KATOH Yasufumi [Tue, 19 Sep 2017 15:51:03 +0000 (00:51 +0900)]
doc: fix regex-typo in Japanese and Korean lxc-monitor(1)

Update for commit e3dd06ef41b63d0ee362fea74a3f2d798dbfe929

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
6 years agocgfsng: fail when limits fail to apply
Christian Brauner [Tue, 19 Sep 2017 14:24:37 +0000 (16:24 +0200)]
cgfsng: fail when limits fail to apply

So far, we silently skipped over limits that failed to be applied which is very
odd. Let's error on when cgroup limits fail to apply.

Closes #1815.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agodoc: add lxc-update-config manpage
Christian Brauner [Tue, 19 Sep 2017 10:41:24 +0000 (12:41 +0200)]
doc: add lxc-update-config manpage

Closes #1818.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #1817 from stgraber/master
Christian Brauner [Tue, 19 Sep 2017 08:41:02 +0000 (02:41 -0600)]
Merge pull request #1817 from stgraber/master

Fix typo

6 years agoMerge pull request #1811 from runejuhl/fix-alpine-apk-keys
Stéphane Graber [Mon, 18 Sep 2017 23:05:13 +0000 (19:05 -0400)]
Merge pull request #1811 from runejuhl/fix-alpine-apk-keys

Change alpine template file check to also check file size (`-f` => `-s`)

6 years agoFix typo
Stéphane Graber [Mon, 18 Sep 2017 23:03:48 +0000 (19:03 -0400)]
Fix typo

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
6 years agoMerge pull request #1816 from stgraber/master
Christian Brauner [Mon, 18 Sep 2017 22:30:54 +0000 (16:30 -0600)]
Merge pull request #1816 from stgraber/master

tests: Support systemd hybrid cgroups

6 years agotests: Support systemd hybrid cgroups
Stéphane Graber [Fri, 12 May 2017 16:28:20 +0000 (12:28 -0400)]
tests: Support systemd hybrid cgroups

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
6 years agoChange file check to also check file size (`-f` => `-s`)
Rune Juhl Jacobsen [Mon, 18 Sep 2017 17:56:42 +0000 (19:56 +0200)]
Change file check to also check file size (`-f` => `-s`)

Because the `fetch` wget wrapper outputs files to stdout we may end up in a
situation where wget fails but the files are still created. This can happen
e.g. when the host date is out of sync leading to a failed certificate
check, resulting in the creation of empty key files.

Once the empty files have been created the template will try to use them which
causes the certificate check to fail.

By using `-s` instead of `-f` the template will re-fetch the files unless they
exist AND have a size greater than zero.

Signed-off-by: Rune Juhl Jacobsen <runejuhl@petardo.dk>
6 years agoMerge pull request #1805 from tenforward/fix_plamo
Stéphane Graber [Mon, 18 Sep 2017 16:45:35 +0000 (09:45 -0700)]
Merge pull request #1805 from tenforward/fix_plamo

plamo: Delete unnecessary process during container shutdown

6 years agoMerge pull request #1810 from brauner/2017-09-12/start_move_env_setup
Stéphane Graber [Mon, 18 Sep 2017 16:45:17 +0000 (09:45 -0700)]
Merge pull request #1810 from brauner/2017-09-12/start_move_env_setup

start: pass LXC_LOG_LEVEL to hooks

6 years agoutils: fix lxc_popen()/lxc_pclose()
Christian Brauner [Wed, 13 Sep 2017 15:07:43 +0000 (17:07 +0200)]
utils: fix lxc_popen()/lxc_pclose()

- rework and fix pipe fd leak

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoutils: duplicate stderr as well in lxc_popen()
Christian Brauner [Wed, 13 Sep 2017 03:25:22 +0000 (05:25 +0200)]
utils: duplicate stderr as well in lxc_popen()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agodoc: document missing env variables
Christian Brauner [Wed, 13 Sep 2017 03:05:03 +0000 (05:05 +0200)]
doc: document missing env variables

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agostart: pass LXC_LOG_LEVEL to hooks
Christian Brauner [Wed, 13 Sep 2017 03:02:50 +0000 (05:02 +0200)]
start: pass LXC_LOG_LEVEL to hooks

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #1809 from brauner/2017-09-12/start_move_env_setup
Stéphane Graber [Wed, 13 Sep 2017 02:14:27 +0000 (19:14 -0700)]
Merge pull request #1809 from brauner/2017-09-12/start_move_env_setup

start: set environment variables correctly

6 years agostart: set environment variables correctly
Christian Brauner [Wed, 13 Sep 2017 02:01:41 +0000 (04:01 +0200)]
start: set environment variables correctly

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #1807 from brauner/2017-09-12/start_move_env_setup
Stéphane Graber [Wed, 13 Sep 2017 00:11:13 +0000 (17:11 -0700)]
Merge pull request #1807 from brauner/2017-09-12/start_move_env_setup

start: move env setup before container setup

6 years agostart: move env setup before container setup
Christian Brauner [Tue, 12 Sep 2017 19:23:17 +0000 (21:23 +0200)]
start: move env setup before container setup

The hooks (e.g. lxc.hook.mount) should have the environment variables the user
gave us available.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #1806 from roques/patch-1
Christian Brauner [Tue, 12 Sep 2017 17:15:18 +0000 (10:15 -0700)]
Merge pull request #1806 from roques/patch-1

[TRIVIAL] fix regex-typo in documentation example

6 years agofix regex-typo in lxc-monitor.sgml.in
Christian von Roques [Tue, 12 Sep 2017 10:31:23 +0000 (12:31 +0200)]
fix regex-typo in lxc-monitor.sgml.in

To match names beginning with the letters "f" or "b" one can use
the regular expression "[fb].*" or "(f|b).*", but not "[f|b].*",
which would match strings beginning with "f", "|", or "b".

Signed-off-by: Christian von Roques <roques@z12.ch>
6 years agoplamo: Delete unnecessary process during container shutdown
KATOH Yasufumi [Tue, 12 Sep 2017 06:29:34 +0000 (15:29 +0900)]
plamo: Delete unnecessary process during container shutdown

Since some remounts/umounts is executed in the plamo shutdown script,
the filesystem on where a container exists might be mount as
read-only. This patch delete some mounts and umounts from the shutdown
script. It also delete hwclock setting process.

And delete an unncecessary output.

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
6 years agoMerge pull request #1803 from brauner/2017-09-10/lxc_execute_switch_ids_last
Serge Hallyn [Mon, 11 Sep 2017 20:27:58 +0000 (13:27 -0700)]
Merge pull request #1803 from brauner/2017-09-10/lxc_execute_switch_ids_last

start: switch ids at last possible instance

6 years agostorage: avoid segfault
Christian Brauner [Mon, 11 Sep 2017 01:30:00 +0000 (03:30 +0200)]
storage: avoid segfault

When the "lxc.rootfs.path" property is not set and users request a container
copy we would segfault since strstr() would be called on a NULL pointer.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agostart: switch ids at last possible instance
Christian Brauner [Mon, 11 Sep 2017 01:16:06 +0000 (03:16 +0200)]
start: switch ids at last possible instance

This is technically not necessary but it is a privilege sensitive operation.
Meaning if anyone wants to do something that requires privilege it should be
done before the id switch. So let's move the id switch immediately before the
exec so that it's called at the last possible moment.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #1801 from brauner/2017-09-09/userns_exec
Serge Hallyn [Sun, 10 Sep 2017 23:42:54 +0000 (18:42 -0500)]
Merge pull request #1801 from brauner/2017-09-09/userns_exec

conf: add userns_exec_full()

6 years agoexecute: enable console & standard /dev symlinks
Christian Brauner [Sun, 10 Sep 2017 11:49:18 +0000 (13:49 +0200)]
execute: enable console & standard /dev symlinks

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoconfile: preserve newlines
Christian Brauner [Sun, 10 Sep 2017 07:38:57 +0000 (09:38 +0200)]
confile: preserve newlines

Users were confused when the config file created during cloning or copying a
container suddenly missed all newlines. Let's keep them.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agonetwork: remove dead assignments
Christian Brauner [Sun, 10 Sep 2017 06:23:59 +0000 (08:23 +0200)]
network: remove dead assignments

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agolxc-user-nic: remove double initialization
Christian Brauner [Sun, 10 Sep 2017 06:23:36 +0000 (08:23 +0200)]
lxc-user-nic: remove double initialization

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoutils: lxc_popen() remove dead assignments
Christian Brauner [Sun, 10 Sep 2017 06:09:52 +0000 (08:09 +0200)]
utils: lxc_popen() remove dead assignments

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agotests: avoid NULL pointer dereference
Christian Brauner [Sun, 10 Sep 2017 06:09:05 +0000 (08:09 +0200)]
tests: avoid NULL pointer dereference

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agotests: remove dead assignments
Christian Brauner [Sun, 10 Sep 2017 06:06:26 +0000 (08:06 +0200)]
tests: remove dead assignments

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agolxc_usernsexec: remove dead assignments
Christian Brauner [Sun, 10 Sep 2017 06:03:06 +0000 (08:03 +0200)]
lxc_usernsexec: remove dead assignments

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agolxc-unshare: do not pass NULL pointer
Christian Brauner [Sun, 10 Sep 2017 06:01:31 +0000 (08:01 +0200)]
lxc-unshare: do not pass NULL pointer

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoconfile: parse_idmaps() remove dead assignments
Christian Brauner [Sun, 10 Sep 2017 06:00:50 +0000 (08:00 +0200)]
confile: parse_idmaps() remove dead assignments

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agooverlay: fix use after free()
Christian Brauner [Sun, 10 Sep 2017 05:04:34 +0000 (07:04 +0200)]
overlay: fix use after free()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoutils: do not write to 0 sized buffer
Christian Brauner [Sun, 10 Sep 2017 04:42:10 +0000 (06:42 +0200)]
utils: do not write to 0 sized buffer

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agostorage/overlay: do not write to invalid memory
Christian Brauner [Sat, 9 Sep 2017 17:29:53 +0000 (19:29 +0200)]
storage/overlay: do not write to invalid memory

Closes #1802.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocriu: use correct check initialization check
Christian Brauner [Sat, 9 Sep 2017 16:45:47 +0000 (18:45 +0200)]
criu: use correct check initialization check

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agostart: remove dead variable
Christian Brauner [Sat, 9 Sep 2017 09:23:55 +0000 (11:23 +0200)]
start: remove dead variable

non-functional changes

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agomonitor: remove dead assignment
Christian Brauner [Sat, 9 Sep 2017 09:23:34 +0000 (11:23 +0200)]
monitor: remove dead assignment

non-functional changes

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoconsole: remove dead assignments
Christian Brauner [Sat, 9 Sep 2017 09:23:14 +0000 (11:23 +0200)]
console: remove dead assignments

non-functional changes

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agostorage: use userns_exec_full()
Christian Brauner [Sat, 9 Sep 2017 09:22:44 +0000 (11:22 +0200)]
storage: use userns_exec_full()

Closes #1800.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agostart: userns_exec_full()
Christian Brauner [Sat, 9 Sep 2017 09:21:51 +0000 (11:21 +0200)]
start: userns_exec_full()

Closes #1800.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agolxccontainer: use userns_exec_full()
Christian Brauner [Sat, 9 Sep 2017 09:21:16 +0000 (11:21 +0200)]
lxccontainer: use userns_exec_full()

Closes #1800.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoconf: add userns_exec_full()
Christian Brauner [Sat, 9 Sep 2017 09:20:57 +0000 (11:20 +0200)]
conf: add userns_exec_full()

Closes #1800.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #1794 from brauner/2017-09-06/fix_config_update_script
Stéphane Graber [Wed, 6 Sep 2017 18:41:25 +0000 (14:41 -0400)]
Merge pull request #1794 from brauner/2017-09-06/fix_config_update_script

tools: fix lxc-upate-config

6 years agotools: fix lxc-upate-config
Christian Brauner [Wed, 6 Sep 2017 10:33:19 +0000 (12:33 +0200)]
tools: fix lxc-upate-config

- replace lxc.network.[i].ipv4 with lxc.net.[i].ipv4.address
- remove lxc.rootfs.backend lines

Closes #1790.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #1793 from tenforward/japanese
Christian Brauner [Wed, 6 Sep 2017 10:48:25 +0000 (12:48 +0200)]
Merge pull request #1793 from tenforward/japanese

Update Japanese man pages

6 years agoMerge pull request #1791 from Blub/unnamed-vs-ovs-bridge
Christian Brauner [Wed, 6 Sep 2017 10:47:57 +0000 (12:47 +0200)]
Merge pull request #1791 from Blub/unnamed-vs-ovs-bridge

network: add missing checks for empty links

6 years agoMerge pull request #1792 from Blub/cleanups
Christian Brauner [Wed, 6 Sep 2017 10:17:21 +0000 (12:17 +0200)]
Merge pull request #1792 from Blub/cleanups

cleanup: remove unnecessary zeroing

6 years agodoc: Add lxc.cgroup.dir to Japanese lxc.container.conf(5)
KATOH Yasufumi [Wed, 6 Sep 2017 10:17:00 +0000 (19:17 +0900)]
doc: Add lxc.cgroup.dir to Japanese lxc.container.conf(5)

* and fix a typo in English man

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
6 years agodoc: Translate lxc(7) into Japanese
KATOH Yasufumi [Wed, 6 Sep 2017 10:00:19 +0000 (19:00 +0900)]
doc: Translate lxc(7) into Japanese

* Update for commit 594d6e30d6c86f55c340bf49f0aa15b761d7e627
* and some improvements

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
6 years agoconsole: clean tty state + return 0 on peer exit
LiFeng [Tue, 5 Sep 2017 15:16:50 +0000 (23:16 +0800)]
console: clean tty state + return 0 on peer exit

In the past, if the console client exited, lxc_console_cb_con return 1. And
the lxc_poll will exit, the process will wait at waitpid. At this moment, the
process could not handle any command (For example get the container state
LXC_CMD_GET_STATE or stop the container LXC_CMD_STOP.).

I think we should clean the tty_state and return 0 in this case. So, we can use
the lxc-console to connect the console of the container. And we will not exit
the function lxc_polland we can handle the commands by lxc_cmd_process

Reproducer prior to this commit:
- open a new terminal, get the tty device name by command tty /dev/pts/6
- set lxc.console.path = /dev/pts/6
- start the container and the ouptut will print to /dev/pts/6
- close /dev/pts/6
- try an operation e.g. getting state with lxc-ls and lxc-ls will hang

Closes #1787.

Signed-off-by: LiFeng <lifeng68@huawei.com>
Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocleanup: remove unnecessary zeroing
Wolfgang Bumiller [Wed, 6 Sep 2017 09:45:03 +0000 (11:45 +0200)]
cleanup: remove unnecessary zeroing

The entire netdev is zeroed via memset() already. Unions and
all.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
6 years agonetwork: add missing checks for empty links
Wolfgang Bumiller [Wed, 6 Sep 2017 09:51:03 +0000 (11:51 +0200)]
network: add missing checks for empty links

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
6 years agoSwitch back to development
Stéphane Graber [Wed, 6 Sep 2017 02:32:18 +0000 (22:32 -0400)]
Switch back to development

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
6 years agochange version to 2.1.0 in configure.ac
Stéphane Graber [Wed, 6 Sep 2017 02:31:20 +0000 (22:31 -0400)]
change version to 2.1.0 in configure.ac

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
6 years agoMerge pull request #1789 from brauner/2017-09-06/fix_documentation
Stéphane Graber [Tue, 5 Sep 2017 23:19:45 +0000 (19:19 -0400)]
Merge pull request #1789 from brauner/2017-09-06/fix_documentation

doc: adapt + update

6 years agodoc: bugfixes
Christian Brauner [Tue, 5 Sep 2017 22:43:05 +0000 (00:43 +0200)]
doc: bugfixes

- lxc.id_map -> lxc.idmap
- document lxc.cgroup.dir

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agodoc: lxc.sgml.in
Christian Brauner [Tue, 5 Sep 2017 22:30:40 +0000 (00:30 +0200)]
doc: lxc.sgml.in

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMinimal kernel version is now 3.10
Stéphane Graber [Tue, 5 Sep 2017 20:55:27 +0000 (16:55 -0400)]
Minimal kernel version is now 3.10

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
6 years agoMerge pull request #1788 from brauner/2017-09-05/fix_tty_creation
Serge Hallyn [Tue, 5 Sep 2017 17:51:57 +0000 (12:51 -0500)]
Merge pull request #1788 from brauner/2017-09-05/fix_tty_creation

conf: bugfixes

6 years agoconf: fix userns_exec_1()
Christian Brauner [Tue, 5 Sep 2017 15:43:31 +0000 (17:43 +0200)]
conf: fix userns_exec_1()

A bit of context:
userns_exec_1() is only used to operate based on privileges for the user's own
{g,u}id on the host and for the container root's unmapped {g,u}id. This means
we require only to establish a mapping from:
- the container root {g,u}id as seen from the host -> user's host {g,u}id
- the container root -> some sub{g,u}id

This function however was buggy. It relied on some pointer pointing to the same
memory, namely specific idmap entries in the idmap list in the container's
in-memory configuration. However, due to a stupid mistake of mine, the pointers
to be compared pointed to freshly allocated memory. They were never pointing to
the intended memory locations. To reproduce what I'm talking about prior to
this commit simply place:

    chb:999:1000000000
    chb:999:1
    chb:1000:1

in /etc/sub{g,u}id then create a container which requests the following
idmappings:

    lxc.idmap = u 0 999 999
    lxc.idmap = g 0 999 1000000000

and start the container. What we *would expect* is for liblxc to establish the
following mapping:

    newuidmap <pid> 0 999 999
    newgidmap <pid> 0 999 1000000000

since all required mappings are present. Due to the buggy pointer comparisons
what happened was:

    newuidmap <pid> 0 999 999 0 999 999
    newgidmap <pid> 0 999 1000000000 0 999 1000000000

Let's fix this.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoconf: do not log uninitialized memory
Christian Brauner [Tue, 5 Sep 2017 11:46:53 +0000 (13:46 +0200)]
conf: do not log uninitialized memory

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoconf: fix tty creation
Christian Brauner [Tue, 5 Sep 2017 10:41:30 +0000 (12:41 +0200)]
conf: fix tty creation

We allocate pty {master,slave} file descriptors in the childs namespaces after
we have setup devpts. After we have sent the pty file descriptors to the parent
and set up the pty file descriptors under /dev/tty* and before we exec the init
binary we need to delete these file descriptors in the child. However, one of
my commits made the deletion occur before setting up the file descriptors under
/dev/tty*. This caused a failures when trying to attach to the container's ttys
since they werent actually configured although the file descriptors were
available in the in-memory configuration of the parent.
This commit reworks setting up tty such that deletion occurs after all setup
has been performed. The commit is actually minimal but needs to also move all
the functions into one place since they well now be called from
"lxc_create_ttys()".

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoconf: non-functional changes
Christian Brauner [Tue, 5 Sep 2017 10:19:28 +0000 (12:19 +0200)]
conf: non-functional changes

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #1785 from brauner/2017-09-05/record_idmap_in_log
Stéphane Graber [Tue, 5 Sep 2017 00:18:25 +0000 (20:18 -0400)]
Merge pull request #1785 from brauner/2017-09-05/record_idmap_in_log

conf: record idmap that gets written

6 years agoconf: record idmap that gets written
Christian Brauner [Tue, 5 Sep 2017 00:00:29 +0000 (02:00 +0200)]
conf: record idmap that gets written

This will serve us well in the future!

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #1784 from brauner/2017-09-05/document_handler_fields
Stéphane Graber [Mon, 4 Sep 2017 22:45:32 +0000 (18:45 -0400)]
Merge pull request #1784 from brauner/2017-09-05/document_handler_fields

start: document all handler fields

6 years agostart: document all handler fields
Christian Brauner [Mon, 4 Sep 2017 22:29:01 +0000 (00:29 +0200)]
start: document all handler fields

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #1783 from brauner/2017-09-04/criu_version
Stéphane Graber [Mon, 4 Sep 2017 19:52:44 +0000 (15:52 -0400)]
Merge pull request #1783 from brauner/2017-09-04/criu_version

criu: add cmp_version()

6 years agocriu: add cmp_version()
Federico Briata [Mon, 4 Sep 2017 10:16:35 +0000 (12:16 +0200)]
criu: add cmp_version()

We cannot use strcmp(). Otherwise we incorrectly report e.g. that criu 2.12.1
is less than 2.8.

Signed-off-by: Federico Briata <federico-pietro.briata@cnhind.com>
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #1771 from brauner/2017-08-30/remove_executable_bit_from_console.c
Stéphane Graber [Mon, 4 Sep 2017 16:54:59 +0000 (12:54 -0400)]
Merge pull request #1771 from brauner/2017-08-30/remove_executable_bit_from_console.c

console: non-functional change

6 years agoMerge pull request #1782 from brauner/2017-09-04/fix_tty_sending
Stéphane Graber [Mon, 4 Sep 2017 15:54:23 +0000 (11:54 -0400)]
Merge pull request #1782 from brauner/2017-09-04/fix_tty_sending

conf: don't send ttys when none are configured

6 years agostart: don't let data_sock users close the fd
Christian Brauner [Mon, 4 Sep 2017 12:48:37 +0000 (14:48 +0200)]
start: don't let data_sock users close the fd

It is bad style to close an fd inside a function which didn't create it. Let's
rather close it transparently in start.c.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoconf: don't send ttys when none are configured
Christian Brauner [Mon, 4 Sep 2017 12:35:02 +0000 (14:35 +0200)]
conf: don't send ttys when none are configured

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #1773 from brauner/2017-08-31/ensure_lxc_user_nic_tests_privilege_...
Serge Hallyn [Mon, 4 Sep 2017 02:17:43 +0000 (21:17 -0500)]
Merge pull request #1773 from brauner/2017-08-31/ensure_lxc_user_nic_tests_privilege_over_netns

network: improvements + bugfixes

6 years agostart: switch from SOCK_DGRAM to SOCK_STREAM
Christian Brauner [Sun, 3 Sep 2017 23:27:30 +0000 (01:27 +0200)]
start: switch from SOCK_DGRAM to SOCK_STREAM

Writes < PIPE_BUF will be atomic. PIPE_BUF is guaranteed to be 512 by POSIX and
Linux guarantess 4096. Nothing we send around goes over this limit.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoconf: send ttys in batches of 2
Christian Brauner [Sun, 3 Sep 2017 23:27:04 +0000 (01:27 +0200)]
conf: send ttys in batches of 2

I thought we could send all ttys at once but this limits the number of ttys
users can use because of iovec_len restrictions. So let's sent them in batches
of 2.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agolxc-user-nic: simplify
Christian Brauner [Sun, 3 Sep 2017 18:49:54 +0000 (20:49 +0200)]
lxc-user-nic: simplify

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agonetwork: remove allocation from lxc_mkifname()
Christian Brauner [Sun, 3 Sep 2017 18:37:21 +0000 (20:37 +0200)]
network: remove allocation from lxc_mkifname()

lxc_mkifname() really doesn't need to allocate any memory.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agonetwork: fix grammar
Christian Brauner [Sun, 3 Sep 2017 15:08:23 +0000 (17:08 +0200)]
network: fix grammar

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agonetwork: user send()/recv()
Christian Brauner [Sun, 3 Sep 2017 14:51:54 +0000 (16:51 +0200)]
network: user send()/recv()

Also move all functions to network.{c,h}.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agohandler: root -> am_root
Christian Brauner [Sun, 3 Sep 2017 14:44:41 +0000 (16:44 +0200)]
handler: root -> am_root

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>