]> git.ipfire.org Git - thirdparty/lxc.git/log
thirdparty/lxc.git
5 years agosrc/lxc/raw_syscalls.c: fix sparc assembly stable-3.0
Fabrice Fontaine [Fri, 28 Feb 2020 16:35:42 +0000 (17:35 +0100)] 
src/lxc/raw_syscalls.c: fix sparc assembly

Build of lxc 3.2.1 fails with ultrasparc on:

raw_syscalls.c: In function ‘lxc_raw_clone’:
raw_syscalls.c:66:3: error: invalid 'asm': invalid operand output code
   asm volatile(
   ^~~

Issue has been added with commit
b52e8e68a61866da2af86e85905ec850f8a8b7fc which added %g1 instead of %%g1

Fixes:
 - http://autobuild.buildroot.org/results/17c2319850f02f24da6fbef9656c07f86fdc5a3a

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
5 years agocgroups: honor lxc.cgroup.pattern if set explicitly II
Christian Brauner [Thu, 27 Feb 2020 22:02:31 +0000 (23:02 +0100)] 
cgroups: honor lxc.cgroup.pattern if set explicitly II

Link: https://discuss.linuxcontainers.org/t/lxc-cgroup-pattern-is-not-being-honored
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups: honor lxc.cgroup.pattern if set explicitly
Christian Brauner [Thu, 27 Feb 2020 22:02:31 +0000 (23:02 +0100)] 
cgroups: honor lxc.cgroup.pattern if set explicitly

Link: https://discuss.linuxcontainers.org/t/lxc-cgroup-pattern-is-not-being-honored
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups: remove unused method and cleanup cgroup_exit()
Christian Brauner [Tue, 25 Feb 2020 12:36:51 +0000 (13:36 +0100)] 
cgroups: remove unused method and cleanup cgroup_exit()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agotree-wide: improve setgroups() dropping
Christian Brauner [Wed, 12 Feb 2020 23:16:15 +0000 (00:16 +0100)] 
tree-wide: improve setgroups() dropping

Drop groups before we change to userns root.

Reported-by: Teddy Reed <teddy.reed@gmail.com>
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agolxclock: fix a small memory leak
Tycho Andersen [Mon, 10 Feb 2020 15:14:33 +0000 (08:14 -0700)] 
lxclock: fix a small memory leak

if (!name), we allocate an unnamed semaphore, but if we then fail to
allocate/create the lock, we don't free this semaphore, and we just leak
it.

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
5 years agocontainer.conf: Document that order is important in config_jump_table
Maximilian Blenk [Wed, 5 Feb 2020 18:25:53 +0000 (19:25 +0100)] 
container.conf: Document that order is important in config_jump_table

Add a comment that documents that more specific options of a
namespace have to be added above more generic options in
config_jump_table.

Signed-off-by: Maximilian Blenk <Maximilian.Blenk@bmw.de>
5 years agocontainer.conf: Fix off by 2 in option parsing
Maximilian Blenk [Wed, 5 Feb 2020 18:17:51 +0000 (19:17 +0100)] 
container.conf: Fix off by 2 in option parsing

This commit fixes a off by 2 in config option parsing
(due to missing parenthesis). The error occurs if for instance
lxc.net.0.type is parsed. In that case, the .0 is removed from the
string. However, due to the missing parenthesis, the null terminating
character is off by two which means the modified config option would
be lxc.net.typepe instead of lxc.net.type.

Signed-off-by: Maximilian Blenk <Maximilian.Blenk@bmw.de>
5 years agocgroups: fix default cgroup pattern
Kirill Petrov [Mon, 27 Jan 2020 08:51:36 +0000 (11:51 +0300)] 
cgroups: fix default cgroup pattern

Signed-off-by: Kirill Petrov <yakutskkirill@mail.ru>
5 years agostart: fix container killing logic
Christian Brauner [Thu, 16 Jan 2020 17:02:35 +0000 (18:02 +0100)] 
start: fix container killing logic

We need to account for the case where pidfd's are not supported by the kernel
in question.

Closes: #3254
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agotest: increase timeout for api reboot tests
Christian Brauner [Tue, 14 Jan 2020 12:50:45 +0000 (13:50 +0100)] 
test: increase timeout for api reboot tests

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroup.c: fix memory leak at cgroup init failed
LiFeng [Tue, 14 Jan 2020 09:17:13 +0000 (04:17 -0500)] 
cgroup.c: fix memory leak at cgroup init failed

Signed-off-by: LiFeng <lifeng68@huawei.com>
5 years agonetwork: fix network device removal
Christian Brauner [Thu, 9 Jan 2020 17:08:48 +0000 (18:08 +0100)] 
network: fix network device removal

We can't delete by netdev->ifindex since that's the ifindex of the device in
the container, not on the host. The correct thing is done below.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agotests: log api reboot test failures
Christian Brauner [Thu, 9 Jan 2020 16:10:14 +0000 (17:10 +0100)] 
tests: log api reboot test failures

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agonetwork: fix typ and formatting in comment
Christian Brauner [Thu, 9 Jan 2020 15:28:02 +0000 (16:28 +0100)] 
network: fix typ and formatting in comment

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agostart: handle kernel header and kernel incompatability
Christian Brauner [Thu, 9 Jan 2020 11:25:30 +0000 (12:25 +0100)] 
start: handle kernel header and kernel incompatability

We might e.g. be compiled in a container with old kernel headers. In this
scenario CLONE_PIDFD will work but pidfd_send_signal() might not be detected
because __NR_pidfd_send_signal is not defined because the kernel headers don't
match the kernel version.

This explains and fixes test-suite hangs on Jenkins I've recently debugged.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agotests: timeout after 60 seconds
Christian Brauner [Thu, 9 Jan 2020 11:28:54 +0000 (12:28 +0100)] 
tests: timeout after 60 seconds

That should be more than enough to reboot.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agomainloop: add missing \n
Christian Brauner [Thu, 9 Jan 2020 11:28:19 +0000 (12:28 +0100)] 
mainloop: add missing \n

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agostart: remove procfs pidfd support
Christian Brauner [Wed, 25 Dec 2019 17:50:53 +0000 (18:50 +0100)] 
start: remove procfs pidfd support

We'll only rely on proper anon-inode based pidfd support in the future.
There's no good reason to use the procfs fallback. All the fancy features we
might want to use are only available with anon-inode pidfds.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agoSuppress useless udhcpc directory
Rachid Koucha [Fri, 3 Jan 2020 09:48:41 +0000 (10:48 +0100)] 
Suppress useless udhcpc directory

The udhcpc directory is created with "mkdir -p" at the place dynamically specified by "busybox udhcpc --help".

Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
5 years agoAdaptation to latest busybox
Rachid Koucha [Fri, 27 Dec 2019 07:49:00 +0000 (08:49 +0100)] 
Adaptation to latest busybox

In busybox 1.30, the help of udhcpc for "-s" option changed:
--> busybox v1.27.2: -s,--script PROG Run PROG at DHCP events (default /usr/share/udhcpc/default.script)
--> busybox v1.30.1: -s PROG Run PROG at DHCP events (default /etc/udhcpc/default.script)
So, I changed the command line which extracts the script name to make it work for both versions

Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
5 years agoWord repetition in comment
Rachid Koucha [Thu, 26 Dec 2019 10:51:54 +0000 (11:51 +0100)] 
Word repetition in comment

create_run_template(): Double "will mount" in a comment

Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
5 years agocmd: fix shebang
vikaig [Mon, 23 Dec 2019 21:31:53 +0000 (23:31 +0200)] 
cmd: fix shebang

Signed-off-by: vikaig <vikaig99@gmail.com>
5 years agotravis: enable -fsanitize=undefined
Christian Brauner [Mon, 23 Dec 2019 19:12:57 +0000 (20:12 +0100)] 
travis: enable -fsanitize=undefined

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agofd: only add valid fd to mainloop
dongxinhua [Sat, 21 Dec 2019 09:44:40 +0000 (17:44 +0800)] 
fd: only add valid fd to mainloop

Signed-off-by: dongxinhua <dongxinhua@huawei.com>
5 years agoseccomp: support s390 seccomp
dongxinhua [Tue, 17 Dec 2019 01:10:04 +0000 (09:10 +0800)] 
seccomp: support s390 seccomp

Signed-off-by: dongxinhua <dongxinhua@huawei.com>
5 years agocgroups/cgfsng: do not prematurely close file descriptors
Christian Brauner [Thu, 12 Dec 2019 21:04:20 +0000 (22:04 +0100)] 
cgroups/cgfsng: do not prematurely close file descriptors

When adding the new improved cgroup setup logic I didn't account for the fact
that we need the hierarchy fds up until chown. Add a dedicated cleanup method
to fix this:

lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, , 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, tasks, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, cgroup.procs, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, , 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, tasks, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, cgroup.procs, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, , 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, tasks, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, cgroup.procs, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, , 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, tasks, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, cgroup.procs, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, , 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, tasks, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, cgroup.procs, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, , 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, tasks, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, cgroup.procs, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, , 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, tasks, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, cgroup.procs, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, , 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, tasks, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, cgroup.procs, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, , 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, tasks, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, cgroup.procs, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, , 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, tasks, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, cgroup.procs, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, , 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, tasks, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, cgroup.procs, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, , 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, tasks, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )
lxc b1 20191212205052.712 WARN     cgfsng - cgroups/cgfsng.c:fchowmodat:1481 - Bad file descriptor - Failed to fchownat(-9, cgroup.procs, 1000000000, 0, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW )

