]> git.ipfire.org Git - thirdparty/lxc.git/log
thirdparty/lxc.git
7 years agocgfsng: mount_cgroup_full()
Christian Brauner [Sat, 17 Feb 2018 18:35:03 +0000 (19:35 +0100)] 
cgfsng: mount_cgroup_full()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: cgfsng_chown()
Christian Brauner [Sat, 17 Feb 2018 18:31:16 +0000 (19:31 +0100)] 
cgfsng: cgfsng_chown()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: cgfsng_enter()
Christian Brauner [Sat, 17 Feb 2018 18:29:02 +0000 (19:29 +0100)] 
cgfsng: cgfsng_enter()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: cgfsng_create()
Christian Brauner [Sat, 17 Feb 2018 18:27:52 +0000 (19:27 +0100)] 
cgfsng: cgfsng_create()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: remove_path_for_hierarchy()
Christian Brauner [Sat, 17 Feb 2018 18:26:42 +0000 (19:26 +0100)] 
cgfsng: remove_path_for_hierarchy()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: create_path_for_hierarchy()
Christian Brauner [Sat, 17 Feb 2018 18:25:20 +0000 (19:25 +0100)] 
cgfsng: create_path_for_hierarchy()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: cg_unified_create_cgroup()
Christian Brauner [Sat, 17 Feb 2018 18:24:39 +0000 (19:24 +0100)] 
cgfsng: cg_unified_create_cgroup()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: recursive_destroy()
Christian Brauner [Sat, 17 Feb 2018 18:23:24 +0000 (19:23 +0100)] 
cgfsng: recursive_destroy()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: cgfsng_init()
Christian Brauner [Sat, 17 Feb 2018 18:22:31 +0000 (19:22 +0100)] 
cgfsng: cgfsng_init()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: cg_unified_get_current_cgroup()
Christian Brauner [Sat, 17 Feb 2018 18:21:30 +0000 (19:21 +0100)] 
cgfsng: cg_unified_get_current_cgroup()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: cg_is_pure_unified()
Christian Brauner [Sat, 17 Feb 2018 18:20:54 +0000 (19:20 +0100)] 
cgfsng: cg_is_pure_unified()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: cg_hybrid_init()
Christian Brauner [Sat, 17 Feb 2018 18:20:23 +0000 (19:20 +0100)] 
cgfsng: cg_hybrid_init()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: lxc_cgfsng_print_basecg_debuginfo()
Christian Brauner [Sat, 17 Feb 2018 18:18:08 +0000 (19:18 +0100)] 
cgfsng: lxc_cgfsng_print_basecg_debuginfo()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: lxc_cgfsng_print_hierarchies()
Christian Brauner [Sat, 17 Feb 2018 18:17:43 +0000 (19:17 +0100)] 
cgfsng: lxc_cgfsng_print_hierarchies()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: trim()
Christian Brauner [Sat, 17 Feb 2018 18:16:56 +0000 (19:16 +0100)] 
cgfsng: trim()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: must_append_string()
Christian Brauner [Sat, 17 Feb 2018 18:16:20 +0000 (19:16 +0100)] 
cgfsng: must_append_string()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: cg_hybrid_get_current_cgroup()
Christian Brauner [Sat, 17 Feb 2018 18:15:52 +0000 (19:15 +0100)] 
cgfsng: cg_hybrid_get_current_cgroup()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: controller_in_clist()
Christian Brauner [Sat, 17 Feb 2018 18:15:17 +0000 (19:15 +0100)] 
cgfsng: controller_in_clist()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: copy_to_eol()
Christian Brauner [Sat, 17 Feb 2018 18:14:48 +0000 (19:14 +0100)] 
cgfsng: copy_to_eol()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: cg_hybrid_get_mountpoint()
Christian Brauner [Sat, 17 Feb 2018 18:14:14 +0000 (19:14 +0100)] 
cgfsng: cg_hybrid_get_mountpoint()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: cg_hybrid_get_controllers()
Christian Brauner [Sat, 17 Feb 2018 18:12:51 +0000 (19:12 +0100)] 
cgfsng: cg_hybrid_get_controllers()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: all_controllers_found()
Christian Brauner [Sat, 17 Feb 2018 18:10:49 +0000 (19:10 +0100)] 
cgfsng: all_controllers_found()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: controller_found()
Christian Brauner [Sat, 17 Feb 2018 18:09:50 +0000 (19:09 +0100)] 
cgfsng: controller_found()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: controller_list_is_dup()
Christian Brauner [Sat, 17 Feb 2018 18:09:18 +0000 (19:09 +0100)] 
cgfsng: controller_list_is_dup()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: controller_lists_intersect()
Christian Brauner [Sat, 17 Feb 2018 18:08:38 +0000 (19:08 +0100)] 
cgfsng: controller_lists_intersect()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: cg_legacy_handle_cpuset_hierarchy()
Christian Brauner [Sat, 17 Feb 2018 18:07:56 +0000 (19:07 +0100)] 
cgfsng: cg_legacy_handle_cpuset_hierarchy()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: copy_parent_file()
Christian Brauner [Sat, 17 Feb 2018 18:04:05 +0000 (19:04 +0100)] 
cgfsng: copy_parent_file()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: cg_legacy_filter_and_set_cpus()
Christian Brauner [Sat, 17 Feb 2018 18:00:33 +0000 (19:00 +0100)] 
cgfsng: cg_legacy_filter_and_set_cpus()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: get_max_cpus()
Christian Brauner [Sat, 17 Feb 2018 17:55:15 +0000 (18:55 +0100)] 
cgfsng: get_max_cpus()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: lxc_cpumask_to_cpulist()
Christian Brauner [Sat, 17 Feb 2018 17:54:10 +0000 (18:54 +0100)] 
cgfsng: lxc_cpumask_to_cpulist()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: lxc_cpumask()
Christian Brauner [Sat, 17 Feb 2018 16:16:52 +0000 (17:16 +0100)] 
cgfsng: lxc_cpumask()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: get_hierarchy()
Christian Brauner [Sat, 17 Feb 2018 16:12:30 +0000 (17:12 +0100)] 
cgfsng: get_hierarchy()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: must_append_controller()
Christian Brauner [Sat, 17 Feb 2018 16:11:05 +0000 (17:11 +0100)] 
cgfsng: must_append_controller()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: string_in_list()
Christian Brauner [Sat, 17 Feb 2018 16:09:26 +0000 (17:09 +0100)] 
cgfsng: string_in_list()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: append_null_to_list()
Christian Brauner [Sat, 17 Feb 2018 16:08:58 +0000 (17:08 +0100)] 
cgfsng: append_null_to_list()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: add me to authors
Christian Brauner [Sat, 17 Feb 2018 16:08:06 +0000 (17:08 +0100)] 
cgfsng: add me to authors

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: move cg_legacy_must_prefix_named()
Christian Brauner [Sat, 17 Feb 2018 16:06:56 +0000 (17:06 +0100)] 
cgfsng: move cg_legacy_must_prefix_named()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: cg_legacy_must_prefix_named()
Christian Brauner [Sat, 17 Feb 2018 16:03:38 +0000 (17:03 +0100)] 
cgfsng: cg_legacy_must_prefix_named()

