zdtm: execute mntns_shared_bind* only if mnt_id is in fdinfo

Reported-by: Mr Jenkins
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
scripts: Exit early if no scripts passed

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
mnt: Factor out find-mount-by-s_dev code

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>
check: Implement F_GETOWNER_UIDS

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>
zdtm/inotify_system_nodel.c: need to print mask of events for UNKNOWN event

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>
page server: Don't hide error from flush request

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Acked-by: Andrew Vagin <avagin@parallels.com>
tcp: don't fail if send eats only a part of data

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>
mem: check existence of parent images before dumping pages (v2)

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>
check: don't lead fd

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>
jenkins: reduce number of jobs for executing tests

32 is too many for our test server

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
test: use an origin test name to generate uniq name for test files

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>
test: clean up pages immediately after restore

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>
test: return the iteration number to the end of the test path

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>
criu: Version 1.4

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>