2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-30 22:05:36 +00:00
Commit Graph

800 Commits

Author SHA1 Message Date
Kir Kolyshkin
f2734ce825 test/zdtm.sh: formatting fix
Put echo to a separate line to
- keep the text within 80 columns
- visually check that the positions of semicolons are the same

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Andrey Vagin <avagin@gmail.com>
2012-02-07 11:00:14 +04:00
Kir Kolyshkin
060fb6fed2 test/zdtm.sh: trivial nitpicks
Remove excessive quotes and uneeded semicolons after breaks

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Andrey Vagin <avagin@gmail.com>
2012-02-07 11:00:08 +04:00
Kir Kolyshkin
6cc9482a1a test/zdtm.sh: simplify showing list of tests
echo normalizes spaces, tr converts them into newlines

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Andrey Vagin <avagin@gmail.com>
2012-02-07 11:00:01 +04:00
Kir Kolyshkin
60a35bfaa9 test/zdtm.sh: fix check for test name
(1) We should use -w so we can't match a substring
(2) No need to use quotes

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Andrey Vagin <avagin@gmail.com>
2012-02-07 10:59:56 +04:00
Kir Kolyshkin
0bf98db4d9 test/zdtm.sh: cleanup run_test() calls
If we use shift and $* in run_test(), there is no need to quote arguments.

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Andrey Vagin <avagin@gmail.com>
2012-02-07 10:59:51 +04:00
Kir Kolyshkin
56efc51a5b test/zdtm.sh cleanup: mark local variables as such
Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Andrey Vagin <avagin@gmail.com>
2012-02-07 10:59:38 +04:00
Kir Kolyshkin
dae80231b0 test/zdtm.sh cleanup: remove 30 mentions of $ZP
Replace them by just two.

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Andrey Vagin <avagin@gmail.com>
2012-02-07 10:59:11 +04:00
Stanislav Kinsbursky
5059cc7b0a show: ipc cleanup
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-03 21:27:15 +04:00
Stanislav Kinsbursky
6079c50925 checkpoint: switch namespaces before collect stage
Cleanup patch.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-03 21:27:07 +04:00
Stanislav Kinsbursky
f054b3821d checkpoint: replace write_img_buf --> write_img ipc code
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-03 21:26:59 +04:00
Stanislav Kinsbursky
8971be17fd checkpoint: namepsaces info to dump log
Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-03 21:26:50 +04:00
Andrey Vagin
4d962b27c0 crtools: dump and restore clear_tid_address
pthread_join works with this patch

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-03 17:28:04 +04:00
Andrey Vagin
e8c6c877ed syscall: add set_tid_address
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-03 17:27:31 +04:00
Pavel Emelyanov
06cc19511a ptrace: Send signals with final state explicitly
According to Oleg the PTRACE_KILL doesn't and was-not-supposed-to work.
Thus, kill tasks to final state explicitly and just detach from them.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-03 14:54:26 +04:00
Cyrill Gorcunov
cff9654d62 uts: Don't fail on "show" if there is no data dumped
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-02 21:22:21 +04:00
Cyrill Gorcunov
995b0bf5e7 ipc: Don't fail on "show" if there is no data dumped
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-02 21:22:20 +04:00
Cyrill Gorcunov
405985e964 Add sysctl handling engine
Since we need to operate with sysctls pretty heavy,
better to add some common engine for all handlers.

Based-on-patch-from: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-02 21:22:20 +04:00
Andrey Vagin
73b93182af zdtm.sh: fail if a pid file doesn't exist
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-02 20:46:12 +04:00
Andrey Vagin
6ee58e4b0e make: remove test/dump directory during clean up
This directory contains image files, which remains after tests

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-02 20:46:03 +04:00
Andrey Vagin
e5929ab971 restore: sync threads
Use the save mechanosm as for processes.

* Threads should starts together with processes
* If a thread segfaulted, we should be able to detect it.

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-02 20:45:54 +04:00
Andrey Vagin
27b20dfcc6 restore: clean up code, which synchronizes resume of tasks (v2)
I added two mechanism of synchronization. The second one is better.
This patch deletes the first one.

Before we had an entry (pid and lock) for each tasks and all this
entries were shared between all processes. Now we don't need "lock"
and we use pids from crtools to kill all processes if someone failed.