s/must_prefix_named/cg_legacy_must_prefix_named/

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: free_string_list()
Christian Brauner [Sat, 17 Feb 2018 15:51:03 +0000 (16:51 +0100)] 
cgfsng: free_string_list()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: fully document remaining variables
Christian Brauner [Sat, 17 Feb 2018 15:48:08 +0000 (16:48 +0100)] 
cgfsng: fully document remaining variables

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: fully document struct cgfsng_handler_data
Christian Brauner [Sat, 17 Feb 2018 15:45:01 +0000 (16:45 +0100)] 
cgfsng: fully document struct cgfsng_handler_data

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: fully document struct hierarchy
Christian Brauner [Sat, 17 Feb 2018 15:37:35 +0000 (16:37 +0100)] 
cgfsng: fully document struct hierarchy

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: order includes
Christian Brauner [Sat, 17 Feb 2018 15:32:16 +0000 (16:32 +0100)] 
cgfsng: order includes

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agoconfile: add "force" to cgroup:{mixed,ro,rw}
Shukui Yang [Fri, 16 Feb 2018 04:16:40 +0000 (23:16 -0500)] 
confile: add "force" to cgroup:{mixed,ro,rw}

This lets users specify

        lxc.mount.auto = cgroup:mixed:force
or
        lxc.mount.auto = cgroup:ro:force
or
        lxc.mount.auto = cgroup:rw:force

