]> git.proxmox.com Git - mirror_lxc.git/log
mirror_lxc.git
6 years agoMerge pull request #2008 from tych0/share-ns-in-execute
Christian Brauner [Thu, 14 Dec 2017 20:37:41 +0000 (21:37 +0100)]
Merge pull request #2008 from tych0/share-ns-in-execute

add --share-$NS= support to lxc-execute

6 years agoMerge pull request #2037 from hallyn/2017-12-14/dir_detect_eperm
Christian Brauner [Thu, 14 Dec 2017 20:07:22 +0000 (21:07 +0100)]
Merge pull request #2037 from hallyn/2017-12-14/dir_detect_eperm

dir_detect: warn on eperm

6 years agoMerge pull request #2035 from adrianreber/master
Christian Brauner [Thu, 14 Dec 2017 20:06:17 +0000 (21:06 +0100)]
Merge pull request #2035 from adrianreber/master

criu: add feature check capability

6 years agocriu: add a test case for the criu feature check support
Adrian Reber [Wed, 13 Dec 2017 11:14:58 +0000 (12:14 +0100)]
criu: add a test case for the criu feature check support

This adds a simple test case which verifies that the new migrate() API
command 'MIGRATE_FEATURE_CHECK' works as expected.

If a feature does not exist on the currently running
architecture/kernel/criu combination it does not report an error as this
is a valid scenario.

Signed-off-by: Adrian Reber <areber@redhat.com>
6 years agocriu: add feature check capability
Adrian Reber [Wed, 13 Dec 2017 11:04:02 +0000 (12:04 +0100)]
criu: add feature check capability

For migration optimization features like pre-copy or post-copy migration
the support cannot be determined by simply looking at the CRIU version.
Features like that depend on the architecture/kernel/criu combination
and CRIU offers a feature checking interface to query if it is
supported.

This adds a LXC interface to query CRIU for those feature via the
migrate() API call. For the recent pre-copy migration support in LXD
this can be used to automatically detect if pre-copy migration should be
used.

In addition to the existing migrate() API commands this adds a new
command: 'MIGRATE_FEATURE_CHECK'.

The migrate_opts{} structure is extended by the member features_to_check
which is a bitmask defining which CRIU features should be queried.

Currently only the querying of the features FEATURE_MEM_TRACK and
FEATURE_LAZY_PAGES is supported.

Signed-off-by: Adrian Reber <areber@redhat.com>
6 years agodir_detect: warn on eperm
Serge Hallyn [Thu, 14 Dec 2017 19:16:02 +0000 (13:16 -0600)]
dir_detect: warn on eperm

if user has lxc.rootfs.path = /some/path/foo, but can't access
some piece of that path, then we'll get an unhelpful "failed to
mount" without any indication of the problem.

At least show that there is a permission problem.

Signed-off-by: Serge Hallyn <shallyn@cisco.com>
6 years agothe bike shed should be brilliant purple
Tycho Andersen [Thu, 14 Dec 2017 17:38:16 +0000 (17:38 +0000)]
the bike shed should be brilliant purple

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
6 years agoMerge pull request #2026 from brauner/2017-12-12/lxc_hook_version
Serge Hallyn [Thu, 14 Dec 2017 15:27:46 +0000 (09:27 -0600)]
Merge pull request #2026 from brauner/2017-12-12/lxc_hook_version

confile: add lxc.hook.version

6 years agonetwork: pass name of peer veth device
Christian Brauner [Thu, 14 Dec 2017 13:19:27 +0000 (14:19 +0100)]
network: pass name of peer veth device

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoconf: simplify run_script_argv()
Christian Brauner [Thu, 14 Dec 2017 13:15:18 +0000 (14:15 +0100)]
conf: simplify run_script_argv()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agonetwork: pass info in env if hook version is 1
Christian Brauner [Tue, 12 Dec 2017 12:30:54 +0000 (13:30 +0100)]
network: pass info in env if hook version is 1

Unblocks #2013.
Unblocks #2015.
Closes #1766.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agostart: pass namespaces as environment variables
Christian Brauner [Sun, 10 Dec 2017 12:53:32 +0000 (13:53 +0100)]
start: pass namespaces as environment variables