Closes #3228.
Fixes: 1973b62aab41 ("cgroups/cgfsng: improve cgroup creation and removal")
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: improve cgroup creation and removal
Christian Brauner [Wed, 11 Dec 2019 06:37:36 +0000 (07:37 +0100)] 
cgroups/cgfsng: improve cgroup creation and removal

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgroup removal
Christian Brauner [Tue, 10 Dec 2019 20:00:59 +0000 (21:00 +0100)] 
cgroups/cgfsng: rework cgroup removal

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework legacy cpuset handling
Christian Brauner [Tue, 10 Dec 2019 17:15:30 +0000 (18:15 +0100)] 
cgroups/cgfsng: rework legacy cpuset handling

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroupfs/cgfsng: pass cgroup to cg_legacy_handle_cpuset_hierarchy() as const char *
Christian Brauner [Tue, 10 Dec 2019 17:07:47 +0000 (18:07 +0100)] 
cgroupfs/cgfsng: pass cgroup to cg_legacy_handle_cpuset_hierarchy() as const char *

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups: use explicit unsigned type for bitfield
Christian Brauner [Tue, 10 Dec 2019 11:27:33 +0000 (12:27 +0100)] 
cgroups: use explicit unsigned type for bitfield

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups: flatten hierarchy
Christian Brauner [Mon, 9 Dec 2019 22:14:37 +0000 (23:14 +0100)] 
cgroups: flatten hierarchy

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agofile_utils: use O_NOCTTY | O_NOFOLLOW
Christian Brauner [Mon, 9 Dec 2019 10:20:29 +0000 (11:20 +0100)] 
file_utils: use O_NOCTTY | O_NOFOLLOW

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/devices: enable devpath semantics for cgroup2 device controller
Christian Brauner [Sun, 8 Dec 2019 00:58:24 +0000 (01:58 +0100)] 
cgroups/devices: enable devpath semantics for cgroup2 device controller

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: replace lxc_write_file()
Christian Brauner [Sun, 8 Dec 2019 00:17:33 +0000 (01:17 +0100)] 
cgroups/cgfsng: replace lxc_write_file()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: cgfsng_devices_activate()
Christian Brauner [Sat, 7 Dec 2019 23:43:40 +0000 (00:43 +0100)] 
cgroups/cgfsng: cgfsng_devices_activate()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgfsng_nrtasks()
Christian Brauner [Sat, 7 Dec 2019 23:41:36 +0000 (00:41 +0100)] 
cgroups/cgfsng: rework cgfsng_nrtasks()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgfsng_mount()
Christian Brauner [Sat, 7 Dec 2019 23:40:29 +0000 (00:40 +0100)] 
cgroups/cgfsng: rework cgfsng_mount()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgfsng_chown()
Christian Brauner [Sat, 7 Dec 2019 23:38:16 +0000 (00:38 +0100)] 
cgroups/cgfsng: rework cgfsng_chown()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgfsng_attach()
Christian Brauner [Sat, 7 Dec 2019 23:35:19 +0000 (00:35 +0100)] 
cgroups/cgfsng: rework cgfsng_attach()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgfsng_setup_limits()
Christian Brauner [Sat, 7 Dec 2019 23:33:24 +0000 (00:33 +0100)] 
cgroups/cgfsng: rework cgfsng_setup_limits()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgfsng_setup_limits_legacy()
Christian Brauner [Sat, 7 Dec 2019 23:27:22 +0000 (00:27 +0100)] 
cgroups/cgfsng: rework cgfsng_setup_limits_legacy()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgfsng_{get,set}()
Christian Brauner [Sat, 7 Dec 2019 23:24:20 +0000 (00:24 +0100)] 
cgroups/cgfsng: rework cgfsng_{get,set}()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgfsng_unfreeze()
Christian Brauner [Sat, 7 Dec 2019 23:20:02 +0000 (00:20 +0100)] 
cgroups/cgfsng: rework cgfsng_unfreeze()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgfsng_get_hierarchies()
Christian Brauner [Sat, 7 Dec 2019 23:18:52 +0000 (00:18 +0100)] 
cgroups/cgfsng: rework cgfsng_get_hierarchies()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgfsng_num_hierarchies()
Christian Brauner [Sat, 7 Dec 2019 23:17:58 +0000 (00:17 +0100)] 
cgroups/cgfsng: rework cgfsng_num_hierarchies()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgfsng_escape()
Christian Brauner [Sat, 7 Dec 2019 23:16:59 +0000 (00:16 +0100)] 
cgroups/cgfsng: rework cgfsng_escape()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgfsng_payload_enter()
Christian Brauner [Sat, 7 Dec 2019 23:13:14 +0000 (00:13 +0100)] 
cgroups/cgfsng: rework cgfsng_payload_enter()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgfsng_payload_create()
Christian Brauner [Sat, 7 Dec 2019 23:06:59 +0000 (00:06 +0100)] 
cgroups/cgfsng: rework cgfsng_payload_create()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agotree-wide: s/__unused/__lxc_unused/g
Christian Brauner [Sat, 7 Dec 2019 22:47:16 +0000 (23:47 +0100)] 
tree-wide: s/__unused/__lxc_unused/g

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgroup attach
Christian Brauner [Sat, 7 Dec 2019 21:19:20 +0000 (22:19 +0100)] 
cgroups/cgfsng: rework cgroup attach

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: don't dereference NULL-pointer
Christian Brauner [Sat, 7 Dec 2019 21:12:00 +0000 (22:12 +0100)] 
cgroups/cgfsng: don't dereference NULL-pointer

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: log chown_cgroup_wrapper()
Christian Brauner [Sat, 7 Dec 2019 21:04:04 +0000 (22:04 +0100)] 
cgroups/cgfsng: log chown_cgroup_wrapper()