When cgroup namespaces are supported LXC will not mount cgroups for the
container since it assumes that the init system will mount cgroups itself if it
wants to. This assumption already broke when users wanted to run containers
without CAP_SYS_ADMIN. For example, systemd based containers wouldn't start
since systemd needs to mount cgroups (named systemd hierarchy for legacy
cgroups and the unified hierarchy for unified cgroups) to track processes. This
problem was solved by detecting whether the container had CAP_SYS_ADMIN. If it
didn't we performed the cgroup mounts for it.
However, there are more cases when we should be able to mount cgroups for the
container when cgroup namespaces are supported:
- init systems not mounting cgroups themselves:
  A init system that doesn't mount cgroups would not have cgroups available
  especially when combined with custom LSM profiles to prevent cgroup
  {u}mount()ing inside containers.
- application containers:
  Application containers will usually not mount by cgroups themselves.
- read-only cgroups:
  It is useful to be able to mount cgroups read-only to e.g. prevent
  changing cgroup limits from inside the container while at the same time
  allowing the applications to perform introspection on their own cgroups. This
  again is mostly useful for application containers. System containers running
  systemd will usually not work correctly when cgroups are mounted read-only.
To be fair, all of those use-cases could be covered by custom hooks or
lxc.mount.entry entries but exposing it through lxc.mount.auto takes care of
setting correct mount options and adding the necessary logic to e.g. mount
filesystem read-only correctly.

Currently we only extend this to cgroup:{mixed,ro,rw} but technically there's
no reason not to enable the same behavior for cgroup-full:{mixed,ro,rw} as
well. If someone requests this we can simply treat it as a bug and add "force"
for cgroup-full.

Replaces #2136.

Signed-off-by: Shukui Yang <yangshukui@huawei.com>
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agoREADME: add coverity
Christian Brauner [Sat, 17 Feb 2018 12:07:14 +0000 (13:07 +0100)] 
README: add coverity

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agoconsole: ensure that fd is marked EBADF
Christian Brauner [Fri, 16 Feb 2018 23:04:30 +0000 (00:04 +0100)] 
console: ensure that fd is marked EBADF

If the handler closes the file descriptor for the peer or master fd it is
crucial that we mark it as -EBADF. This will prevent lxc_console_delete()
from calling close() on an already closed file descriptor again. I've
observed the double close in the attach code.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agostart: don't call close on invalid file descriptor
Christian Brauner [Fri, 16 Feb 2018 22:18:54 +0000 (23:18 +0100)] 
start: don't call close on invalid file descriptor

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agoutils: fix lxc_p{close,open}()
Christian Brauner [Fri, 16 Feb 2018 19:02:44 +0000 (20:02 +0100)] 
utils: fix lxc_p{close,open}()

If a file descriptor fd is opened by fdopen() and associated with a stream f
will **not** have been dup()ed. This means that fclose(f) will also close the
fd. So never call close(fd) after fdopen(fd) succeeded.
This fixes a double close() Stéphane and I observed when debugging on aarch64
and armf.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agotests: remove lxc-test-ubuntu
Christian Brauner [Fri, 16 Feb 2018 14:56:24 +0000 (15:56 +0100)] 
tests: remove lxc-test-ubuntu

This is really taking a long time for not a lot of benefit.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agoCODING_STYLE: add section for str{n}cmp()
Christian Brauner [Fri, 16 Feb 2018 14:24:19 +0000 (15:24 +0100)] 
CODING_STYLE: add section for str{n}cmp()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgroups: use correct mask for chmod()
Christian Brauner [Wed, 14 Feb 2018 23:28:42 +0000 (00:28 +0100)] 
cgroups: use correct mask for chmod()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agoCODING_STYLE: add CODING_STYLE.md
Christian Brauner [Wed, 14 Feb 2018 12:04:59 +0000 (13:04 +0100)] 
CODING_STYLE: add CODING_STYLE.md

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agoCONTRIBUTING: update
Christian Brauner [Wed, 14 Feb 2018 12:04:48 +0000 (13:04 +0100)] 
CONTRIBUTING: update

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: simplifications and fixes
Christian Brauner [Tue, 13 Feb 2018 20:00:46 +0000 (21:00 +0100)] 
cgfsng: simplifications and fixes

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agolxclock: remove pthread_atfork_handlers
Christian Brauner [Sat, 10 Feb 2018 22:25:18 +0000 (23:25 +0100)] 
lxclock: remove pthread_atfork_handlers

They shouldn't be needed anymore.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agoconf: support mount propagation
Yifeng Tan [Mon, 12 Feb 2018 12:01:32 +0000 (20:01 +0800)] 
conf: support mount propagation

Closes #810.