Unblocks #2013.
Unblocks #2015.
Closes #1766.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoconf: execute hooks based on lxc.hooks.version
Christian Brauner [Sun, 10 Dec 2017 11:54:00 +0000 (12:54 +0100)]
conf: execute hooks based on lxc.hooks.version

Unblocks #2013.
Unblocks #2015.
Closes #1766.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agostart: set LXC_HOOK_VERSION
Christian Brauner [Mon, 11 Dec 2017 11:10:37 +0000 (12:10 +0100)]
start: set LXC_HOOK_VERSION

This can be used by scripts to detect what version of the hooks are used.

Unblocks #2013.
Unblocks #2015.
Closes #1766.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoconfile: add lxc.hook.version
Christian Brauner [Sun, 10 Dec 2017 11:53:25 +0000 (12:53 +0100)]
confile: add lxc.hook.version

Unblocks #2013.
Unblocks #2015.
Closes #1766.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #2030 from brauner/2017-12-13/fix_cgroup_namsepace_recording
Serge Hallyn [Thu, 14 Dec 2017 06:45:52 +0000 (00:45 -0600)]
Merge pull request #2030 from brauner/2017-12-13/fix_cgroup_namsepace_recording

start: fix cgroup namespace preservation

6 years agoSHARE_NS options should be before OPT_USAGE
Tycho Andersen [Thu, 14 Dec 2017 00:57:48 +0000 (00:57 +0000)]
SHARE_NS options should be before OPT_USAGE

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
6 years agoinit: don't kill(-1) if we aren't in a pid ns
Tycho Andersen [Fri, 8 Dec 2017 23:23:26 +0000 (23:23 +0000)]
init: don't kill(-1) if we aren't in a pid ns

...otherwise we'll kill everyone on the machine. Instead, let's explicitly
try to kill our children. Let's do a best effort against fork bombs by
disabling forking via the pids cgroup if it exists. This is best effort for
a number of reasons:

* the pids cgroup may not be available
* the container may have bind mounted /dev/null over pids.max, so the write
  doesn't do anything

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
6 years agoMerge pull request #2017 from brauner/generic/patch_testing
Stéphane Graber [Wed, 13 Dec 2017 18:26:32 +0000 (13:26 -0500)]
Merge pull request #2017 from brauner/generic/patch_testing

coverity: bugfixes

6 years agoMerge pull request #2025 from brauner/2017-12-12/fix_network_attach_and_detach
Stéphane Graber [Wed, 13 Dec 2017 18:22:31 +0000 (13:22 -0500)]
Merge pull request #2025 from brauner/2017-12-12/fix_network_attach_and_detach

lxccontainer: only attach netns on netdev detach

6 years agoMerge pull request #2024 from brauner/2017-11-12/fix_lxc_execute
Stéphane Graber [Wed, 13 Dec 2017 18:03:42 +0000 (13:03 -0500)]
Merge pull request #2024 from brauner/2017-11-12/fix_lxc_execute

tools: block using lxc-execute without config file

6 years agoMerge pull request #2022 from 3XX0/exec-run-script
Stéphane Graber [Wed, 13 Dec 2017 18:02:03 +0000 (13:02 -0500)]
Merge pull request #2022 from 3XX0/exec-run-script

conf: avoid spawning unnecessary subshells

6 years agoMerge pull request #2029 from brauner/2017-12-12/do_not_unconditionally_dup_stdfds_fo...
Stéphane Graber [Wed, 13 Dec 2017 17:58:58 +0000 (12:58 -0500)]
Merge pull request #2029 from brauner/2017-12-12/do_not_unconditionally_dup_stdfds_for_execute

start: do not unconditionally dup std{in,out,err}

6 years agoMerge pull request #2010 from tanyifeng/set_oom_score_adj
Christian Brauner [Wed, 13 Dec 2017 10:24:47 +0000 (11:24 +0100)]
Merge pull request #2010 from tanyifeng/set_oom_score_adj

confile: add lxc.proc.* to set proc filesystem

6 years agoconfile: add lxc.proc.* to set proc filesystem
Yifeng Tan [Thu, 7 Dec 2017 18:00:47 +0000 (02:00 +0800)]
confile: add lxc.proc.* to set proc filesystem

Signed-off-by: Yifeng Tan <tanyifeng1@huawei.com>
6 years agostart: fix cgroup namespace preservation
Christian Brauner [Tue, 12 Dec 2017 23:22:47 +0000 (00:22 +0100)]
start: fix cgroup namespace preservation