It's becoming more important on cgroup2 to properly delegate cgroups.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgroup2 unprivileged delegation
Christian Brauner [Sat, 7 Dec 2019 20:51:58 +0000 (21:51 +0100)] 
cgroups/cgfsng: rework cgroup2 unprivileged delegation

We accidently checked files to delegate for privileged container and not for
unprivileged containers in the pure unified case. Fix that and clean up the
delegation file parsing.

Closes #3206.
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgfsng_{monitor,payload}_delegate_controllers()
Christian Brauner [Sat, 7 Dec 2019 17:17:48 +0000 (18:17 +0100)] 
cgroups/cgfsng: rework cgfsng_{monitor,payload}_delegate_controllers()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgfsng_monitor_enter()
Christian Brauner [Sat, 7 Dec 2019 17:13:54 +0000 (18:13 +0100)] 
cgroups/cgfsng: rework cgfsng_monitor_enter()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgfsng_monitor_create()
Christian Brauner [Sat, 7 Dec 2019 17:12:30 +0000 (18:12 +0100)] 
cgroups/cgfsng: rework cgfsng_monitor_create()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgfsng_monitor_destroy()
Christian Brauner [Sat, 7 Dec 2019 17:08:25 +0000 (18:08 +0100)] 
cgroups/cgfsng: rework cgfsng_monitor_destroy()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: rework cgfsng_payload_destroy()
Christian Brauner [Sat, 7 Dec 2019 17:04:17 +0000 (18:04 +0100)] 
cgroups/cgfsng: rework cgfsng_payload_destroy()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agolog: remove unused compiler attribute
Christian Brauner [Sat, 7 Dec 2019 16:40:32 +0000 (17:40 +0100)] 
log: remove unused compiler attribute

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agostart: replace compiler attributes
Christian Brauner [Sat, 7 Dec 2019 16:40:05 +0000 (17:40 +0100)] 
start: replace compiler attributes

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agolog: replace compiler attributes
Christian Brauner [Sat, 7 Dec 2019 16:39:49 +0000 (17:39 +0100)] 
log: replace compiler attributes

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agoattach: replace closing helpers
Christian Brauner [Sat, 7 Dec 2019 16:39:03 +0000 (17:39 +0100)] 
attach: replace closing helpers

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocompiler: add __unused attribute
Christian Brauner [Sat, 7 Dec 2019 16:38:42 +0000 (17:38 +0100)] 
compiler: add __unused attribute

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years ago{log, macro}: remove unused logging functions
Christian Brauner [Sat, 7 Dec 2019 16:31:50 +0000 (17:31 +0100)] 
{log, macro}: remove unused logging functions

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups: rework return values of some functions
Christian Brauner [Sat, 7 Dec 2019 16:30:57 +0000 (17:30 +0100)] 
cgroups: rework return values of some functions

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgroup2_devices: replace logging functions
Christian Brauner [Sat, 7 Dec 2019 16:30:07 +0000 (17:30 +0100)] 
cgroups/cgroup2_devices: replace logging functions

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgroup: replace logging functions
Christian Brauner [Sat, 7 Dec 2019 16:29:12 +0000 (17:29 +0100)] 
cgroups/cgroup: replace logging functions

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/cgfsng: replace logging functions
Christian Brauner [Sat, 7 Dec 2019 16:28:06 +0000 (17:28 +0100)] 
cgroups/cgfsng: replace logging functions

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agoconfile: replace logging helpers
Christian Brauner [Sat, 7 Dec 2019 16:25:28 +0000 (17:25 +0100)] 
confile: replace logging helpers

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agonetwork: replace logging helpers
Christian Brauner [Sat, 7 Dec 2019 16:24:29 +0000 (17:24 +0100)] 
network: replace logging helpers