Signed-off-by: Yifeng Tan <tanyifeng1@huawei.com>
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agoFix lxc-console hang
LiFeng [Mon, 12 Feb 2018 12:22:47 +0000 (07:22 -0500)] 
Fix lxc-console hang

The variable 'descr' is mistakenly covered with 'descr_console'.

Signed-off-by: LiFeng <lifeng68@huawei.com>
7 years agoModify .gitignore
LiFeng [Mon, 12 Feb 2018 14:45:22 +0000 (09:45 -0500)] 
Modify .gitignore

add:
src/lxc/cmd/lxc-checkconfig
src/lxc/cmd/lxc-update-config

Signed-off-by: LiFeng <lifeng68@huawei.com>
7 years agoconsole: they are really not necessary
Christian Brauner [Sat, 10 Feb 2018 11:54:31 +0000 (12:54 +0100)] 
console: they are really not necessary

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agofix userns helper error handling
Tycho Andersen [Fri, 9 Feb 2018 13:26:31 +0000 (13:26 +0000)] 
fix userns helper error handling

In both of these cases if there is actually an error, we won't close the
pipe and the api call will hang. Instead, let's be sure to close the pipe
before waiting, so that it doesn't hang.

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
7 years agocoverity: #1425971
Christian Brauner [Thu, 8 Feb 2018 15:06:31 +0000 (16:06 +0100)] 
coverity: #1425971

Dereference after null check

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocoverity: #1426734
Christian Brauner [Thu, 8 Feb 2018 14:42:16 +0000 (15:42 +0100)] 
coverity: #1426734

Argument cannot be negative

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocoverity: #1429139
Christian Brauner [Thu, 8 Feb 2018 14:31:59 +0000 (15:31 +0100)] 
coverity: #1429139

Resource leak

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agoRestore most cases of am_guest_unpriv
Serge Hallyn [Thu, 8 Feb 2018 19:04:23 +0000 (13:04 -0600)] 
Restore most cases of am_guest_unpriv

The only cases where we really need to be privileged with respect
to the host is when we are trying to mknod, and in some cases
to do with a physical network device.  This patch leaves the
detection of the network device cases as a TODO.

This should fix the currently broken case of starting a privileged
container with at least one veth nic, nested inside an unprivileged
container.

Cc: Tycho Andersen <tycho@tycho.ws>
Signed-off-by: Serge Hallyn <shallyn@cisco.com>
7 years agodefine am_guest_unpriv
Serge Hallyn [Thu, 8 Feb 2018 18:06:39 +0000 (12:06 -0600)] 
define am_guest_unpriv

Sometimes we want to know whether we are privileged wrt our
namespaces, and sometimes we want to know whether we are priv
wrt init_user_ns.

Signed-off-by: Serge Hallyn <shallyn@cisco.com>
7 years agocgfsng: add required remount flags
Christian Brauner [Thu, 8 Feb 2018 10:36:41 +0000 (11:36 +0100)] 
cgfsng: add required remount flags

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9566d6742852c527bf5af38af5cbb878dad75705

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agolsm: fix missing @ in function documentation
Marcos Paulo de Souza [Wed, 7 Feb 2018 15:06:43 +0000 (13:06 -0200)] 
lsm: fix missing @ in function documentation

Signed-off-by: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
7 years agoselinux: simplify check for default label
Marcos Paulo de Souza [Wed, 7 Feb 2018 14:51:38 +0000 (12:51 -0200)] 
selinux: simplify check for default label

Signed-off-by: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgroups: add check for lxc.cgroup.use
Marcos Paulo de Souza [Thu, 8 Feb 2018 01:55:13 +0000 (23:55 -0200)] 
cgroups: add check for lxc.cgroup.use

Closes #870.

Signed-off-by: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
7 years agotemplates: CentOS fixes
Christian Brauner [Wed, 7 Feb 2018 10:39:19 +0000 (11:39 +0100)] 
templates: CentOS fixes

Issues fixed:
- lxc-centos died about a missing /run directory
- lxc-centos complained about some config files it couldn't modify
- the new container got stuck at startup time for a minute
  (literally), waiting for systemd-remount-fs startup script

Of course it still works for RHEL 6, CentOS 6 and 7 as well. I did not
verify earlier CentOS or RHEL releases.

Signed-off-by: Harald Dunkel <harald.dunkel@aixigo.de>
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: non-functional changes
Christian Brauner [Wed, 7 Feb 2018 10:27:57 +0000 (11:27 +0100)] 
cgfsng: non-functional changes

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgfsng: do MS_REMOUNT
LiFeng [Wed, 7 Feb 2018 16:39:59 +0000 (11:39 -0500)] 
cgfsng: do MS_REMOUNT