v2: s/malloc/xmalloc

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-02 20:45:43 +04:00
Pavel Emelyanov
a038cbd9b8 files: Fix memory overflow checks for shared files.
Otherwise we skip shared segment
overflow on big scales and tests sporadically fail.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-02 01:34:40 +04:00
Pavel Emelyanov
153c033d7e zdtm: Add sleep() to zombie00
When creating zombies we must wait for them to appear to test that we do
support zombies, but not some transient state. But the thing is that we
cannot use wait() or any other synchronous call here, thus we have to
suck and use sleep(1) :(

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-02 01:34:31 +04:00
Pavel Emelyanov
766a42e316 ptrace: Kill task with -9 explicitly when detaching
Strange fact, but a task seems to live for some time after PTRACE_KILL :(
Don't know yet why this happens, I'm poking Oleg on that, but this one makes
it die right at once.

The streaming file read test passes after this.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 22:17:56 +04:00
Cyrill Gorcunov
e61605169f ctrools: Rewrite task/threads stopping engine is back
This commit brings the former "Rewrite task/threads stopping engine"
commit back. Handling it separately is too complex so better try
to handle it in-place.

Note some tests might fault, it's expected.
---

Stopping tasks with STOP and proceeding with SEIZE is actually excessive --
the SEIZE if enough. Moreover, just killing a task with STOP is also racy,
since task should be given some time to come to sleep before its proc
can be parsed.

Rewrite all this code to SEIZE task and all its threads from the very beginning.

With this we can distinguish stopped task state and migrate it properly (not
supported now, need to implement).

This thing however has one BIG problem -- after we SEIZE-d a task we should
seize
it's threads, but we should do it in a loop -- reading /proc/pid/task and
seizing
them again and again, until the contents of this dir stops changing (not done
now).

Besides, after we seized a task and all its threads we cannot scan it's children
list once -- task can get reparented to init and any task's child can call clone
with CLONE_PARENT flag thus repopulating the children list of the already seized
task (not done also)

This patch is ugly, yes, but splitting it doesn't help to review it much, sorry
:(

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 19:49:28 +04:00
Cyrill Gorcunov
ab82c2de98 Revert "ipc: Drop u32[2] from image, simply use u64 all the time"
This reverts commit 4f83d028ff.

It breaks IPC test-case, need to investigate.
2012-02-01 19:27:39 +04:00
Cyrill Gorcunov
63b88720a3 Revert "ctrools: Rewrite task/threads stopping engine"
This reverts commit 6da51eee3f.

It breaks transition/file_read test case
2012-02-01 19:27:28 +04:00
Cyrill Gorcunov
57454c524b Revert "make: Switch to -02 by default"
This reverts commit 501d85193c.

Need to investigate code generated for parasite since dumper fails.
2012-02-01 19:27:17 +04:00
Andrey Vagin
aa19c22e85 make: Link parasite.o and util-net.o
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 19:27:07 +04:00
Andrey Vagin
d4c67416e9 parasite: transfer image fd in parasite
Don't open image files from parasite.

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 19:26:58 +04:00
Andrey Vagin
13faf4ee7f parasite: create unix socket in parasite for transfering fd (v3)
Before we used absolute pathes to images and wrote logging messages in
stderr of a target process.

Now we are able to create fd and send it to parasite.

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 19:26:50 +04:00
Andrey Vagin
1465fade3b util: move recv_fd and send_fd in a separate file
It will be used in the parasite

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 19:26:41 +04:00
Andrey Vagin
fd7c44dd86 util: add socket syscalls
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 19:26:33 +04:00
Cyrill Gorcunov
339ad2d887 files: Get rid of strict-aliasing violations
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 17:35:05 +04:00
Pavel Emelyanov
7050ea2ca8 zdtm: Static pstree test
I'm waiting for Andrey's

* pthread join fix
* infrastructure for fokring in zdtm

to extend it with threads.

Besides, we/me need to fix the seizing of dynamically forking tasks
to write a transition pstree test.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 17:29:23 +04:00
Pavel Emelyanov
6da51eee3f ctrools: Rewrite task/threads stopping engine
Stopping tasks with STOP and proceeding with SEIZE is actually excessive --
the SEIZE if enough. Moreover, just killing a task with STOP is also racy,
since task should be given some time to come to sleep before its proc
can be parsed.

Rewrite all this code to SEIZE task and all its threads from the very beginning.

With this we can distinguish stopped task state and migrate it properly (not
supported now, need to implement).

This thing however has one BIG problem -- after we SEIZE-d a task we should seize
it's threads, but we should do it in a loop -- reading /proc/pid/task and seizing
them again and again, until the contents of this dir stops changing (not done now).

Besides, after we seized a task and all its threads we cannot scan it's children
list once -- task can get reparented to init and any task's child can call clone
with CLONE_PARENT flag thus repopulating the children list of the already seized
task (not done also)

This patch is ugly, yes, but splitting it doesn't help to review it much, sorry :(

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 17:29:13 +04:00
Cyrill Gorcunov
501d85193c make: Switch to -02 by default
And turn on -O0 -ggdb3 only if DEBUG=1.
Optimization was turned off at early
prototype stage so no need to carry it
now.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-01 17:23:44 +04:00
Cyrill Gorcunov
6f589a4f6e sockets: Fix a few problems if compiled with DEBUG=1
sockets.c: In function ‘show_one_inet_img’:
sockets.c:151:2: error: format ‘%d’ expects argument of type ‘int’, but argument 9 has type ‘char *’ [-Werror=format]
sockets.c: In function ‘open_unix_sk_stream’:
sockets.c:925:10: error: unknown escape sequence: '\C' [-Werror]

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-01 17:23:44 +04:00
Cyrill Gorcunov
4f83d028ff ipc: Drop u32[2] from image, simply use u64 all the time
This eliminate

 | ipc_ns.c:287:2: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]

and makes code simplier.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-01 17:23:44 +04:00
Cyrill Gorcunov
7197b9467d namespaces: Eliminate uninitialized 'ret' usage
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
2012-02-01 17:23:44 +04:00
Cyrill Gorcunov
779e8b630d Merge branch 'zdtm' of https://github.com/avagin/crtools
* 'zdtm' of https://github.com/avagin/crtools:
  zdtm: set SA_RESTART everywhere
  zdtm.sh: clean up
  zdtm: print test dir, dump and restore path (if any) in case of error
2012-02-01 17:20:23 +04:00
Andrey Vagin
3f614e4498 restore: fix length of spliced data
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Acked-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 17:17:58 +04:00
Andrey Vagin
dd73699b37 zdtm: set SA_RESTART everywhere 2012-02-01 16:53:37 +04:00
Andrey Vagin
0981f36179 zdtm.sh: clean up 2012-02-01 16:53:37 +04:00
Stanislav Kinsbursky
795d64574d zdtm: print test dir, dump and restore path (if any) in case of error
v7: cosmetic chages due to public pressure

v6: silly "/" miss fixed

v5: it finally workks as expected

v4: fixed wrong error print after successfull  run on all zdtm tests

v3: spaces removed

v2: print test output file path  (if present)

Print dump and restore file in case of running all tests suit.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: Andrey Vagin <avagin@gmail.com>
2012-02-01 16:53:37 +04:00
Cyrill Gorcunov
229defc928 Make sure no uninitialized values are used
I've got it if -O2 compilation option used.

 | cr-restore.c:1069:5: error: ‘ret’ may be used uninitialized in this function [-Werror=uninitialized]
 | sockets.c:1145:7: error: ‘sk’ may be used uninitialized in this function [-Werror=uninitialized]

In first case 'ret' indeed might be uninitialized, and
in second case "goto err" was called too early. Fix them both.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 15:24:39 +04:00
Cyrill Gorcunov
3876cadad1 make: docs -- Use Makefile.inc
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 15:12:19 +04:00
Cyrill Gorcunov
9993ab395a make: Clean docs on "make clean" as well
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 15:12:11 +04:00
Cyrill Gorcunov
7a7315d09b make: Fix Documentation/Makefile to not rebuild man without change
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 15:12:02 +04:00
Cyrill Gorcunov
44a05e70ec ips_ns.h: Add CR_ prefix to header defines
Reported-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
2012-02-01 14:39:01 +04:00