s/error_log_errno(/log_error_errno(-1, /g
s/minus_one_set_errno(/ret_set_errno(-1, /g

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocommands: replace logging helpers
Christian Brauner [Sat, 7 Dec 2019 16:23:24 +0000 (17:23 +0100)] 
commands: replace logging helpers

s/error_log_errno(/log_error_errno(-1, /g
s/minus_one_set_errno(/ret_set_errno(-1, /g

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agoattach: s/minus_one_set_errno(/ret_set_errno(-1, /g
Christian Brauner [Sat, 7 Dec 2019 16:22:53 +0000 (17:22 +0100)] 
attach: s/minus_one_set_errno(/ret_set_errno(-1, /g

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agoaf_unix: s/minus_one_set_errno(/ret_set_errno(-1, /g
Christian Brauner [Sat, 7 Dec 2019 16:22:14 +0000 (17:22 +0100)] 
af_unix: s/minus_one_set_errno(/ret_set_errno(-1, /g

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agomacro: add ret_errno()
Christian Brauner [Sat, 7 Dec 2019 16:21:53 +0000 (17:21 +0100)] 
macro: add ret_errno()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agolog: rearrange
Christian Brauner [Sat, 7 Dec 2019 16:21:18 +0000 (17:21 +0100)] 
log: rearrange

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroup2: rework controller delegation
Christian Brauner [Fri, 6 Dec 2019 08:42:47 +0000 (09:42 +0100)] 
cgroup2: rework controller delegation

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years ago"busy" field set to -1 instead of 0
Rachid Koucha [Fri, 6 Dec 2019 14:07:47 +0000 (15:07 +0100)] 
"busy" field set to -1 instead of 0

"busy" field is assigned with the command socket descriptor when the terminal is in use. So, use "-1" to disable it.

Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
5 years ago"busy" field set to 1 instead of 0
Rachid Koucha [Fri, 6 Dec 2019 14:04:31 +0000 (15:04 +0100)] 
"busy" field set to 1 instead of 0

"busy" field is assigned with the command socket descriptor when the terminal is in use. So, use "-1" to disable it.

Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
5 years agoInit "busy" field to -1 as 0 is valid fd
Rachid Koucha [Fri, 6 Dec 2019 13:59:52 +0000 (14:59 +0100)] 
Init "busy" field to -1 as 0 is valid fd

"busy" field is assigned with the command socket descriptor when the terminal is in use. So, use "-1" to disable it.
Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
5 years agoconfig: Fix parsing of mount options
Maximilian Blenk [Thu, 5 Dec 2019 15:44:41 +0000 (16:44 +0100)] 
config: Fix parsing of mount options

When parsing mount options e.g. from lxc.mount.entry the specified
options are mapped to the flags constants. To do so, the strings
are compared to the options contained in mount_opt. However,
when comparing the strings, the length of the string is not
checked. That entails that the option "rootcontext=selinux-context"
is mapped to the mount option read-only (ro). This commit fixes
this issue by checking if a '=' is contained in the specified option
and additionally comparing the length of the strings.

Signed-off-by: Maximilian Blenk <Maximilian.Blenk@bmw.de>
5 years agocgroups/devices: correctly verify bpf device useability in cgfsng_devices_activate()
Christian Brauner [Wed, 4 Dec 2019 13:03:48 +0000 (14:03 +0100)] 
cgroups/devices: correctly verify bpf device useability in cgfsng_devices_activate()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups: improve container cgroup attaching
Christian Brauner [Wed, 4 Dec 2019 12:26:54 +0000 (13:26 +0100)] 
cgroups: improve container cgroup attaching

The current attach.c codepath which handles moving the attaching process into
the container's cgroups allocates a whole new struct cgroup_ops and goes
through the trouble of reparsing the whole cgroup layout.
That's costly and wasteful. My plan has always been to move this into the
command api by getting fds for attaching back but but it's not worth going
through that hazzle for non-unified hosts. On pure unified hosts however -
being the future - we can just attach through a single fd so there's no need to
allocate and setup struct cgroup_ops.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agolxc: switch to SPDX
Christian Brauner [Tue, 3 Dec 2019 21:04:14 +0000 (22:04 +0100)] 
lxc: switch to SPDX

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocommands: use logging return helpers
Christian Brauner [Wed, 4 Dec 2019 12:26:23 +0000 (13:26 +0100)] 
commands: use logging return helpers

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agoRevert "cgroups/freezer: fix and improve cgroup2 freezer implementation"
Christian Brauner [Wed, 4 Dec 2019 12:44:22 +0000 (13:44 +0100)] 
Revert "cgroups/freezer: fix and improve cgroup2 freezer implementation"

This reverts commit ecaf0c7bfc1baee74ff38dbdbc65bf4bec2361d4. I somehow
accidently did a double-backport.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgfsng: rework cgroup2 attach
Christian Brauner [Wed, 4 Dec 2019 00:39:20 +0000 (01:39 +0100)] 
cgfsng: rework cgroup2 attach

On pure unified systemd we can use a single file descriptor to interact with
the cgroup filesystem. Add a method to retrieve it and as a start use it in our
unified attach codepath.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/devices: do not log error when bpf device feature is not available
Christian Brauner [Tue, 3 Dec 2019 23:55:42 +0000 (00:55 +0100)] 
cgroups/devices: do not log error when bpf device feature is not available

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agofreezer: cleanup
Christian Brauner [Tue, 3 Dec 2019 16:33:11 +0000 (17:33 +0100)] 
freezer: cleanup

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/freezer: fix and improve cgroup2 freezer implementation
Christian Brauner [Tue, 3 Dec 2019 01:23:34 +0000 (02:23 +0100)] 
cgroups/freezer: fix and improve cgroup2 freezer implementation

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agoconf: fix memory leak for set config rootfs options
dongxinhua [Thu, 21 Nov 2019 14:20:20 +0000 (22:20 +0800)] 
conf: fix memory leak for set config rootfs options

Signed-off-by: dongxinhua <dongxinhua@huawei.com>
5 years agotree-wide: fix wrong copy-paste for licenses
Christian Brauner [Mon, 11 Feb 2019 15:34:54 +0000 (16:34 +0100)] 
tree-wide: fix wrong copy-paste for licenses

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/freezer: fix and improve cgroup2 freezer implementation
Christian Brauner [Tue, 3 Dec 2019 01:23:34 +0000 (02:23 +0100)] 
cgroups/freezer: fix and improve cgroup2 freezer implementation

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups: add DEFAULT_MOUNTPOINT #define
Christian Brauner [Tue, 3 Dec 2019 00:24:55 +0000 (01:24 +0100)] 
cgroups: add DEFAULT_MOUNTPOINT #define

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agostart: remove monitor_signal_pdeath codepath
Christian Brauner [Mon, 2 Dec 2019 13:13:02 +0000 (14:13 +0100)] 
start: remove monitor_signal_pdeath codepath

This causes compilation failures due to a bad cherry-pick.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/devices: use dedicated enums
Christian Brauner [Sun, 1 Dec 2019 23:50:06 +0000 (00:50 +0100)] 
cgroups/devices: use dedicated enums

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/devices: introduce ebpf device cgroup global rule types
Christian Brauner [Sun, 1 Dec 2019 18:39:48 +0000 (19:39 +0100)] 
cgroups/devices: introduce ebpf device cgroup global rule types

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agocgroups/devices: handle NULL
Christian Brauner [Sun, 1 Dec 2019 17:25:00 +0000 (18:25 +0100)] 
cgroups/devices: handle NULL

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
5 years agoconfigure: enable -Wunused-but-set-variable
Christian Brauner [Sun, 1 Dec 2019 16:04:43 +0000 (17:04 +0100)] 
configure: enable -Wunused-but-set-variable

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