Prior to this patch we raced with a very short-lived init process. Essentially,
the init process could exit before we had time to record the cgroup namespace
causing the container to abort and report ABORTING to the caller when it
actually started just fine. Let's not do this.

(This uses syscall(SYS_getpid) in the the child to retrieve the pid just in case
we're on an older glibc version and we end up in the namespace sharing branch
of the actual lxc_clone() call.)

Additionally this fixes the shortlived tests. They were faulty so far and
should have actually failed because of the cgroup namespace recording race but
the ret variable used to return from the function was not correctly
initialized. This fixes it.
Furthermore, the shortlived tests used the c->error_num variable to determine
success or failure but this is actually not correct when the container is
started daemonized.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agotools: exit success when lxc-execute is daemonized
Christian Brauner [Tue, 12 Dec 2017 20:05:39 +0000 (21:05 +0100)]
tools: exit success when lxc-execute is daemonized

The error_num value doesn't tell us anything since the container hasn't exited.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agostart: do not unconditionally dup std{in,out,err}
Christian Brauner [Tue, 12 Dec 2017 19:09:06 +0000 (20:09 +0100)]
start: do not unconditionally dup std{in,out,err}

Starting with commit

    commit c5b93afba1d79c6861a6f45db2943b6f3cfbdab4
    Author: Li Feng <lifeng68@huawei.com>
    Date:   Mon Jul 10 17:19:52 2017 +0800

        start: dup std{in,out,err} to pty slave

        In the case the container has a console with a valid slave pty file descriptor
        we duplicate std{in,out,err} to the slave file descriptor so console logging
        works correctly. When the container does not have a valid slave pty file
        descriptor for its console and is started daemonized we should dup to
        /dev/null.

        Closes #1646.

Signed-off-by: Li Feng <lifeng68@huawei.com>
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
we made std{err,in,out} a duplicate of the slave file descriptor of the console
if it existed. This meant we also duplicated all of them when we executed
application containers in the foreground even if some std{err,in,out} file
descriptor did not refer to a {p,t}ty. This blocked use cases such as:

    echo foo | lxc-execute -n -- cat

which are very valid and common with application containers but less common
with system containers where we don't have to care about this. So my suggestion
is to unconditionally duplicate std{err,in,out} to the console file descriptor
if we are either running daemonized - this ensures that daemonized application
containers with a single bash shell keep on working - or when we are not
running an application container. In other cases we only duplicate those file
descriptors that actually refer to a {p,t}ty. This logic is similar to what we
do for lxc-attach already.

Refers to #1690.
Closes #2028.

Reported-by: Felix Abecassis <fabecassis@nvidia.com>
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoconf: non-functional changes
Christian Brauner [Sun, 10 Dec 2017 11:52:30 +0000 (12:52 +0100)]
conf: non-functional changes

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1426028
Christian Brauner [Sat, 9 Dec 2017 19:04:46 +0000 (20:04 +0100)]
coverity: #1426028

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425857
Christian Brauner [Sat, 9 Dec 2017 19:00:40 +0000 (20:00 +0100)]
coverity: #1425857

remove logically dead code

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425858
Christian Brauner [Sat, 9 Dec 2017 18:59:11 +0000 (19:59 +0100)]
coverity: #1425858

free allocated memory

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425859
Christian Brauner [Sat, 9 Dec 2017 18:53:43 +0000 (19:53 +0100)]
coverity: #1425859

check return value of snprintf()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425860
Christian Brauner [Sat, 9 Dec 2017 18:51:55 +0000 (19:51 +0100)]
coverity: #1425860

remove logically dead code

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425861
Christian Brauner [Sat, 9 Dec 2017 18:51:03 +0000 (19:51 +0100)]
coverity: #1425861

free allocated memory

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425862
Christian Brauner [Sat, 9 Dec 2017 18:48:48 +0000 (19:48 +0100)]
coverity: #1425862

initialize handler

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425863
Christian Brauner [Sat, 9 Dec 2017 18:32:03 +0000 (19:32 +0100)]
coverity: #1425863

remove logically dead code

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425866
Christian Brauner [Sat, 9 Dec 2017 18:26:52 +0000 (19:26 +0100)]
coverity: #1425866

