- 10 Aug, 2015 5 commits
-
-
Cyrill Gorcunov authored
Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
It allows to freeze processes faster Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
Without using a freezer cgroup, we need to do a few iterations to catch all tasks, because a new tasks can be born. If new tasks appear faster than criu collects them, criu fails. The freezer cgroup allows to solve this problem. We freeze the freezer group, then attaches to tasks with ptrace and thaw the freezer cgroup. We suppose that all tasks which are going to be dumped in a specified freezer group. v2: fix comments from Christopher Reviewed-by:
Christopher Covington <cov@codeaurora.org> v3: refactor task_seize v4: fix comments from Pavel Cc: Christopher Covington <cov@codeaurora.org> Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrew Vagin authored
Before cr_errno was called from open_pid_proc(), but now it isn't called if a root task doesn't exist. Reported-by: Mr Jenkins Fixes: b9b0730c ("ptrace: split task_seize into seize_catch_task and seize_wait_task") Signed-off-by:
Andrew Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrew Vagin authored
gcc -c test.c -I ./ test.c: In function ‘recv_resp’: test.c:18:8: warning: implicit declaration of function ‘read’ [-Wimplicit-function-declaration] len = read(socket_fd, buf, MAX_MSG_SIZE); ^ test.c: In function ‘send_req’: test.c:45:6: warning: implicit declaration of function ‘write’ [-Wimplicit-function-declaration] if (write(socket_fd, buf, len) == -1) { ^ test.c: In function ‘main’: test.c:165:2: warning: implicit declaration of function ‘close’ [-Wimplicit-function-declaration] close(fd); Reported-by: Mr Jenkins Signed-off-by:
Andrew Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 07 Aug, 2015 9 commits
-
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
It's required to dump uid-s and gid-s from this userns. Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
It's required for dumping tmpfs, where we use tar to save content. If we need to execute tar from a proper userns to get right uid-s and gid-s for files. Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
uid and gid are shown in the init userns. We are going to restore mounts in a target userns, so we need to set these options in the target userns. Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Gabriel Guimaraes authored
This test checks that the OverlayFS fixup for CRIU works correctly by dumping and restoring a process that has an open file in an OverlayFS mounted directory. This should work no matter if the Kernel has the OverlayFS bug or not. Signed-off-by:
Gabriel Guimaraes <gabriellimaguimaraes@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Gabriel Guimaraes authored
This is here only to support the Linux Kernel between versions 3.18 and 4.2. After that, this workaround is not needed anymore, but it will work properly on both a kernel with and without the bug. The bug is that when a process has a file open in an OverlayFS directory, the information in /proc/<pid>/fd/<fd> and /proc/<pid>/fdinfo/<fd> is wrong, so we grab that information from the mountinfo table instead. This is done every time fill_fdlink is called. We first check to see if the mnt_id and st_dev numbers currently match some entry in the mountinfo table. If so, we already have the correct mnt_id and no fixup is needed. Then we proceed to see if there are any overlayFS mounted directories in the mountinfo table. If so, we concatenate the mountpoint with the name of the file, and stat the resulting path to check if we found the correct device id and node number. If that is the case, we update the mount id and link variables with the correct values. Signed-off-by:
Gabriel Guimaraes <gabriellimaguimaraes@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
It's preparation to use a freezer cgroup for freezing tasks. Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <rkuprieiev@cloudlinux.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 06 Aug, 2015 3 commits
-
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Hui Kang authored
Signed-off-by:
Hui Kang <hkang.sunysb@gmail.com> Looks-good-to: Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 05 Aug, 2015 7 commits
-
-
Andrey Vagin authored
Currently we skip all userns tests if "criu check" fails. This code was written when the "freature" options of criu check didn't exist. Currently we add userns tests only if "criu check --feature userns" passes. Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Cyrill Gorcunov authored
Dynamically allocated @name doesn't release if error happened. | ** CID 129898: (RESOURCE_LEAK) | /sk-unix.c: 505 in unix_process_name() | /sk-unix.c: 509 in unix_process_name() | /sk-unix.c: 519 in unix_process_name() Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
They should do mostly the same, but the first one checks nothing after c/r. v2: remove sockets03 from Makefile Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
because we are going to restore data of peer. Anyway this is wrong, because we need to restore a message with a sender address. Signed-off-by:
Andrey Vagin <avagin@openvz.org> Acked-by:
Tycho Andersen <tycho.andersen@canonical.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
This test fails currently, because these data are not restored. v2: remove the test from the execution list. Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 03 Aug, 2015 9 commits
-
-
Christopher Covington authored
If we want one CRIU binary to work across all AArch64 kernel configurations, a single task size value cannot be hard coded. While trivial applications successfully checkpoint and restore on AArch64 kernels with CONFIG_ARM64_64K_PAGES=y without this patch, replacing the remaining use of the hard-coded value seems like the best way to guard against failures that more complex process trees and future uses may expose. Signed-off-by:
Christopher Covington <cov@codeaurora.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Christopher Covington authored
If we want one CRIU binary to work across all AArch64 kernel configurations, a single task size value cannot be hard coded. Since vma_area_is_private() is used by both restorer blob code and non restorer blob code, which must use different variables for recording the task size, make task_size a function argument and modify the call sites accordingly. This fixes the following error on AArch64 kernels with CONFIG_ARM64_64K_PAGES=y. pie: Error (pie/restorer.c:929): Can't restore 0x3ffb7e70000 mapping w> pie: ith 0xfffffffffffffff7 Signed-off-by:
Christopher Covington <cov@codeaurora.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Christopher Covington authored
If we want one CRIU binary to work across all AArch64 kernel configurations, a single task size value cannot be hard coded. This fixes the following error on AArch64 kernels with CONFIG_ARM64_64K_PAGES=y. pie: Error (pie/restorer.c:772): Unable to unmap (-): -1211695104 Signed-off-by:
Christopher Covington <cov@codeaurora.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Christopher Covington authored
If we want one CRIU binary to work across all AArch64 kernel configurations, a single task size value cannot be hard coded. Signed-off-by:
Christopher Covington <cov@codeaurora.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrew Vagin authored
Currently each task subtracts number of zombies from task_entries->nr_threads without locks, so if two tasks will do this operation concurrently, the result may be unpredictable. https://github.com/xemul/criu/issues/13 Cc: Tycho Andersen <tycho.andersen@canonical.com> Signed-off-by:
Andrew Vagin <avagin@openvz.org> Acked-by:
Tycho Andersen <tycho.andersen@canonical.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <rkuprieiev@cloudlinux.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <rkuprieiev@cloudlinux.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Users shouldn't use it directly anyway, they should use criu_set* fucntions for that. Signed-off-by:
Ruslan Kuprieiev <rkuprieiev@cloudlinux.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 31 Jul, 2015 6 commits
-
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Cyrill Gorcunov authored
In case if socket's cwd lays on nested mount point we might resolve its path a bit incorrectly (mount_resolve_path helper should not obtain paths with leading dot). Thus send a path without leading dot for correct name resolving. Also add some error messages. Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Cyrill Gorcunov authored
Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
In this mode libcriu will execute criu binary in swrk mode, so users are not always obliged to run criu service daemon. Signed-off-by:
Ruslan Kuprieiev <rkuprieiev@cloudlinux.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <rkuprieiev@cloudlinux.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Ruslan Kuprieiev authored
Signed-off-by:
Ruslan Kuprieiev <rkuprieiev@cloudlinux.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 30 Jul, 2015 1 commit
-
-
Cédric Bosdonnat authored
Use CRTOOLSVERSION instead of GITID to write criu.pc version. With GITID, criu.pc had version '0' when built from tarballs. Signed-off-by:
Cédric Bosdonnat <cbosdonnat@suse.com> Acked-by:
Tycho Andersen <tycho.andersen@canonical.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-