Perform MS_REMOUNT on mounts with MS_RDONLY.

Signed-off-by: LiFeng <lifeng68@huawei.com>
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agoattach: non-functional changes
Christian Brauner [Wed, 7 Feb 2018 10:13:48 +0000 (11:13 +0100)] 
attach: non-functional changes

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agoattach: set the container's environment variables
l00415420 [Wed, 7 Feb 2018 12:39:28 +0000 (07:39 -0500)] 
attach: set the container's environment variables

Set the same environment variables that were used when starting the container
when attaching to the container.

Signed-off-by: LiFeng <lifeng68@huawei.com>
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgroups: more consistent naming
Christian Brauner [Wed, 31 Jan 2018 16:09:13 +0000 (17:09 +0100)] 
cgroups: more consistent naming

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgroups: handle limits on the unified hierarchy
Christian Brauner [Wed, 31 Jan 2018 15:45:04 +0000 (16:45 +0100)] 
cgroups: handle limits on the unified hierarchy

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgroups: cgfsng_set: handle unified hierarchy
Christian Brauner [Wed, 31 Jan 2018 15:42:19 +0000 (16:42 +0100)] 
cgroups: cgfsng_set: handle unified hierarchy

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgroups: cgfsng_get: handle unified hierarchy
Christian Brauner [Wed, 31 Jan 2018 15:41:53 +0000 (16:41 +0100)] 
cgroups: cgfsng_get: handle unified hierarchy

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgroups: cgfsng_attach: handle unified hierarchy
Christian Brauner [Wed, 31 Jan 2018 15:38:55 +0000 (16:38 +0100)] 
cgroups: cgfsng_attach: handle unified hierarchy

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgroups: cgfsng_create: handle unified hierarchy
Christian Brauner [Wed, 31 Jan 2018 15:33:17 +0000 (16:33 +0100)] 
cgroups: cgfsng_create: handle unified hierarchy

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agocgroups: get controllers on the unified hierarchy
Christian Brauner [Wed, 31 Jan 2018 15:25:11 +0000 (16:25 +0100)] 
cgroups: get controllers on the unified hierarchy

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agolxc.init: ignore SIGHUP
Tycho Andersen [Mon, 5 Feb 2018 14:19:25 +0000 (14:19 +0000)] 
lxc.init: ignore SIGHUP

see comment for details.

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
7 years agomonitor: send SIGTERM to the container when SIGHUP is received
Tycho Andersen [Mon, 5 Feb 2018 14:17:48 +0000 (14:17 +0000)] 
monitor: send SIGTERM to the container when SIGHUP is received

For the ->execute() case, we want to make sure the application dies when
SIGHUP is received. The next patch will ignore SIGHUP in the lxc monitor,
because tasks inside the container send SIGHUP to init to have it reload
its config sometimes, and we don't want to do that with init.lxc, since it
might actually kill the container if it forwards SIGHUP to the child and
the child can't handle it.

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
7 years agolxc-init: use SIGKILL after alarm timeout
Tycho Andersen [Mon, 5 Feb 2018 14:13:18 +0000 (14:13 +0000)] 
lxc-init: use SIGKILL after alarm timeout

d76e3e1 inadvertently switched the alarm timeout from sigterm to sigkill.
We really want sigkill here, so let's bring it back.

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
7 years agodebian: We must use iproute on wheezy
Stéphane Graber [Thu, 1 Feb 2018 14:02:25 +0000 (15:02 +0100)] 
debian: We must use iproute on wheezy

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
7 years agolsm: do not #ifdefine
Christian Brauner [Thu, 1 Feb 2018 12:14:36 +0000 (13:14 +0100)] 
lsm: do not #ifdefine

Since we stopped linking against AppArmor we can now remove the conditional
compilation.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agotools: make "-n" optional
Christian Brauner [Sat, 27 Jan 2018 13:43:14 +0000 (14:43 +0100)] 
tools: make "-n" optional

This lets users use the tools with "lxc-* -n <container-name>" or
"lxc-* <container-name>".

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agodebian: Use iproute2 instead of iproute
Stéphane Graber [Sat, 27 Jan 2018 05:33:07 +0000 (00:33 -0500)] 
debian: Use iproute2 instead of iproute