free allocated memory

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425867
Christian Brauner [Sat, 9 Dec 2017 18:22:32 +0000 (19:22 +0100)]
coverity: #1425867

do not pass NULL pointer to chdir()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425869
Christian Brauner [Sat, 9 Dec 2017 18:18:09 +0000 (19:18 +0100)]
coverity: #1425869

do not unmap prematurely

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425870
Christian Brauner [Sat, 9 Dec 2017 18:16:25 +0000 (19:16 +0100)]
coverity: #1425870

check snprintf() return value

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agolxccontainer: cleanup {attach,detach}_interface()
Christian Brauner [Sun, 10 Dec 2017 01:45:54 +0000 (02:45 +0100)]
lxccontainer: cleanup {attach,detach}_interface()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agolxccontainer: only attach netns on netdev detach
Christian Brauner [Sun, 10 Dec 2017 01:41:14 +0000 (02:41 +0100)]
lxccontainer: only attach netns on netdev detach

Detaching network namespaces as an unprivileged user is currently not possible
and attaching to the user namespace will mean we are not allowed to move the
network device into an ancestor network namespace.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425874 + cleanup
Christian Brauner [Sat, 9 Dec 2017 18:12:48 +0000 (19:12 +0100)]
coverity: #1425874 + cleanup

- check for memory allocation failure
- free allocated memory
- cleanup function

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #2021 from 3XX0/overlay-oob-copy
Christian Brauner [Tue, 12 Dec 2017 10:40:21 +0000 (11:40 +0100)]
Merge pull request #2021 from 3XX0/overlay-oob-copy

overlay: fix out-of-bounds copy

6 years agoconf: avoid spawning unnecessary subshells
Jonathan Calmels [Mon, 11 Dec 2017 22:43:06 +0000 (14:43 -0800)]
conf: avoid spawning unnecessary subshells

Signed-off-by: Jonathan Calmels <jcalmels@nvidia.com>
6 years agotools: block using lxc-execute without config file
Christian Brauner [Tue, 12 Dec 2017 00:38:40 +0000 (01:38 +0100)]
tools: block using lxc-execute without config file

Moving away from internal symbols we can't do hacks like we currently do in
lxc-start and call internal functions like lxc_conf_init(). This is unsafe
anyway. Instead, we should simply error out if the user didn't give us a
configuration file to use. lxc-start refuses to start in that case already.

Relates to discussion in https://github.com/lxc/go-lxc/pull/96#discussion_r155075560 .
Closes #2023.

Reported-by: Felix Abecassis <fabecassis@nvidia.com>
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agooverlay: fix out-of-bounds copy
Jonathan Calmels [Mon, 11 Dec 2017 22:49:57 +0000 (14:49 -0800)]
overlay: fix out-of-bounds copy

Signed-off-by: Jonathan Calmels <jcalmels@nvidia.com>
6 years agoMerge pull request #2020 from brauner/2017-12-11/clone
Serge Hallyn [Mon, 11 Dec 2017 19:52:05 +0000 (13:52 -0600)]
Merge pull request #2020 from brauner/2017-12-11/clone

start: intelligently use clone() on ns sharing

6 years agotests: add namespace sharing tests
Christian Brauner [Mon, 11 Dec 2017 13:47:24 +0000 (14:47 +0100)]
tests: add namespace sharing tests

This also ensures that the new more efficient clone() way of sharing namespaces
is tested.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agostart: intelligently use clone() on ns sharing
Christian Brauner [Mon, 11 Dec 2017 11:55:23 +0000 (12:55 +0100)]
start: intelligently use clone() on ns sharing

When I first solved this problem I went for a fork() + setns() + clone() model.
This works fine but has unnecessary overhead for a couple of reasons:

- doing a full fork() including copying file descriptor table and virtual
  memory
- using pipes to retrieve the pid of the second child (the actual container
  process)

This can all be avoided by being a little smart in how we employ the clone()
syscall:

- using CLONE_VM will let us get rid of using pipes since we can simply write
  to the handler because we share the memory with our parent
- using CLONE_VFORK will also let us get rid of using pipes since the execution
  of the parent is suspended until the child returns
- using CLONE_VM will not cause virtual memory to be copied
- using CLONE_FILES will not cause the file descriptor table to be copied

