- 25 May, 2015 2 commits
-
-
Stéphane Graber authored
Change lxc-clone to use 'rsync -aH' instead of just 'rsync -a'
-
Stéphane Graber authored
Signed-off-by:
Gyeongmin Kim <gyeongmintwo@gmail.com> Acked-by:
Stéphane Graber <stgraber@ubuntu.com>
-
- 17 May, 2015 1 commit
-
-
Serge Hallyn authored
Signed-off-by:Serge Hallyn <serge.hallyn@ubuntu.com>
-
- 15 May, 2015 1 commit
-
-
Erik B. Andersen authored
Change lxc-clone to use 'rsync -aH' instead of just 'rsync -a' for cloning to fix Launchpad Bug #1441307. Signed-off-by:Erik B. Andersen <erik.b.andersen@gmail.com>
-
- 14 May, 2015 2 commits
-
-
Stéphane Graber authored
Use POSIX-compliant function names in bash completion
-
Lucas Werkmeister authored
When running in posix mode (for example, because it was invoked as `sh`, or with the --posix option), bash rejects the function names previously used because they contain hyphens, which are not legal POSIX names, and exits immediately. This is a particularly serious problem on a system in which the following three conditions hold: 1. The `sh` executable is provided by bash, e. g. via a symlink 2. Gnome Display Manager is used to launch X sessions 3. Bash completion is loaded in the (system or user) profile file instead of in the bashrc file In that case, GDM's Xsession script (run with `sh`, i. e., bash in posix mode) sources the profile files, thus causing the shell to load the bash completion files. Upon encountering the non-POSIX-compliant function names, bash would then exit, immediately ending the X session. Fixes #521. Signed-off-by:Lucas Werkmeister <mail@lucaswerkmeister.de>
-
- 12 May, 2015 1 commit
-
-
Cyril Bitterich authored
The lxc-debian template debootstraps a minimum debian system which does not contain dbus. If systemd is used this will result in getty-static.service to be used instead of getty@ . The systemd default files uses 6 tty's instead of the 4 the script creates. This will lead to repeated error messages in the systemd journal. Signed-off-by:
Cyril Bitterich <Cyril.Bitterich@1und1.de> Acked-by:
Stéphane Graber <stgraber@ubuntu.com>
-
- 11 May, 2015 5 commits
-
-
Stéphane Graber authored
added build and test results to .gitignore
-
Karl-Philipp Richter authored
Signed-off-by:Karl-Philipp Richter <krichter722@aol.de>
-
Stéphane Graber authored
Fix Lua 5.3 compatibility code.
-
Stéphane Graber authored
Make lxc-checkconfig work with kernel versions > 3
-
Stéphane Graber authored
Sort the cgroup memory settings before applying.
-
- 07 May, 2015 2 commits
-
-
Serge Hallyn authored
Call /lib/apparmor/profile-load directly instead of the wrapper
-
Martin Pitt authored
AppArmor ships /lib/apparmor/profile-load. /lib/init/apparmor-profile-load is merely a wrapper which calls the former, so just call it directly to avoid the dependency on the wrapper. LP: #1432683
-
- 04 May, 2015 4 commits
-
-
Kien Truong authored
We need to use lxc_list_for_each_safe, otherwise de-allocation will fail with a list size bigger than 2. The pointer to the head of the list also need freeing after we've freed all other elements of the list. Signed-off-by:Kien Truong <duckientruong@gmail.com>
-
Kien Truong authored
Signed-off-by:Kien Truong <duckientruong@gmail.com>
-
Kien Truong authored
Add a function to sort the cgroup settings before applying. Currently, the function will put memory.memsw.limit_in_bytes after memory.limit_in_bytes setting so the container will start regardless of the order specified in the input. Fix #453 Signed-off-by:Kien Truong <duckientruong@gmail.com>
-
Serge Hallyn authored
Otherwise a container created before we needed workdir will fail to start after a kernel+lxc update. Signed-off-by:
Serge Hallyn <serge.hallyn@ubuntu.com> Acked-by:
KATOH Yasufumi <karma@jazz.email.ne.jp>
-
- 28 Apr, 2015 3 commits
-
-
Stéphane Graber authored
Signed-off-by:Stéphane Graber <stgraber@ubuntu.com>
-
Tycho Andersen authored
CRIU can get confused if there are two dumps that are written to the same directory, so we make some minimal effort to prevent people from doing this. This is a better alternative than forcing liblxc to create the directory, since it is mostly race free (and neither solution is bullet proof anyway if someone rsyncs some bad images over the top of the good ones). Signed-off-by:
Tycho Andersen <tycho.andersen@canonical.com> Acked-by:
Serge E. Hallyn <serge.hallyn@ubuntu.com>
-
Stéphane Graber authored
This updates lxc-net with the following changes: - Better recover from crashes/partial runs - Better error detection and reporting - Less code duplication (use the stop code on crash) - Better state tracking - Allow for restart of all of lxc-net except for the bridge itself - Only support iproute from this point on (ifconfig's been deprecated for years) V2: Use template variables everywhere Signed-off-by:
Stéphane Graber <stgraber@ubuntu.com> Acked-by:
Serge E. Hallyn <serge.hallyn@ubuntu.com>
-
- 26 Apr, 2015 1 commit
-
-
Thomas Moschny authored
If Lua 5.3 is compiled with LUA_COMPAT_5_2 defined, the luaL_checkunsigned compatibility macro is already defined in lauxlib.h. Signed-off-by:Thomas Moschny <thomas.moschny@gmx.de>
-
- 25 Apr, 2015 2 commits
-
-
Karl-Philipp Richter authored
Signed-off-by:Karl-Philipp Richter <krichter722@aol.de>
-
Christian Brauner authored
(1) Add test for kernel version greater 3. (2) Use && and || instead of -a and -o as suggested in http://www.unix.com/man-page/posix/1p/test/. lxc-checkconfig will currently report "missing" on "Cgroup memory controller" for kernel versions greater 3. This happens because the script, before checking for the corresponding memory variable in the kernel config, currently will test whether we have a major kernel version greater- or equal to 3 and a minor kernel version greater- or equal to 6. This adds an additional test whether we have a major kernel version greater than 3. Signed-off-by:Christian Brauner <christianvanbrauner@gmail.com>
-
- 24 Apr, 2015 2 commits
-
-
Natanael Copa authored
This is needed for lxc.autodev=1 to work. Signed-off-by:
Natanael Copa <ncopa@alpinelinux.org> Acked-by:
Serge E. Hallyn <serge.hallyn@ubuntu.com>
-
Stéphane Graber authored
Signed-off-by:
Stéphane Graber <stgraber@ubuntu.com> Acked-by:
Serge E. Hallyn <serge.hallyn@ubuntu.com>
-
- 22 Apr, 2015 9 commits
-
-
Serge Hallyn authored
Particularly when using the go-lxc api with lots of threads, it happens that if the open files limit is > 1024, we will try to select on fd > 1024 which breaks on glibc. So use poll instead of select. Signed-off-by:
Serge Hallyn <serge.hallyn@ubuntu.com> Acked-by:
Stéphane Graber <stgraber@ubuntu.com>
-
Serge Hallyn authored
The logging code uses a global log_fd and log_level to direct logging (ERROR(), etc). While the container configuration file allows for lxc.loglevel and lxc.logfile, those are only used at configuration file read time to set the global variables. This works ok in the lxc front-end programs, but becomes a problem with threaded API users. The simplest solution would be to not allow per-container configuration files, but it'd be nice to avoid that. Passing a logfd or lxc_conf into every ERROR/INFO/etc call is "possible", but would be a huge complication as there are many functions, including struct member functions and callbacks, which don't have that info and would need to get it from somewhere. So the approach I'm taking here is to say that all real container work is done inside api calls, and therefore the API calls themselves can set a thread-local variable indicating which log info to use. If unset, then use the global values. The lxc-* programs, when called with a '-o logfile' argument, set a global variable to indicate that the user-specified value should be used. In this patch: If the lxc container configuration specifies a loglevel/logfile, only set the lxc_config's logfd and loglevel according to those, not the global values. Each API call is wrapped to set/unset the current_config. (The few exceptions are calls which do not result in any log actions) Update logfile appender to use the logfile specified in lxc_conf if (a) current_config is set and (b) the lxc-* command did not override it. Changelog (2015-04-21): . always re-set current_config to NULL at end of an API call, rather than storing the previous value. We don't nest API calls. . remove the log_lock stuff which wasn't used . lxc_conf_free: if the config is current_config, set current_config to NULL. (It can't be another thread's current_config, or we wouldn't be freeing it) . lxc_check_inherited: don't close fd if it is the current_config->logfd. Note this is only called when starting a container, so we have no other threads at this point. Changelog (2015-04-22) . Unset the per-container logfd on destroy . . Do so before we rm the containerdir. Otherwise if the logfile is set . to $lxcpath/$name/log, the containerdir won't be fully deleted. Signed-off-by:
Serge Hallyn <serge.hallyn@ubuntu.com> Acked-by:
Stéphane Graber <stgraber@ubuntu.com>
-
Bogdan Purcareata authored
Add an additional template parameter for SSH support in the container. Currently this can be implemented using the Dropbear or OpenSSH utility. The respective tool needs to be available on the host Linux. If the parameter is omitted, the template will look for the Dropbear utility on the host and install it if it is available (legacy behavior). Adding OpenSSH support has been done following the model in the lxc-sshd template. Signed-off-by:
Bogdan Purcareata <bogdan.purcareata@freescale.com> Acked-by:
Stéphane Graber <stgraber@ubuntu.com>
-
Tycho Andersen authored
If we don't re-open these after clone, the init process has a pointer to the parent's /dev/{zero,null}. CRIU seese these and wants to dump the parent's mount namespace, which is unnecessary. Instead, we should just re-open stdin/out/err after we do the clone and pivot root, to ensure that we have pointers to the devcies in init's rootfs instead of the host's. v2: Only close fds if the container was daemonized. This didn't turn out as nicely as described on the list because lxc_start() doesn't actually have the struct lxc_container, so it cant see the flag. Instead, we just pass it down everywhere. Signed-off-by:Tycho Andersen <tycho.andersen@canonical.com> Acked-by:
Serge E. Hallyn <serge.hallyn@ubuntu.com>
-
Tycho Andersen authored
In vivid containers hugetlbfs is mounted, but it is not one of the hardcoded fses in criu, so we need to tell criu that it is okay to automount it. Signed-off-by:
Tycho Andersen <tycho.andersen@canonical.com> Acked-by:
Serge E. Hallyn <serge.hallyn@ubuntu.com>
-
Tycho Andersen authored
Note that we allow both a tagged version or a git build that has sufficient patches for the features we require. v2: close criu's stderr too Signed-off-by:
Tycho Andersen <tycho.andersen@canonical.com> Acked-by:
Serge E. Hallyn <serge.hallyn@ubuntu.com>
-
Tycho Andersen authored
Trying to cage the beast that is lxccontainer.c. Signed-off-by:
Tycho Andersen <tycho.andersen@canonical.com> Acked-by:
Serge E. Hallyn <serge.hallyn@ubuntu.com>
-
Tycho Andersen authored
As of criu 1.5, the --veth-pair argument supports an additional parameter that is the bridge name to attach to. This enables us to get rid of the goofy action-script hack that passed bridge names as environment variables. This patch is on top of the systemd/lxcfs mount rework patch, as we probably want to wait to use 1.5 options until it has been out for a while and is in distros. Signed-off-by:
Tycho Andersen <tycho.andersen@canonical.com> Acked-by:
Serge E. Hallyn <serge.hallyn@ubuntu.com>
-
Tycho Andersen authored
CRIU now supports autodetection of external mounts via the --ext-mount-map auto --enable-external-sharing --enable-external-masters options, so we don't need to explicitly pass the cgmanager mount or any of the mounts from the config. This also means that lxcfs mounts (since they are bind mounts from outside the container) are autodetected, meaning that c/r of containers using lxcfs works. A further advantage of this patch is that it addresses some of the ugliness that was in the exec_criu() function. There are other criu options that will allow us to trim this even further, though. Finally, with --enable-external-masters, criu understands slave mounts in the container with shared mounts in the peer group that are outside the namespace. This allows containers on a systemd host to be dumped and restored correctly. However, these options have just landed in criu trunk today, and the next tagged release will be 1.6 on June 1, so we should avoid merging this into any stable releases until then. v2: remount / as private before bind mounting the container's directory for criu. The problem here is that if / is mounted as shared, even if we unshare() the /var/lib/lxc/rootfs mountpoint propagates outside of our mount namespace, which is bad, since we don't want to leak mounts. In particular, this leak confuses criu the second time it goes to checkpoint the container. v3: whoops, we really want / as MS_SLAVE | MS_REC here, to match what start does v4: rebase onto master for revert of logging patch Signed-off-by:Tycho Andersen <tycho.andersen@canonical.com> Acked-by:
Serge E. Hallyn <serge.hallyn@ubuntu.com>
-
- 14 Apr, 2015 4 commits
-
-
Serge Hallyn authored
This is hopefully temporary - it works great for lxc itself, but seems to be upsetting golang. Signed-off-by:
Serge Hallyn <serge.hallyn@ubuntu.com> Tested-by:
Tycho Andersen <tycho.andersen@canonical.com>
-
Serge Hallyn authored
This breaks code that depended on the monitor being fully dead before c->stop() returns. This reverts commit 62e04161.
-
Serge Hallyn authored
This breaks lxc-test-concurrent. This reverts commit fef9aa89.
-
Serge Hallyn authored
In the past, lxc-cmd-stop would wait until the command pipe was closed before returning, ensuring that the container monitor had exited. Now that we accept the actual success return value, lxcapi_stop can return success before the monitor has fully exited. So explicitly wait for the container to stop, when lxc-cmd-stop returned success. Signed-off-by:Serge Hallyn <serge.hallyn@ubuntu.com>
-
- 13 Apr, 2015 1 commit
-
-
Tycho Andersen authored
Instead, check that the result is larger than its parts. Signed-off-by:
Tycho Andersen <tycho.andersen@canonical.com> Acked-by:
Stéphane Graber <stgraber@ubuntu.com>
-