The package has pretty much always been iproute2 with iproute being an
alias for it, the alias is now gone so we need to use iproute2.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
7 years agobetter unprivileged detection
Tycho Andersen [Fri, 26 Jan 2018 21:21:51 +0000 (21:21 +0000)] 
better unprivileged detection

In particular, if we are already in a user namespace we are unprivileged,
and doing things like moving the physical nics back to the host netns won't
work. Let's do the same thing LXD does if euid == 0: inspect
/proc/self/uid_map and see what that says.

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
7 years agobetter check for lock dir
Tycho Andersen [Fri, 26 Jan 2018 17:43:12 +0000 (17:43 +0000)] 
better check for lock dir

Consider the case where we're running in a user namespace but in the host's
mount ns with the host's filesystem (something like
lxc-usernsexec ... lxc-execute ...), in this case, we'll be euid 0, but we
can't actually write to /run. Let's improve this locking check to make sure
we can actually write to /run before we decide to actually use it as our
locking dir.

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
7 years ago[cgfsng] show wrong errno
duguhaotian [Fri, 26 Jan 2018 13:07:58 +0000 (21:07 +0800)] 
[cgfsng] show wrong errno

lxc_cgroup_set_data: h = get_hierarchy(controller);
if h is NULL, now errno is old, it donot set new one.
And then,
cgfsng_setup_limits:

    if (lxc_cgroup_set_data(cg->subsystem, cg->value, d)) {
if (do_devices && (errno == EACCES ||
errno == EPERM)) {
WARN("Error setting %s to %s for %s",
cg->subsystem, cg->value,
d->name);
continue;
}
SYSERROR("Error setting %s to %s for
 %s",
 cg->subsystem, cg->value,
 d->name);
goto out;
}

SYSERROR will show old errno, make me confused.

Signed-off-by: duguhaotian <duguhaotian@gmail.com>
7 years agonetwork.c: Remove ip_forward_set and callers
Marcos Paulo de Souza [Tue, 23 Jan 2018 00:04:03 +0000 (22:04 -0200)] 
network.c: Remove ip_forward_set and callers

The last user of ip_forward_set, lxc_ip_forward_on and
lxc_ip_forward_off was in 2009:

commit 92d385229be040cf034ac6efd9405b7bdfe06a3e
Author: Daniel Lezcano <dlezcano@fr.ibm.com>
Date:   Thu Oct 22 15:33:40 2009 +0200

    remove test directory

These functions are not called anymore.

Signed-off-by: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
7 years agoautotools: do not link against libapparmor
Christian Brauner [Mon, 22 Jan 2018 11:14:21 +0000 (12:14 +0100)] 
autotools: do not link against libapparmor

Since we write the label directly without going through the AppArmor API it
doesn't make sense to link against it.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agoapparmor: do not call aa_change_profile()
Christian Brauner [Mon, 22 Jan 2018 11:02:44 +0000 (12:02 +0100)] 
apparmor: do not call aa_change_profile()

We can simply write the label ourselves. There's no magic happening.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agolsm: add lsm_process_label_set_at()
Christian Brauner [Mon, 22 Jan 2018 10:54:21 +0000 (11:54 +0100)] 
lsm: add lsm_process_label_set_at()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agolsm: add lsm_process_label_fd_get()
Christian Brauner [Mon, 22 Jan 2018 09:54:38 +0000 (10:54 +0100)] 
lsm: add lsm_process_label_fd_get()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agolsm: non-functional changes
Christian Brauner [Mon, 22 Jan 2018 09:48:56 +0000 (10:48 +0100)] 
lsm: non-functional changes

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
7 years agoFix comments and add check in lxc_poll.
LiFeng [Mon, 22 Jan 2018 11:13:52 +0000 (06:13 -0500)] 
Fix comments and add check in lxc_poll.

Add check whether handler->conf->console.path is 'none'

Signed-off-by: LiFeng <lifeng68@huawei.com>
7 years agoModify .gitignore
LiFeng [Mon, 22 Jan 2018 12:48:21 +0000 (07:48 -0500)] 
Modify .gitignore

Add:
src/tests/lxc-test-api-reboot
src/tests/lxc-test-criu-check-feature
src/tests/lxc-test-raw-clone
src/tests/lxc-test-share-ns
src/tests/lxc-test-state-server

Signed-off-by: LiFeng <lifeng68@huawei.com>
7 years agostart: fix mainloop cleanup goto statements
Christian Brauner [Sun, 21 Jan 2018 12:55:42 +0000 (13:55 +0100)] 
start: fix mainloop cleanup goto statements

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