Note that the intermediate clone() is used with CLONE_VM. Some glibc versions
used to reset the pid/tid to -1 when CLONE_VM was used without CLONE_THREAD.
But since the memory between parent and child is shared on CLONE_VM this would
invalidate the getpid() cache that glibc used to maintain and so getpid() in
the child would return the parent's pid. This is all fixed in newer glibc
versions where the getpid() cache is removed and the pid/tid is not reset
anymore. However, if for whatever reason you - dear commiter - somehow need to
get the pid of the dummy intermediate process for do_share_ns() you need to
call syscall(__NR_getpid) directly. The next lxc_clone() call does not employ
CLONE_VM and will be fine.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425879
Christian Brauner [Sat, 9 Dec 2017 18:00:37 +0000 (19:00 +0100)]
coverity: #1425879

do not double close file descriptor

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425883
Christian Brauner [Sat, 9 Dec 2017 17:54:28 +0000 (18:54 +0100)]
coverity: #1425883

ensure \0-termination

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425884
Christian Brauner [Sat, 9 Dec 2017 17:46:56 +0000 (18:46 +0100)]
coverity: #1425884

free allocated memory

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1428855
Christian Brauner [Sat, 9 Dec 2017 17:45:47 +0000 (18:45 +0100)]
coverity: #1428855

remove logically dead code

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425886
Christian Brauner [Sat, 9 Dec 2017 17:44:41 +0000 (18:44 +0100)]
coverity: #1425886

free allocated memory

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425893
Christian Brauner [Sat, 9 Dec 2017 17:35:33 +0000 (18:35 +0100)]
coverity: #1425893

used calculated string length when copying into buffer

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1426029
Christian Brauner [Sat, 9 Dec 2017 17:27:25 +0000 (18:27 +0100)]
coverity: #1426029

fix use after free

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoconf: lxc.sysctl coding style fixes
Christian Brauner [Mon, 11 Dec 2017 10:27:24 +0000 (11:27 +0100)]
conf: lxc.sysctl coding style fixes

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #2009 from lifeng68/add_sysctl
Christian Brauner [Mon, 11 Dec 2017 10:21:07 +0000 (11:21 +0100)]
Merge pull request #2009 from lifeng68/add_sysctl

confile: add lxc.sysctl config

6 years agoconfile: Add lxc.sysctl config
LiFeng [Thu, 7 Dec 2017 16:40:35 +0000 (11:40 -0500)]
confile: Add lxc.sysctl config

Signed-off-by: LiFeng <lifeng68@huawei.com>
6 years agoMerge pull request #2019 from brauner/2017-12-11/fix_legacy_network_parser
Stéphane Graber [Mon, 11 Dec 2017 05:40:27 +0000 (00:40 -0500)]
Merge pull request #2019 from brauner/2017-12-11/fix_legacy_network_parser

legacy confile: fix legacy network parser

6 years agoconf: fix lxc.prlimit clearing
Christian Brauner [Mon, 11 Dec 2017 05:22:56 +0000 (06:22 +0100)]
conf: fix lxc.prlimit clearing

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agolegacy confile: fix legacy network parser
Christian Brauner [Mon, 11 Dec 2017 05:03:45 +0000 (06:03 +0100)]
legacy confile: fix legacy network parser

This fixes a bug introduced by:

commit 94f0035bf636ba853451d59c129e26d94850c04d
Author: Christian Brauner <christian.brauner@ubuntu.com>
Date:   Thu Dec 7 15:07:26 2017 +0100

    coverity: #1425924

    remove logically dead condition

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
Coverity's bug analysis is correct but my fix wasn't.

This commit fixes a bunch of other bugs I just spotted as well.

This unblocks #2009.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agotravis: Fix build failure
Stéphane Graber [Sat, 9 Dec 2017 06:50:37 +0000 (01:50 -0500)]
travis: Fix build failure

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
6 years agoMerge pull request #2016 from flx42/lxc-oci-misc-improvements
Serge Hallyn [Sat, 9 Dec 2017 04:56:14 +0000 (22:56 -0600)]
Merge pull request #2016 from flx42/lxc-oci-misc-improvements

lxc-oci misc improvements

6 years agolxc-oci: add support for WorkingDir
Felix Abecassis [Sat, 9 Dec 2017 01:13:01 +0000 (17:13 -0800)]
lxc-oci: add support for WorkingDir

