- 08 Dec, 2014 1 commit
-
-
Andrey Vagin authored
maps007 segfaults on i386, because "size" is calculated bigger than allowed. This occurs when the result of lrand48() * PAGE_SIZE is negative. In this case the % operation returns a negative value too, what is unexpected. Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 01 Dec, 2014 4 commits
-
-
Pavel Emelyanov authored
So, according to the recently accepted plan we have 1.4. Biggest achievement here is that we've finally started with user namespaces, fixed CRIU to work smoothly with the p.haul project and optimized images and /proc files IO. And a bunch of bugs, of course. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrew Vagin authored
When we generate a path to the previous images, we take a directory name and the previous iteration number. Reported-by: Mr Jenkins Signed-off-by:
Andrew Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrew Vagin authored
We see big load-avarage for the CRIU-iter job, because the host is writing images for the maps04 test. If we will remove images after retore, they will live in a page cache. Curretly we collect images for three iterations and their size is too big to live in a cache. [root@jenkins workspace]# time bash test/zdtm.sh -i 3 ns/static/maps04 real 2m23.765s user 0m0.719s sys 0m4.006s [root@jenkins workspace]# time bash test/zdtm.sh -C -i 3 ns/static/maps04 real 1m34.884s user 0m0.200s sys 0m4.191s Signed-off-by:
Andrew Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrew Vagin authored
Currently ns/test and test may have the same test directory, especially if zdtm.sh is executed with --ct. Reported-by: Mr Jenkins Signed-off-by:
Andrew Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 29 Nov, 2014 3 commits
-
-
Andrey Vagin authored
32 is too many for our test server Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
CID 83243 (#1 of 1): Resource leak (RESOURCE_LEAK) 6. leaked_handle: Handle variable fd going out of scope leaks the handle. Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
When we are doing pre-dump, we splice pages in pipes and only then open images and dump pages. But when we are splicing pages, we need to know about existence of parent images. This patch adds a new call to determin existence of parent images. In addition this patch fixes a following issue: CID 83244 (#1 of 1): Uninitialized pointer read (UNINIT) 14. uninit_use: Using uninitialized value xfer.parent. v2: initialize unused field of struct page_server_iov, because it sends in network. CID 83451 (#1 of 1): Uninitialized scalar variable (UNINIT) 2. uninit_use_in_call: Using uninitialized value pi. Field pi.nr_pages is uninitialized when calling write. Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 26 Nov, 2014 2 commits
-
-
Andrey Vagin authored
For stream sockets it's possiable and we should not fail in this case. Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com> Acked-by:
Andrew Vagin <avagin@parallels.com>
-
- 19 Nov, 2014 3 commits
-
-
vkonyashkin authored
Need to print a mask of events for UNKNOWN event in inotify_system_nodel.c and inotify_system.c tests. The current error message in this case is too vague: inotify_system_nodel.c:266: got unexpected event UNKNOWN Signed-off-by:
vkonyashkin <vkonyashkin@parallels.com> Acked-by:
Andrew Vagin <avagin@parallels.com> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Cyrill Gorcunov authored
It is in mainline and required for proper CRIU work. Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
And move the 2nd piece lower to avoid fwd declaration and keep similar calls close to each other. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 14 Nov, 2014 1 commit
-
-
Cyrill Gorcunov authored
Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 13 Nov, 2014 1 commit
-
-
Andrey Vagin authored
Reported-by: Mr Jenkins Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 12 Nov, 2014 13 commits
-
-
Andrey Vagin authored
Here is an example from a fedora container: 65 64 252:0 /vz/private/1 / rw,relatime shared:29 - ext4 /dev/mapper/centos_pcs-root rw,data=ordered 77 65 252:0 /vz/private/1/var/tmp/systemd-httpd.service-XLnJPNc/tmp /var/tmp rw,relatime shared:41 - ext4 /dev/mapper/centos_pcs-root rw,data=ordered We can see non-root shared mount, which is mounted to the root mount from the same shared group. The test emulates this situation. Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
Fedora bind-mounts a part of the root mount to itself. Currently we don't allow to mount children of a shared mount, if other mount from this shared group are not mounted. This patch adds an exclusion for cases, when a child has the same group. We allow to mount a child, if wider mounts are mounted. Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Andrey Vagin authored
Currently we connect roots of sub-namespaces to the root of the root mount namespace. And we get problems, if the root of the root mntns is shared, because all children of a shared mount must be propagated to other mounts in this group. Actually we mount tmpfs in mnt_roots and here is nothing wrong to add it in a tree. Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
And use the expression for it, it's quite short. This makes the amount of variables in the code fit into brains. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com> Acked-by:
Andrew Vagin <avagin@parallels.com>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com> Acked-by:
Andrew Vagin <avagin@parallels.com>
-
Pavel Emelyanov authored
Do paths conversions and checks step-by-step and add many comments what we do in each step and why. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com> Acked-by:
Andrew Vagin <avagin@parallels.com>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com> Acked-by:
Andrew Vagin <avagin@parallels.com>
-
Pavel Emelyanov authored
When we check whether a submount of a mount is visible in another mount (shared peer of the latter), we can and should use the new issubpath helper. Should because the used strncmp may scan beyond ct_mpnt_rpath if its length is smaller (no checks for this in the code). Signed-off-by:
Pavel Emelyanov <xemul@parallels.com> Acked-by:
Andrew Vagin <avagin@parallels.com>
-
Pavel Emelyanov authored
These are constant for given m, so calculate them outside of the loop. Also rename them to reflect what they are. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com> Acked-by:
Andrew Vagin <avagin@parallels.com>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com> Acked-by:
Andrew Vagin <avagin@parallels.com>
-
Pavel Emelyanov authored
The path lenght is zero for the "/" one and strlen(path) for all the others. This is done so to make it possible to use this length to get tail-paths: if path_1 starts with path_2 and both are absolute, then path_1 + path_length(path_2) would give the tail of the tail of path_1 relative to path_2 even if the path_2 is just "/". Signed-off-by:
Pavel Emelyanov <xemul@parallels.com> Acked-by:
Andrew Vagin <avagin@parallels.com>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com> Acked-by:
Andrew Vagin <avagin@parallels.com>
-
Andrey Vagin authored
A problem which is solved in this path is that some children can be unaccessiable (unvisiable) for non-root bind-mounts root mount point ------------------- / /a (shared:1) / /a/x / /a/x/y / /a/z /x /b (shared:1) / /b/y /b is a non-root bind-mount of /a /y is visiable to both mounts /z is vidiable only for /a Before this patch we checked that the set of children is the same for all mount in a shared group. Now we check that a visiable set of mounts is the same for all mounts in a shared group. Now we take the next mount in the shared group, which is wider or equal to current and compare children between them. Before this patch validate_shared(m) validates the m->parent mount. Now it validates the "m" mount. So you can find following lines in the patch: - if (m->parent->shared_id && validate_shared(m)) + if (m->shared_id && validate_shared(m)) We doesn't support shared mounts with different set of children. Here is an example of such case can be created: mount tmpfs a /a mount --make-shared /a mkdir /a/b mount tmpfs b /a/b mount --bind /a /c In this case /c doesn't have the /b child. To support such cases, we need to sort all shared mounts accoding with a set of children. v2: If root is equal to "/", its len should be zero. We expect that the last symbol in a path is not "/". Signed-off-by:
Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
- 11 Nov, 2014 12 commits
-
-
Andrew Vagin authored
expr ns/user/static/env00 ns/user expr: syntax error Signed-off-by:
Andrew Vagin <avagin@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>
-
Cyrill Gorcunov authored
Signed-off-by:
Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
Make their name look similar. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
We have sanity check for zombie-with kids below, no need in additional. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
We scan threads and children list several times while freezing the tree, this is done to avoid race with new threads/kids appearing. Factor out the iterations code. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
To make the threads collect code be structured similar to children collect. This will also help in further patching. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
Keeping the whole stat buf it too much information. Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-
Pavel Emelyanov authored
Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
-