Signed-off-by: Felix Abecassis <fabecassis@nvidia.com>
6 years agoMerge pull request #2012 from marcosps/pthread_mtx_msg
Serge Hallyn [Sat, 9 Dec 2017 04:10:50 +0000 (22:10 -0600)]
Merge pull request #2012 from marcosps/pthread_mtx_msg

lxc: Distinguish pthread_mutex_unlock error messages

6 years agoMerge pull request #1950 from brauner/2017-11-27/criu_fixes
Serge Hallyn [Sat, 9 Dec 2017 03:59:09 +0000 (21:59 -0600)]
Merge pull request #1950 from brauner/2017-11-27/criu_fixes

bugfixes

6 years agolxc-oci: add IPv6 support to /etc/hosts
Felix Abecassis [Sat, 9 Dec 2017 00:58:41 +0000 (16:58 -0800)]
lxc-oci: add IPv6 support to /etc/hosts

Signed-off-by: Felix Abecassis <fabecassis@nvidia.com>
6 years agolxc-oci: add basic handling of numerical uid/gid
Felix Abecassis [Sat, 9 Dec 2017 00:58:08 +0000 (16:58 -0800)]
lxc-oci: add basic handling of numerical uid/gid

Signed-off-by: Felix Abecassis <fabecassis@nvidia.com>
6 years agoadd --share-$NS= support to lxc-execute
Tycho Andersen [Wed, 6 Dec 2017 23:57:29 +0000 (23:57 +0000)]
add --share-$NS= support to lxc-execute

Signed-off-by: Tycho Andersen <tycho@tycho.ws>
6 years agolxc: Distinguish pthread_mutex_unlock error messages
Marcos Paulo de Souza [Fri, 8 Dec 2017 02:02:18 +0000 (00:02 -0200)]
lxc: Distinguish pthread_mutex_unlock error messages

The same message exists in lxclock.c and cgmanager.c, so print the
filename along with the message.

Before this patch:
lxc-destroy -n u1
pthread_mutex_unlock returned:1 Operation not permitted

After this patch:
xc-destroy -n u1
lxclock.c: pthread_mutex_unlock returned:1 Operation not permitted

Signed-off-by: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
6 years agoMerge pull request #2011 from brauner/generic/coverity
Serge Hallyn [Thu, 7 Dec 2017 20:46:09 +0000 (14:46 -0600)]
Merge pull request #2011 from brauner/generic/coverity

coverity: bugfixes

6 years agocoverity: #1425888
Christian Brauner [Thu, 7 Dec 2017 14:24:28 +0000 (15:24 +0100)]
coverity: #1425888

check return value of getifaddrs()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425889
Christian Brauner [Thu, 7 Dec 2017 14:21:57 +0000 (15:21 +0100)]
coverity: #1425889

do not call close on bad file descriptor

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425890
Christian Brauner [Thu, 7 Dec 2017 14:18:35 +0000 (15:18 +0100)]
coverity: #1425890

silence complaint about unchecked return value from library function

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425895
Christian Brauner [Thu, 7 Dec 2017 14:17:11 +0000 (15:17 +0100)]
coverity: #1425895

free allocated memory

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425921
Christian Brauner [Thu, 7 Dec 2017 14:14:37 +0000 (15:14 +0100)]
coverity: #1425921

free allocated memory

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425922
Christian Brauner [Thu, 7 Dec 2017 14:11:16 +0000 (15:11 +0100)]
coverity: #1425922

free allocated memory

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425923
Christian Brauner [Thu, 7 Dec 2017 14:09:46 +0000 (15:09 +0100)]
coverity: #1425923

avoid NULL-pointer dereference

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425924
Christian Brauner [Thu, 7 Dec 2017 14:07:26 +0000 (15:07 +0100)]
coverity: #1425924

remove logically dead condition

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425928
Christian Brauner [Thu, 7 Dec 2017 14:01:51 +0000 (15:01 +0100)]
coverity: #1425928

Avoid NULL-pointer dereference. Apparently monitor.{c,h} calls
lxc_check_inherited() with NULL passed for the config. This isn't really a big
issue since monitor.{c,h} is effectively dead for all liblxc versions that have
the state client patch. Also, the patch that introduces the relevant lines into
lxc_check_inherited() is only in master and yet unreleased.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425929
Christian Brauner [Thu, 7 Dec 2017 13:59:55 +0000 (14:59 +0100)]
coverity: #1425929

free allocated memory

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #2007 from brauner/2017-12-06/bugfixes
Stéphane Graber [Wed, 6 Dec 2017 22:32:22 +0000 (17:32 -0500)]
Merge pull request #2007 from brauner/2017-12-06/bugfixes

coverity: bugfixes

6 years agoMerge pull request #1934 from brauner/2017-11-21/implement_do_lxc_reboot_correctly
Serge Hallyn [Wed, 6 Dec 2017 22:31:50 +0000 (16:31 -0600)]
Merge pull request #1934 from brauner/2017-11-21/implement_do_lxc_reboot_correctly

commands: improve and simplify locking + lxccontainer: add reboot2() API extension

6 years agocoverity: #1425743
Christian Brauner [Wed, 6 Dec 2017 20:57:55 +0000 (21:57 +0100)]
coverity: #1425743

remove logically dead code

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425742
Christian Brauner [Wed, 6 Dec 2017 20:48:37 +0000 (21:48 +0100)]
coverity: #1425742

fix error condition check

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425740
Christian Brauner [Wed, 6 Dec 2017 20:39:45 +0000 (21:39 +0100)]
coverity: #1425740

free allocated memory

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425739
Christian Brauner [Wed, 6 Dec 2017 20:38:14 +0000 (21:38 +0100)]
coverity: #1425739

check snprintf() return value

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425737
Christian Brauner [Wed, 6 Dec 2017 20:30:42 +0000 (21:30 +0100)]
coverity: #1425737

free allocated memory

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425735
Christian Brauner [Wed, 6 Dec 2017 20:22:03 +0000 (21:22 +0100)]
coverity: #1425735

use correct inequality comparison

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agocoverity: #1425734
Christian Brauner [Wed, 6 Dec 2017 20:16:38 +0000 (21:16 +0100)]
coverity: #1425734

free memory on error

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agotests: expand tests for shortlived init processes
Christian Brauner [Wed, 6 Dec 2017 14:56:35 +0000 (15:56 +0100)]
tests: expand tests for shortlived init processes

This adds additional test for app containers.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoMerge pull request #2006 from Ricardo-Yoshi-LXC/master
Christian Brauner [Wed, 6 Dec 2017 17:43:09 +0000 (18:43 +0100)]
Merge pull request #2006 from Ricardo-Yoshi-LXC/master

Move lxc_init up to lxc/src and add argument parser

6 years agolxc_init: changed minor details
RicardoSanchezA [Wed, 6 Dec 2017 17:01:04 +0000 (11:01 -0600)]
lxc_init: changed minor details

Signed-off-by: RicardoSanchezA <ricardo.sanchez@utexas.edu>
6 years agolxc_init: add custom argument parser
RicardoSanchezA [Wed, 6 Dec 2017 15:30:44 +0000 (09:30 -0600)]
lxc_init: add custom argument parser

lxc_init.c should not depend on tools/arguments.{c,h}, thus it needs its own custom argument parser

Signed-off-by: RicardoSanchezA <ricardo.sanchez@utexas.edu>
6 years agolxc_init: move up to src/lxc
RicardoSanchezA [Wed, 6 Dec 2017 15:28:19 +0000 (09:28 -0600)]
lxc_init: move up to src/lxc

lxc_init.c is actually not a tool, thus it doesn't belong to the tools/ subfolder

Signed-off-by: RicardoSanchezA <ricardo.sanchez@utexas.edu>
6 years agolxccontainer: handle execute containers correctly
Christian Brauner [Wed, 6 Dec 2017 14:37:40 +0000 (15:37 +0100)]
lxccontainer: handle execute containers correctly

It doesn't make sense to error out when an app container doesn't pass explicit
arguments through c->start{l}(). This is especially true since we implemented
lxc.execute.cmd. However, even before we could have always relied on
lxc.init.cmd and errored out after that.

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
6 years agoexecute: pass logfile to lxc-init
Christian Brauner [Wed, 6 Dec 2017 14:37:12 +0000 (15:37 +0100)]
execute: pass logfile to lxc-init

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